about summary refs log tree commit diff stats
path: root/src/config
diff options
context:
space:
mode:
Diffstat (limited to 'src/config')
-rw-r--r--src/config/files.c24
-rw-r--r--src/config/files.h7
-rw-r--r--src/config/preferences.c13
-rw-r--r--src/config/preferences.h3
-rw-r--r--src/config/theme.c1
5 files changed, 42 insertions, 6 deletions
diff --git a/src/config/files.c b/src/config/files.c
index da2b66bb..576303fb 100644
--- a/src/config/files.c
+++ b/src/config/files.c
@@ -113,7 +113,7 @@ files_get_inputrc_file(void)
 }
 
 char*
-files_get_log_file(char *log_file)
+files_get_log_file(const char *const log_file)
 {
     gchar *xdg_data = _files_get_xdg_data_home();
     GString *logfile = g_string_new(xdg_data);
@@ -140,7 +140,7 @@ files_get_log_file(char *log_file)
 }
 
 gchar*
-files_get_config_path(char *config_base)
+files_get_config_path(const char *const config_base)
 {
     gchar *xdg_config = _files_get_xdg_config_home();
     GString *file_str = g_string_new(xdg_config);
@@ -154,7 +154,7 @@ files_get_config_path(char *config_base)
 }
 
 gchar*
-files_get_data_path(char *data_base)
+files_get_data_path(const char *const data_base)
 {
     gchar *xdg_data = _files_get_xdg_data_home();
     GString *file_str = g_string_new(xdg_data);
@@ -167,6 +167,24 @@ files_get_data_path(char *data_base)
     return result;
 }
 
+gchar*
+files_get_account_data_path(const char *const specific_dir, const char *const jid)
+{
+    gchar *data_dir = files_get_data_path(specific_dir);
+    GString *result_dir = g_string_new(data_dir);
+    g_free(data_dir);
+
+    gchar *account_dir = str_replace(jid, "@", "_at_");
+    g_string_append(result_dir, "/");
+    g_string_append(result_dir, account_dir);
+    g_free(account_dir);
+
+    gchar *result = g_strdup(result_dir->str);
+    g_string_free(result_dir, TRUE);
+
+    return result;
+}
+
 static char*
 _files_get_xdg_config_home(void)
 {
diff --git a/src/config/files.h b/src/config/files.h
index c87c4501..2a74793f 100644
--- a/src/config/files.h
+++ b/src/config/files.h
@@ -60,10 +60,11 @@
 
 void files_create_directories(void);
 
-gchar* files_get_config_path(char *config_base);
-gchar* files_get_data_path(char *data_base);
+gchar* files_get_config_path(const char *const config_base);
+gchar* files_get_data_path(const char *const data_base);
+gchar* files_get_account_data_path(const char *const specific_dir, const char *const jid);
 
-gchar* files_get_log_file(char *log_file);
+gchar* files_get_log_file(const char *const log_file);
 gchar* files_get_inputrc_file(void);
 
 #endif
diff --git a/src/config/preferences.c b/src/config/preferences.c
index 84f0302f..e46cbe45 100644
--- a/src/config/preferences.c
+++ b/src/config/preferences.c
@@ -62,6 +62,7 @@
 #define PREF_GROUP_OTR "otr"
 #define PREF_GROUP_PGP "pgp"
 #define PREF_GROUP_OMEMO "omemo"
+#define PREF_GROUP_OX "ox"
 #define PREF_GROUP_MUC "muc"
 #define PREF_GROUP_PLUGINS "plugins"
 #define PREF_GROUP_EXECUTABLES "executables"
@@ -1052,6 +1053,18 @@ prefs_set_pgp_char(char *ch)
 }
 
 char*
+prefs_get_ox_char(void)
+{
+    return _prefs_get_encryption_char("%", PREF_GROUP_OX, "ox.char");
+}
+
+gboolean
+prefs_set_ox_char(char *ch)
+{
+    return _prefs_set_encryption_char(ch, PREF_GROUP_OX, "ox.char");
+}
+
+char*
 prefs_get_omemo_char(void)
 {
     return _prefs_get_encryption_char("~", PREF_GROUP_OMEMO, "omemo.char");
diff --git a/src/config/preferences.h b/src/config/preferences.h
index 0bd10d44..e3110904 100644
--- a/src/config/preferences.h
+++ b/src/config/preferences.h
@@ -245,6 +245,9 @@ char* prefs_get_pgp_char(void);
 gboolean prefs_set_pgp_char(char *ch);
 char* prefs_get_omemo_char(void);
 gboolean prefs_set_omemo_char(char *ch);
+// XEP-0373: OpenPGP for XMPP
+char* prefs_get_ox_char(void);
+gboolean prefs_set_ox_char(char *ch);
 
 char prefs_get_roster_header_char(void);
 void prefs_set_roster_header_char(char ch);
diff --git a/src/config/theme.c b/src/config/theme.c
index e9726593..c4df93a0 100644
--- a/src/config/theme.c
+++ b/src/config/theme.c
@@ -102,6 +102,7 @@ theme_init(const char *const theme_name)
     g_hash_table_insert(defaults, strdup("titlebar.chat"),           strdup("white"));
     g_hash_table_insert(defaults, strdup("titlebar.dnd"),            strdup("white"));
     g_hash_table_insert(defaults, strdup("titlebar.xa"),             strdup("white"));
+    g_hash_table_insert(defaults, strdup("titlebar.scrolled"),       strdup("default"));
     g_hash_table_insert(defaults, strdup("statusbar.text"),          strdup("white"));
     g_hash_table_insert(defaults, strdup("statusbar.brackets"),      strdup("cyan"));
     g_hash_table_insert(defaults, strdup("statusbar.active"),        strdup("cyan"));