about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--configure.ac2
-rw-r--r--src/chatlog.c3
-rw-r--r--src/config/accounts.c170
-rw-r--r--src/config/scripts.c6
-rw-r--r--src/database.c4
-rw-r--r--src/xmpp/stanza.c2
6 files changed, 61 insertions, 126 deletions
diff --git a/configure.ac b/configure.ac
index 96495386..408cdbbd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -301,7 +301,7 @@ if test "x$enable_otr" != xno; then
     AM_CONDITIONAL([BUILD_OTR], [true])
 
     PKG_CHECK_MODULES([libotr], [libotr >= 4.0],
-        [LIBS="$libotr_LIBS $LIBS" CFLAGS="$libotr_CFLAGS $cflags"],
+        [LIBS="$libotr_LIBS $LIBS" CFLAGS="$libotr_CFLAGS $CFLAGS"],
         [AM_CONDITIONAL([BUILD_OTR], [false])
          AS_IF([test "x$enable_otr" = xyes],
                [AC_MSG_ERROR([libotr >= 4.0 is required for OTR support])],
diff --git a/src/chatlog.c b/src/chatlog.c
index da5c7e2b..482e8f38 100644
--- a/src/chatlog.c
+++ b/src/chatlog.c
@@ -57,7 +57,6 @@
 
 static GHashTable* logs;
 static GHashTable* groupchat_logs;
-static GDateTime* session_started;
 
 struct dated_chat_log
 {
@@ -77,7 +76,6 @@ static void _groupchat_log_chat(const gchar* const login, const gchar* const roo
 void
 chat_log_init(void)
 {
-    session_started = g_date_time_new_now_local();
     log_info("Initialising chat logs");
     logs = g_hash_table_new_full(g_str_hash, (GEqualFunc)_key_equals, free,
                                  (GDestroyNotify)_free_chat_log);
@@ -422,7 +420,6 @@ chat_log_close(void)
 {
     g_hash_table_destroy(logs);
     g_hash_table_destroy(groupchat_logs);
-    g_date_time_unref(session_started);
 }
 
 static char*
diff --git a/src/config/accounts.c b/src/config/accounts.c
index d99dd10d..d185b1ad 100644
--- a/src/config/accounts.c
+++ b/src/config/accounts.c
@@ -3,6 +3,7 @@
  * vim: expandtab:ts=4:sts=4:sw=4
  *
  * Copyright (C) 2012 - 2019 James Booth <boothj5@gmail.com>
+ * Copyright (C) 2019 - 2022 Michael Vetter <jubalh@iodoru.org>
  *
  * This file is part of Profanity.
  *
@@ -510,148 +511,127 @@ accounts_set_port(const char* const account_name, const int value)
     }
 }
 
-void
-accounts_set_resource(const char* const account_name, const char* const value)
+static void
+_accounts_set_string_option(const char* account_name, const char* const option, const char* const value)
 {
     if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "resource", value);
+        g_key_file_set_string(accounts, account_name, option, value);
         _save_accounts();
     }
 }
 
-void
-accounts_set_password(const char* const account_name, const char* const value)
+static void
+_accounts_set_int_option(const char* account_name, const char* const option, int value)
 {
     if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "password", value);
+        g_key_file_set_integer(accounts, account_name, option, value);
         _save_accounts();
     }
 }
 
-void
-accounts_set_eval_password(const char* const account_name, const char* const value)
+static void
+_accounts_clear_string_option(const char* account_name, const char* const option)
 {
     if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "eval_password", value);
+        g_key_file_remove_key(accounts, account_name, option, NULL);
         _save_accounts();
     }
 }
 
 void
+accounts_set_resource(const char* const account_name, const char* const value)
+{
+    _accounts_set_string_option(account_name, "resource", value);
+}
+
+void
+accounts_set_password(const char* const account_name, const char* const value)
+{
+    _accounts_set_string_option(account_name, "password", value);
+}
+
+void
+accounts_set_eval_password(const char* const account_name, const char* const value)
+{
+    _accounts_set_string_option(account_name, "eval_password", value);
+}
+
+void
 accounts_set_pgp_keyid(const char* const account_name, const char* const value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "pgp.keyid", value);
-        _save_accounts();
-    }
+    _accounts_set_string_option(account_name, "pgp.keyid", value);
 }
 
 void
 accounts_set_script_start(const char* const account_name, const char* const value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "script.start", value);
