mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Added deallocation function for string prefs, added otr policy enum
This commit is contained in:
parent
79ddf10484
commit
7344d3b898
@ -1413,13 +1413,11 @@ cmd_execute_default(const char * const inp)
|
||||
ui_current_print_line("You are not currently connected.");
|
||||
} else {
|
||||
#ifdef HAVE_LIBOTR
|
||||
char *policy = otr_get_policy(recipient);
|
||||
if ((strcmp(policy, "always") == 0) && !otr_is_secure(recipient)) {
|
||||
prof_otrpolicy_t policy = otr_get_policy(recipient);
|
||||
if (policy == PROF_OTRPOLICY_ALWAYS && !otr_is_secure(recipient)) {
|
||||
cons_show_error("Failed to send message. Please check OTR policy");
|
||||
free(policy);
|
||||
return TRUE;
|
||||
}
|
||||
free(policy);
|
||||
if (otr_is_secure(recipient)) {
|
||||
char *encrypted = otr_encrypt_message(recipient, inp);
|
||||
if (encrypted != NULL) {
|
||||
@ -1428,11 +1426,13 @@ cmd_execute_default(const char * const inp)
|
||||
if (prefs_get_boolean(PREF_CHLOG)) {
|
||||
const char *jid = jabber_get_fulljid();
|
||||
Jid *jidp = jid_create(jid);
|
||||
if (strcmp(prefs_get_string(PREF_OTR_LOG), "on") == 0) {
|
||||
char *pref_otr_log = prefs_get_string(PREF_OTR_LOG);
|
||||
if (strcmp(pref_otr_log, "on") == 0) {
|
||||
chat_log_chat(jidp->barejid, recipient, inp, PROF_OUT_LOG, NULL);
|
||||
} else if (strcmp(prefs_get_string(PREF_OTR_LOG), "redact") == 0) {
|
||||
} else if (strcmp(pref_otr_log, "redact") == 0) {
|
||||
chat_log_chat(jidp->barejid, recipient, "[redacted]", PROF_OUT_LOG, NULL);
|
||||
}
|
||||
prefs_free_string(pref_otr_log);
|
||||
jid_destroy(jidp);
|
||||
}
|
||||
|
||||
|
@ -1003,23 +1003,25 @@ cmd_msg(gchar **args, struct cmd_help_t help)
|
||||
if (((win_type == WIN_CHAT) || (win_type == WIN_CONSOLE)) && prefs_get_boolean(PREF_CHLOG)) {
|
||||
const char *jid = jabber_get_fulljid();
|
||||
Jid *jidp = jid_create(jid);
|
||||
if (strcmp(prefs_get_string(PREF_OTR_LOG), "on") == 0) {
|
||||
char *pref_otr_log = prefs_get_string(PREF_OTR_LOG);
|
||||
if (strcmp(pref_otr_log, "on") == 0) {
|
||||
chat_log_chat(jidp->barejid, usr_jid, msg, PROF_OUT_LOG, NULL);
|
||||
} else if (strcmp(prefs_get_string(PREF_OTR_LOG), "redact") == 0) {
|
||||
} else if (strcmp(pref_otr_log, "redact") == 0) {
|
||||
chat_log_chat(jidp->barejid, usr_jid, "[redacted]", PROF_OUT_LOG, NULL);
|
||||
}
|
||||
prefs_free_string(pref_otr_log);
|
||||
jid_destroy(jidp);
|
||||
}
|
||||
} else {
|
||||
cons_show_error("Failed to encrypt and send message,");
|
||||
}
|
||||
} else {
|
||||
char *policy = otr_get_policy(usr_jid);
|
||||
prof_otrpolicy_t policy = otr_get_policy(usr_jid);
|
||||
|
||||
if (strcmp(policy, "always") == 0) {
|
||||
if (policy == PROF_OTRPOLICY_ALWAYS) {
|
||||
cons_show_error("Failed to send message. Please check OTR policy");
|
||||
return TRUE;
|
||||
} else if (strcmp(policy, "opportunistic") == 0) {
|
||||
} else if (policy == PROF_OTRPOLICY_OPPORTUNISTIC) {
|
||||
char *otr_base_tag = OTRL_MESSAGE_TAG_BASE;
|
||||
char *otr_v2_tag = OTRL_MESSAGE_TAG_V2;
|
||||
int N = strlen(otr_base_tag) + strlen(otr_v2_tag) + strlen(msg) + 1;
|
||||
@ -1033,7 +1035,6 @@ cmd_msg(gchar **args, struct cmd_help_t help)
|
||||
message_send(msg, usr_jid);
|
||||
}
|
||||
ui_outgoing_msg("me", usr_jid, msg);
|
||||
free(policy);
|
||||
|
||||
if (((win_type == WIN_CHAT) || (win_type == WIN_CONSOLE)) && prefs_get_boolean(PREF_CHLOG)) {
|
||||
const char *jid = jabber_get_fulljid();
|
||||
@ -1956,11 +1957,13 @@ cmd_tiny(gchar **args, struct cmd_help_t help)
|
||||
if (prefs_get_boolean(PREF_CHLOG)) {
|
||||
const char *jid = jabber_get_fulljid();
|
||||
Jid *jidp = jid_create(jid);
|
||||
if (strcmp(prefs_get_string(PREF_OTR_LOG), "on") == 0) {
|
||||
char *pref_otr_log = prefs_get_string(PREF_OTR_LOG);
|
||||
if (strcmp(pref_otr_log, "on") == 0) {
|
||||
chat_log_chat(jidp->barejid, recipient, tiny, PROF_OUT_LOG, NULL);
|
||||
} else if (strcmp(prefs_get_string(PREF_OTR_LOG), "redact") == 0) {
|
||||
} else if (strcmp(pref_otr_log, "redact") == 0) {
|
||||
chat_log_chat(jidp->barejid, recipient, "[redacted]", PROF_OUT_LOG, NULL);
|
||||
}
|
||||
prefs_free_string(pref_otr_log);
|
||||
jid_destroy(jidp);
|
||||
}
|
||||
|
||||
@ -2723,6 +2726,7 @@ cmd_otr(gchar **args, struct cmd_help_t help)
|
||||
if (args[1] == NULL) {
|
||||
char *policy = prefs_get_string(PREF_OTR_POLICY);
|
||||
cons_show("OTR policy is now set to: %s", policy);
|
||||
prefs_free_string(policy);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -164,19 +164,29 @@ prefs_get_string(preference_t pref)
|
||||
const char *key = _get_key(pref);
|
||||
char *def = _get_default_string(pref);
|
||||
|
||||
if (!g_key_file_has_key(prefs, group, key, NULL)) {
|
||||
return def;
|
||||
}
|
||||
|
||||
char *result = g_key_file_get_string(prefs, group, key, NULL);
|
||||
|
||||
if (result == NULL) {
|
||||
return strdup(def);
|
||||
if (def != NULL) {
|
||||
return strdup(def);
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
} else {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
prefs_free_string(char *pref)
|
||||
{
|
||||
if (pref != NULL) {
|
||||
free(pref);
|
||||
}
|
||||
pref = NULL;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
prefs_set_string(preference_t pref, char *value)
|
||||
{
|
||||
|
@ -115,6 +115,7 @@ void prefs_free_aliases(GList *aliases);
|
||||
gboolean prefs_get_boolean(preference_t pref);
|
||||
void prefs_set_boolean(preference_t pref, gboolean value);
|
||||
char * prefs_get_string(preference_t pref);
|
||||
void prefs_free_string(char *pref);
|
||||
void prefs_set_string(preference_t pref, char *value);
|
||||
|
||||
#endif
|
||||
|
@ -520,43 +520,56 @@ _otr_get_their_fingerprint(const char * const recipient)
|
||||
}
|
||||
}
|
||||
|
||||
static char *
|
||||
static prof_otrpolicy_t
|
||||
_otr_get_policy(const char * const recipient)
|
||||
{
|
||||
ProfAccount *account = accounts_get_account(jabber_get_account_name());
|
||||
// check contact specific setting
|
||||
if (g_list_find_custom(account->otr_manual, recipient, (GCompareFunc)g_strcmp0)) {
|
||||
account_free(account);
|
||||
return strdup("manual");
|
||||
return PROF_OTRPOLICY_MANUAL;
|
||||
}
|
||||
if (g_list_find_custom(account->otr_opportunistic, recipient, (GCompareFunc)g_strcmp0)) {
|
||||
account_free(account);
|
||||
return strdup("opportunistic");
|
||||
return PROF_OTRPOLICY_OPPORTUNISTIC;
|
||||
}
|
||||
if (g_list_find_custom(account->otr_always, recipient, (GCompareFunc)g_strcmp0)) {
|
||||
account_free(account);
|
||||
return strdup("always");
|
||||
return PROF_OTRPOLICY_ALWAYS;
|
||||
}
|
||||
|
||||
// check default account setting
|
||||
if (account->otr_policy != NULL) {
|
||||
char *result;
|
||||
prof_otrpolicy_t result;
|
||||
if (g_strcmp0(account->otr_policy, "manual") == 0) {
|
||||
result = "manual";
|
||||
result = PROF_OTRPOLICY_MANUAL;
|
||||
}
|
||||
if (g_strcmp0(account->otr_policy, "opportunistic") == 0) {
|
||||
result = "opportunistic";
|
||||
result = PROF_OTRPOLICY_OPPORTUNISTIC;
|
||||
}
|
||||
if (g_strcmp0(account->otr_policy, "always") == 0) {
|
||||
result = "always";
|
||||
result = PROF_OTRPOLICY_ALWAYS;
|
||||
}
|
||||
account_free(account);
|
||||
return strdup(result);
|
||||
return result;
|
||||
}
|
||||
account_free(account);
|
||||
|
||||
// check global setting
|
||||
return prefs_get_string(PREF_OTR_POLICY);
|
||||
char *pref_otr_policy = prefs_get_string(PREF_OTR_POLICY);
|
||||
|
||||
// pref defaults to manual
|
||||
prof_otrpolicy_t result = PROF_OTRPOLICY_MANUAL;
|
||||
|
||||
if (strcmp(pref_otr_policy, "opportunistic") == 0) {
|
||||
result = PROF_OTRPOLICY_OPPORTUNISTIC;
|
||||
} else if (strcmp(pref_otr_policy, "always") == 0) {
|
||||
result = PROF_OTRPOLICY_ALWAYS;
|
||||
}
|
||||
|
||||
prefs_free_string(pref_otr_policy);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static char *
|
||||
|
@ -28,6 +28,12 @@
|
||||
|
||||
#include "config/accounts.h"
|
||||
|
||||
typedef enum {
|
||||
PROF_OTRPOLICY_MANUAL,
|
||||
PROF_OTRPOLICY_OPPORTUNISTIC,
|
||||
PROF_OTRPOLICY_ALWAYS
|
||||
} prof_otrpolicy_t;
|
||||
|
||||
void otr_init_module(void);
|
||||
|
||||
OtrlUserState otr_userstate(void);
|
||||
@ -63,6 +69,6 @@ char * (*otr_decrypt_message)(const char * const from, const char * const messag
|
||||
|
||||
void (*otr_free_message)(char *message);
|
||||
|
||||
char * (*otr_get_policy)(const char * const recipient);
|
||||
prof_otrpolicy_t (*otr_get_policy)(const char * const recipient);
|
||||
|
||||
#endif
|
||||
|
@ -82,9 +82,7 @@ prof_run(const int disable_tls, char *log_level, char *account_name)
|
||||
snprintf(inp, sizeof(inp), "%s %s", cmd, pref_connect_account);
|
||||
process_input(inp);
|
||||
}
|
||||
if (pref_connect_account != NULL) {
|
||||
free(pref_connect_account);
|
||||
}
|
||||
prefs_free_string(pref_connect_account);
|
||||
|
||||
while(cmd_result == TRUE) {
|
||||
wint_t ch = ERR;
|
||||
@ -255,12 +253,8 @@ _handle_idle_time()
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pref_autoaway_mode != NULL) {
|
||||
free(pref_autoaway_mode);
|
||||
}
|
||||
if (pref_autoaway_message != NULL) {
|
||||
free(pref_autoaway_message);
|
||||
}
|
||||
prefs_free_string(pref_autoaway_mode);
|
||||
prefs_free_string(pref_autoaway_message);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -285,9 +279,9 @@ _init(const int disable_tls, char *log_level)
|
||||
chat_log_init();
|
||||
groupchat_log_init();
|
||||
accounts_load();
|
||||
gchar *theme = prefs_get_string(PREF_THEME);
|
||||
char *theme = prefs_get_string(PREF_THEME);
|
||||
theme_init(theme);
|
||||
g_free(theme);
|
||||
prefs_free_string(theme);
|
||||
ui_init();
|
||||
jabber_init(disable_tls);
|
||||
cmd_init();
|
||||
|
@ -229,12 +229,12 @@ handle_incoming_message(char *from, char *message, gboolean priv)
|
||||
gboolean was_decrypted = FALSE;
|
||||
char *newmessage;
|
||||
|
||||
char *policy = otr_get_policy(from);
|
||||
prof_otrpolicy_t policy = otr_get_policy(from);
|
||||
char *whitespace_base = strstr(message,OTRL_MESSAGE_TAG_BASE);
|
||||
|
||||
if (!priv) {
|
||||
//check for OTR whitespace (opportunistic or always)
|
||||
if (strcmp(policy, "opportunistic") == 0 || strcmp(policy, "always") == 0) {
|
||||
if (policy == PROF_OTRPOLICY_OPPORTUNISTIC || policy == PROF_OTRPOLICY_ALWAYS) {
|
||||
if (whitespace_base) {
|
||||
if (strstr(message, OTRL_MESSAGE_TAG_V2) || strstr(message, OTRL_MESSAGE_TAG_V1)) {
|
||||
// Remove whitespace pattern for proper display in UI
|
||||
@ -254,18 +254,16 @@ handle_incoming_message(char *from, char *message, gboolean priv)
|
||||
|
||||
// internal OTR message
|
||||
if (newmessage == NULL) {
|
||||
free(policy);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
newmessage = message;
|
||||
}
|
||||
if (strcmp(policy, "always") == 0 && !was_decrypted && !whitespace_base) {
|
||||
if (policy == PROF_OTRPOLICY_ALWAYS && !was_decrypted && !whitespace_base) {
|
||||
char *otr_query_message = otr_start_query();
|
||||
cons_show("Attempting to start OTR session...");
|
||||
message_send(otr_query_message, from);
|
||||
}
|
||||
free(policy);
|
||||
|
||||
ui_incoming_msg(from, newmessage, NULL, priv);
|
||||
|
||||
@ -274,11 +272,13 @@ handle_incoming_message(char *from, char *message, gboolean priv)
|
||||
const char *jid = jabber_get_fulljid();
|
||||
Jid *jidp = jid_create(jid);
|
||||
|
||||
if (!was_decrypted || (strcmp(prefs_get_string(PREF_OTR_LOG), "on") == 0)) {
|
||||
char *pref_otr_log = prefs_get_string(PREF_OTR_LOG);
|
||||
if (!was_decrypted || (strcmp(pref_otr_log, "on") == 0)) {
|
||||
chat_log_chat(jidp->barejid, from_jid->barejid, newmessage, PROF_IN_LOG, NULL);
|
||||
} else if (strcmp(prefs_get_string(PREF_OTR_LOG), "redact") == 0) {
|
||||
} else if (strcmp(pref_otr_log, "redact") == 0) {
|
||||
chat_log_chat(jidp->barejid, from_jid->barejid, "[redacted]", PROF_IN_LOG, NULL);
|
||||
}
|
||||
prefs_free_string(pref_otr_log);
|
||||
|
||||
jid_destroy(jidp);
|
||||
jid_destroy(from_jid);
|
||||
@ -394,6 +394,8 @@ handle_contact_offline(char *barejid, char *resource, char *status)
|
||||
}
|
||||
}
|
||||
}
|
||||
prefs_free_string(show_console);
|
||||
prefs_free_string(show_chat_win);
|
||||
jid_destroy(jid);
|
||||
}
|
||||
}
|
||||
@ -433,6 +435,8 @@ handle_contact_online(char *barejid, Resource *resource,
|
||||
}
|
||||
}
|
||||
}
|
||||
prefs_free_string(show_console);
|
||||
prefs_free_string(show_chat_win);
|
||||
}
|
||||
}
|
||||
|
||||
@ -493,6 +497,7 @@ handle_room_member_presence(const char * const room,
|
||||
ui_room_member_presence(room, nick, show, status);
|
||||
ui_current_page_off();
|
||||
}
|
||||
prefs_free_string(muc_status_pref);
|
||||
}
|
||||
}
|
||||
|
||||
@ -508,6 +513,7 @@ handle_room_member_online(const char * const room, const char * const nick,
|
||||
ui_room_member_online(room, nick, show, status);
|
||||
ui_current_page_off();
|
||||
}
|
||||
prefs_free_string(muc_status_pref);
|
||||
}
|
||||
|
||||
void
|
||||
@ -521,6 +527,7 @@ handle_room_member_offline(const char * const room, const char * const nick,
|
||||
ui_room_member_offline(room, nick);
|
||||
ui_current_page_off();
|
||||
}
|
||||
prefs_free_string(muc_status_pref);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -927,12 +927,13 @@ _cons_show_aliases(GList *aliases)
|
||||
static void
|
||||
_cons_theme_setting(void)
|
||||
{
|
||||
gchar *theme = prefs_get_string(PREF_THEME);
|
||||
char *theme = prefs_get_string(PREF_THEME);
|
||||
if (theme == NULL) {
|
||||
cons_show("Theme (/theme) : default");
|
||||
} else {
|
||||
cons_show("Theme (/theme) : %s", theme);
|
||||
}
|
||||
prefs_free_string(theme);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -965,10 +966,13 @@ _cons_splash_setting(void)
|
||||
static void
|
||||
_cons_autoconnect_setting(void)
|
||||
{
|
||||
if (prefs_get_string(PREF_CONNECT_ACCOUNT) != NULL)
|
||||
cons_show("Autoconnect (/autoconnect) : %s", prefs_get_string(PREF_CONNECT_ACCOUNT));
|
||||
char *pref_connect_account = prefs_get_string(PREF_CONNECT_ACCOUNT);
|
||||
if (pref_connect_account != NULL)
|
||||
cons_show("Autoconnect (/autoconnect) : %s", pref_connect_account);
|
||||
else
|
||||
cons_show("Autoconnect (/autoconnect) : OFF");
|
||||
|
||||
prefs_free_string(pref_connect_account);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -999,6 +1003,10 @@ _cons_statuses_setting(void)
|
||||
cons_show("Console statuses (/statuses) : %s", console);
|
||||
cons_show("Chat statuses (/statuses) : %s", chat);
|
||||
cons_show("MUC statuses (/statuses) : %s", muc);
|
||||
|
||||
prefs_free_string(console);
|
||||
prefs_free_string(chat);
|
||||
prefs_free_string(muc);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1058,6 +1066,7 @@ _cons_notify_setting(void)
|
||||
} else {
|
||||
cons_show ("Room messages (/notify room) : %s", room_setting);
|
||||
}
|
||||
prefs_free_string(room_setting);
|
||||
|
||||
if (prefs_get_boolean(PREF_NOTIFY_ROOM_CURRENT))
|
||||
cons_show("Room current (/notify room) : ON");
|
||||
@ -1234,20 +1243,24 @@ _cons_show_log_prefs(void)
|
||||
static void
|
||||
_cons_autoaway_setting(void)
|
||||
{
|
||||
if (strcmp(prefs_get_string(PREF_AUTOAWAY_MODE), "off") == 0) {
|
||||
char *pref_autoaway_mode = prefs_get_string(PREF_AUTOAWAY_MODE);
|
||||
if (strcmp(pref_autoaway_mode, "off") == 0) {
|
||||
cons_show("Autoaway (/autoaway mode) : OFF");
|
||||
} else {
|
||||
cons_show("Autoaway (/autoaway mode) : %s", prefs_get_string(PREF_AUTOAWAY_MODE));
|
||||
cons_show("Autoaway (/autoaway mode) : %s", pref_autoaway_mode);
|
||||
}
|
||||
prefs_free_string(pref_autoaway_mode);
|
||||
|
||||
cons_show("Autoaway minutes (/autoaway time) : %d minutes", prefs_get_autoaway_time());
|
||||
|
||||
if ((prefs_get_string(PREF_AUTOAWAY_MESSAGE) == NULL) ||
|
||||
(strcmp(prefs_get_string(PREF_AUTOAWAY_MESSAGE), "") == 0)) {
|
||||
char *pref_autoaway_message = prefs_get_string(PREF_AUTOAWAY_MESSAGE);
|
||||
if ((pref_autoaway_message == NULL) ||
|
||||
(strcmp(pref_autoaway_message, "") == 0)) {
|
||||
cons_show("Autoaway message (/autoaway message) : OFF");
|
||||
} else {
|
||||
cons_show("Autoaway message (/autoaway message) : \"%s\"", prefs_get_string(PREF_AUTOAWAY_MESSAGE));
|
||||
cons_show("Autoaway message (/autoaway message) : \"%s\"", pref_autoaway_message);
|
||||
}
|
||||
prefs_free_string(pref_autoaway_message);
|
||||
|
||||
if (prefs_get_boolean(PREF_AUTOAWAY_CHECK)) {
|
||||
cons_show("Autoaway check (/autoaway check) : ON");
|
||||
@ -1328,6 +1341,7 @@ _cons_show_otr_prefs(void)
|
||||
|
||||
char *policy_value = prefs_get_string(PREF_OTR_POLICY);
|
||||
cons_show("OTR policy (/otr policy) : %s", policy_value);
|
||||
prefs_free_string(policy_value);
|
||||
|
||||
if (prefs_get_boolean(PREF_OTR_WARN)) {
|
||||
cons_show("Warn non-OTR (/otr warn) : ON");
|
||||
@ -1336,7 +1350,6 @@ _cons_show_otr_prefs(void)
|
||||
}
|
||||
|
||||
char *log_value = prefs_get_string(PREF_OTR_LOG);
|
||||
|
||||
if (strcmp(log_value, "on") == 0) {
|
||||
cons_show("OTR logging (/otr log) : ON");
|
||||
} else if (strcmp(log_value, "off") == 0) {
|
||||
@ -1344,6 +1357,7 @@ _cons_show_otr_prefs(void)
|
||||
} else {
|
||||
cons_show("OTR logging (/otr log) : Redacted");
|
||||
}
|
||||
prefs_free_string(log_value);
|
||||
|
||||
if (wins_is_current(console)) {
|
||||
win_update_virtual(console);
|
||||
|
@ -436,12 +436,13 @@ _ui_group_removed(const char * const contact, const char * const group)
|
||||
static void
|
||||
_ui_auto_away(void)
|
||||
{
|
||||
if (prefs_get_string(PREF_AUTOAWAY_MESSAGE) != NULL) {
|
||||
char *pref_autoaway_message = prefs_get_string(PREF_AUTOAWAY_MESSAGE);
|
||||
if (pref_autoaway_message != NULL) {
|
||||
int pri =
|
||||
accounts_get_priority_for_presence_type(jabber_get_account_name(),
|
||||
RESOURCE_AWAY);
|
||||
cons_show("Idle for %d minutes, status set to away (priority %d), \"%s\".",
|
||||
prefs_get_autoaway_time(), pri, prefs_get_string(PREF_AUTOAWAY_MESSAGE));
|
||||
prefs_get_autoaway_time(), pri, pref_autoaway_message);
|
||||
title_bar_set_presence(CONTACT_AWAY);
|
||||
ui_current_page_off();
|
||||
} else {
|
||||
@ -453,6 +454,7 @@ _ui_auto_away(void)
|
||||
title_bar_set_presence(CONTACT_AWAY);
|
||||
ui_current_page_off();
|
||||
}
|
||||
prefs_free_string(pref_autoaway_message);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1722,6 +1724,7 @@ _ui_room_message(const char * const room_jid, const char * const nick,
|
||||
g_free(message_lower);
|
||||
g_free(nick_lower);
|
||||
}
|
||||
prefs_free_string(room_setting);
|
||||
|
||||
if (notify) {
|
||||
gboolean is_current = wins_is_current(window);
|
||||
|
Loading…
Reference in New Issue
Block a user