diff options
Diffstat (limited to 'src/config')
-rw-r--r-- | src/config/cafile.c | 2 | ||||
-rw-r--r-- | src/config/preferences.c | 10 | ||||
-rw-r--r-- | src/config/preferences.h | 1 | ||||
-rw-r--r-- | src/config/theme.c | 28 |
4 files changed, 26 insertions, 15 deletions
diff --git a/src/config/cafile.c b/src/config/cafile.c index 4ac832bf..2bb3c4d0 100644 --- a/src/config/cafile.c +++ b/src/config/cafile.c @@ -33,6 +33,8 @@ * */ +#include "config.h" + #include <fcntl.h> #include <glib.h> #include <errno.h> diff --git a/src/config/preferences.c b/src/config/preferences.c index ec536762..1a01ab66 100644 --- a/src/config/preferences.c +++ b/src/config/preferences.c @@ -1830,6 +1830,7 @@ _get_group(preference_t pref) case PREF_NOTIFY_CHAT_TEXT: case PREF_NOTIFY_ROOM: case PREF_NOTIFY_ROOM_MENTION: + case PREF_NOTIFY_ROOM_OFFLINE: case PREF_NOTIFY_ROOM_TRIGGER: case PREF_NOTIFY_ROOM_CURRENT: case PREF_NOTIFY_ROOM_TEXT: @@ -1966,6 +1967,8 @@ _get_key(preference_t pref) return "room.trigger"; case PREF_NOTIFY_ROOM_MENTION: return "room.mention"; + case PREF_NOTIFY_ROOM_OFFLINE: + return "room.offline"; case PREF_NOTIFY_ROOM_CURRENT: return "room.current"; case PREF_NOTIFY_ROOM_TEXT: @@ -2220,8 +2223,6 @@ _get_default_string(preference_t pref) case PREF_OTR_POLICY: return "manual"; case PREF_STATUSES_CONSOLE: - case PREF_STATUSES_CHAT: - case PREF_STATUSES_MUC: return "all"; case PREF_ROSTER_BY: return "presence"; @@ -2234,6 +2235,8 @@ _get_default_string(preference_t pref) case PREF_ROSTER_ROOMS_POS: return "last"; case PREF_ROSTER_ROOMS_BY: + case PREF_STATUSES_CHAT: + case PREF_STATUSES_MUC: return "none"; case PREF_ROSTER_ROOMS_USE_AS_NAME: return "name"; @@ -2283,7 +2286,8 @@ _get_default_string(preference_t pref) return "xdg-open"; case PREF_URL_OPEN_CMD: return "xdg-open %u"; - case PREF_COMPOSE_EDITOR: { + case PREF_COMPOSE_EDITOR: + { gchar* editor = getenv("EDITOR"); return editor ? editor : "vim"; } diff --git a/src/config/preferences.h b/src/config/preferences.h index 6c8ad125..b663e82a 100644 --- a/src/config/preferences.h +++ b/src/config/preferences.h @@ -178,6 +178,7 @@ typedef enum { PREF_SILENCE_NON_ROSTER, PREF_OUTGOING_STAMP, PREF_INCOMING_STAMP, + PREF_NOTIFY_ROOM_OFFLINE, } preference_t; typedef struct prof_alias_t diff --git a/src/config/theme.c b/src/config/theme.c index 9becc833..38eb3f2e 100644 --- a/src/config/theme.c +++ b/src/config/theme.c @@ -184,6 +184,9 @@ theme_exists(const char* const theme_name) gboolean theme_load(const char* const theme_name, gboolean load_theme_prefs) { + if (!theme_exists(theme_name)) + return FALSE; + color_pair_cache_reset(); if (_theme_load_file(theme_name)) { @@ -663,20 +666,21 @@ theme_get_bkgnd(void) static void _theme_prep_fgnd(char* setting, GString* lookup_str, gboolean* bold) { - gchar* val = g_key_file_get_string(theme, "colours", setting, NULL); - if (!val) { - char* def = g_hash_table_lookup(defaults, setting); - g_string_append(lookup_str, def); + gchar* conf_str = g_key_file_get_string(theme, "colours", setting, NULL); + gchar* val = conf_str; + + if (!val) + val = g_hash_table_lookup(defaults, setting); + + if (g_str_has_prefix(val, "bold_")) { + g_string_append(lookup_str, &val[5]); + *bold = TRUE; } else { - if (g_str_has_prefix(val, "bold_")) { - g_string_append(lookup_str, &val[5]); - *bold = TRUE; - } else { - g_string_append(lookup_str, val); - *bold = FALSE; - } + g_string_append(lookup_str, val); + *bold = FALSE; } - g_free(val); + + g_free(conf_str); } char* |