-        _save_accounts();
-    }
+    _accounts_set_string_option(account_name, "script.start", value);
 }
 
 void
 accounts_set_theme(const char* const account_name, const char* const value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "theme", value);
-        _save_accounts();
-    }
+    _accounts_set_string_option(account_name, "theme", value);
 }
 
 void
 accounts_clear_password(const char* const account_name)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_remove_key(accounts, account_name, "password", NULL);
-        _save_accounts();
-    }
+    _accounts_clear_string_option(account_name, "password");
 }
 
 void
 accounts_clear_eval_password(const char* const account_name)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_remove_key(accounts, account_name, "eval_password", NULL);
-        _save_accounts();
-    }
+    _accounts_clear_string_option(account_name, "eval_password");
 }
 
 void
 accounts_clear_server(const char* const account_name)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_remove_key(accounts, account_name, "server", NULL);
-        _save_accounts();
-    }
+    _accounts_clear_string_option(account_name, "server");
 }
 
 void
 accounts_clear_port(const char* const account_name)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_remove_key(accounts, account_name, "port", NULL);
-        _save_accounts();
-    }
+    _accounts_clear_string_option(account_name, "port");
 }
 
 void
 accounts_clear_pgp_keyid(const char* const account_name)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_remove_key(accounts, account_name, "pgp.keyid", NULL);
-        _save_accounts();
-    }
+    _accounts_clear_string_option(account_name, "pgp.keyid");
 }
 
 void
 accounts_clear_script_start(const char* const account_name)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_remove_key(accounts, account_name, "script.start", NULL);
-        _save_accounts();
-    }
+    _accounts_clear_string_option(account_name, "script.start");
 }
 
 void
 accounts_clear_theme(const char* const account_name)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_remove_key(accounts, account_name, "theme", NULL);
-        _save_accounts();
-    }
+    _accounts_clear_string_option(account_name, "theme");
 }
 
 void
 accounts_clear_muc(const char* const account_name)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_remove_key(accounts, account_name, "muc.service", NULL);
-        _save_accounts();
-    }
+    _accounts_clear_string_option(account_name, "muc.service");
 }
 
 void
 accounts_clear_resource(const char* const account_name)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_remove_key(accounts, account_name, "resource", NULL);
-        _save_accounts();
-    }
+    _accounts_clear_string_option(account_name, "resource");
 }
 
 void
 accounts_clear_otr(const char* const account_name)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_remove_key(accounts, account_name, "otr.policy", NULL);
-        _save_accounts();
-    }
+    _accounts_clear_string_option(account_name, "otr.policy");
 }
 
 void
@@ -740,100 +720,67 @@ accounts_clear_omemo_state(const char* const account_name, const char* const con
 void
 accounts_set_muc_service(const char* const account_name, const char* const value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "muc.service", value);
-        _save_accounts();
-    }
+    _accounts_set_string_option(account_name, "muc.service", value);
 }
 
 void
 accounts_set_muc_nick(const char* const account_name, const char* const value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "muc.nick", value);
-        _save_accounts();
-    }
+    _accounts_set_string_option(account_name, "muc.nick", value);
 }
 
 void
 accounts_set_otr_policy(const char* const account_name, const char* const value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "otr.policy", value);
-        _save_accounts();
-    }
+    _accounts_set_string_option(account_name, "otr.policy", value);
 }
 
 void
 accounts_set_omemo_policy(const char* const account_name, const char* const value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "omemo.policy", value);
-        _save_accounts();
-    }
+    _accounts_set_string_option(account_name, "omemo.policy", value);
 }
 
 void
 accounts_set_tls_policy(const char* const account_name, const char* const value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "tls.policy", value);
-        _save_accounts();
-    }
+    _accounts_set_string_option(account_name, "tls.policy", value);
 }
 
 void
 accounts_set_auth_policy(const char* const account_name, const char* const value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "auth.policy", value);
