diff options
author | ailin-nemui <ailin-nemui@users.noreply.github.com> | 2017-11-15 16:28:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-15 16:28:22 +0100 |
commit | 4e8c1548e01c15a9934b1a2d02ce2396ab859957 (patch) | |
tree | d86702448fcc2db0a7eb53929e9ccb1a27059496 /src/core | |
parent | 933fac7e9d4d1cea93887cb38bab51c938a8c687 (diff) | |
parent | 02c677f467b398f8b91b1e90544502ff98a6e0da (diff) | |
download | irssi-4e8c1548e01c15a9934b1a2d02ce2396ab859957.zip |
Merge pull request #786 from ailin-nemui/show-inital-nick
show initial nick and name on first start
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/settings.c | 10 | ||||
-rw-r--r-- | src/core/settings.h | 7 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/core/settings.c b/src/core/settings.c index 4e0717cd..3ebb9e4a 100644 --- a/src/core/settings.c +++ b/src/core/settings.c @@ -39,6 +39,7 @@ static GString *last_errors; static GSList *last_invalid_modules; static int fe_initialized; static int config_changed; /* FIXME: remove after .98 (unless needed again) */ +static unsigned int user_settings_changed; static GHashTable *settings; static int timeout_tag; @@ -464,6 +465,11 @@ SETTINGS_REC *settings_get_record(const char *key) return g_hash_table_lookup(settings, key); } +static void sig_init_userinfo_changed(gpointer changedp) +{ + user_settings_changed |= GPOINTER_TO_UINT(changedp); +} + static void sig_init_finished(void) { fe_initialized = TRUE; @@ -479,6 +485,8 @@ static void sig_init_finished(void) "updated, please /SAVE"); signal_emit("setup changed", 0); } + + signal_emit("settings userinfo changed", 1, GUINT_TO_POINTER(user_settings_changed)); } static void settings_clean_invalid_module(const char *module) @@ -875,6 +883,7 @@ void settings_init(void) timeout_tag = g_timeout_add(SETTINGS_AUTOSAVE_TIMEOUT, (GSourceFunc) sig_autosave, NULL); signal_add("irssi init finished", (SIGNAL_FUNC) sig_init_finished); + signal_add("irssi init userinfo changed", (SIGNAL_FUNC) sig_init_userinfo_changed); signal_add("gui exit", (SIGNAL_FUNC) sig_autosave); } @@ -887,6 +896,7 @@ void settings_deinit(void) { g_source_remove(timeout_tag); signal_remove("irssi init finished", (SIGNAL_FUNC) sig_init_finished); + signal_remove("irssi init userinfo changed", (SIGNAL_FUNC) sig_init_userinfo_changed); signal_remove("gui exit", (SIGNAL_FUNC) sig_autosave); g_slist_foreach(last_invalid_modules, (GFunc) g_free, NULL); diff --git a/src/core/settings.h b/src/core/settings.h index d174f250..b67a9e44 100644 --- a/src/core/settings.h +++ b/src/core/settings.h @@ -30,6 +30,13 @@ typedef struct { char **choices; } SETTINGS_REC; +enum { + USER_SETTINGS_REAL_NAME = 0x1, + USER_SETTINGS_USER_NAME = 0x2, + USER_SETTINGS_NICK = 0x4, + USER_SETTINGS_HOSTNAME = 0x8, +}; + /* macros for handling the default Irssi configuration */ #define iconfig_get_str(a, b, c) config_get_str(mainconfig, a, b, c) #define iconfig_get_int(a, b, c) config_get_int(mainconfig, a, b, c) |