-        _save_accounts();
-    }
+    _accounts_set_string_option(account_name, "auth.policy", value);
 }
 
 void
 accounts_set_priority_online(const char* const account_name, const gint value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_integer(accounts, account_name, "priority.online", value);
-        _save_accounts();
-    }
+    _accounts_set_int_option(account_name, "priority.online", value);
 }
 
 void
 accounts_set_priority_chat(const char* const account_name, const gint value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_integer(accounts, account_name, "priority.chat", value);
-        _save_accounts();
-    }
+    _accounts_set_int_option(account_name, "priority.chat", value);
 }
 
 void
 accounts_set_priority_away(const char* const account_name, const gint value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_integer(accounts, account_name, "priority.away", value);
-        _save_accounts();
-    }
+    _accounts_set_int_option(account_name, "priority.away", value);
 }
 
 void
 accounts_set_priority_xa(const char* const account_name, const gint value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_integer(accounts, account_name, "priority.xa", value);
-        _save_accounts();
-    }
+    _accounts_set_int_option(account_name, "priority.xa", value);
 }
 
 void
 accounts_set_priority_dnd(const char* const account_name, const gint value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_integer(accounts, account_name, "priority.dnd", value);
-        _save_accounts();
-    }
+    _accounts_set_int_option(account_name, "priority.dnd", value);
 }
 
 void
@@ -845,7 +792,6 @@ accounts_set_priority_all(const char* const account_name, const gint value)
         accounts_set_priority_away(account_name, value);
         accounts_set_priority_xa(account_name, value);
         accounts_set_priority_dnd(account_name, value);
-        _save_accounts();
     }
 }
 
@@ -882,21 +828,13 @@ accounts_get_priority_for_presence_type(const char* const account_name,
 void
 accounts_set_last_presence(const char* const account_name, const char* const value)
 {
-    if (accounts_account_exists(account_name)) {
-        g_key_file_set_string(accounts, account_name, "presence.last", value);
-        _save_accounts();
-    }
+    _accounts_set_string_option(account_name, "presence.last", value);
 }
 
 void
 accounts_set_last_status(const char* const account_name, const char* const value)
 {
-    if (accounts_account_exists(account_name)) {
-        if (value) {
-            g_key_file_set_string(accounts, account_name, "presence.laststatus", value);
-        }
-        _save_accounts();
-    }
+    _accounts_set_string_option(account_name, "presence.laststatus", value);
 }
 
 void
diff --git a/src/config/scripts.c b/src/config/scripts.c
index 3f006f77..aca85173 100644
--- a/src/config/scripts.c
+++ b/src/config/scripts.c
@@ -112,10 +112,9 @@ scripts_read(const char* const script)
 
     char* line = NULL;
     size_t len = 0;
-    ssize_t read;
     GSList* result = NULL;
 
-    while ((read = getline(&line, &len, scriptfile)) != -1) {
+    while (getline(&line, &len, scriptfile) != -1) {
         if (g_str_has_suffix(line, "\n")) {
             result = g_slist_append(result, g_strndup(line, strlen(line) - 1));
         } else {
@@ -150,9 +149,8 @@ scripts_exec(const char* const script)
 
     char* line = NULL;
     size_t len = 0;
-    ssize_t read;
 
-    while ((read = getline(&line, &len, scriptfile)) != -1) {
+    while (getline(&line, &len, scriptfile) != -1) {
         ProfWin* win = wins_get_current();
         cmd_process_input(win, line);
         session_process_events();
diff --git a/src/database.c b/src/database.c
index 0ccd422a..b6497e09 100644
--- a/src/database.c
+++ b/src/database.c
@@ -301,7 +301,9 @@ _add_to_db(ProfMessage* message, char* type, const Jid* const from_jid, const Ji
     if (message->timestamp) {
         date_fmt = g_date_time_format_iso8601(message->timestamp);
     } else {
-        date_fmt = g_date_time_format_iso8601(g_date_time_new_now_local());
+        GDateTime* dt = g_date_time_new_now_local();
+        date_fmt = g_date_time_format_iso8601(dt);
+        g_date_time_unref(dt);
     }
 
     const char* enc = _get_message_enc_str(message->enc);
diff --git a/src/xmpp/stanza.c b/src/xmpp/stanza.c
index 8dcad982..c6bf19fb 100644
--- a/src/xmpp/stanza.c
+++ b/src/xmpp/stanza.c
@@ -2635,7 +2635,7 @@ stanza_create_avatar_data_publish_iq(xmpp_ctx_t* ctx, const char* img_data, gsiz
 xmpp_stanza_t*
 stanza_create_avatar_metadata_publish_iq(xmpp_ctx_t* ctx, const char* img_data, gsize len, int height, int width)
 {
-    char* id = id = connection_create_stanza_id();
+    char* id = connection_create_stanza_id();
     xmpp_stanza_t* iq = xmpp_iq_new(ctx, STANZA_TYPE_SET, id);
     free(id);
     xmpp_stanza_set_attribute(iq, STANZA_ATTR_FROM, connection_get_fulljid());