summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEmanuele Giaquinta <exg@irssi.org>2007-04-29 11:20:36 +0000
committerexg <exg@dbcabf3a-b0e7-0310-adc4-f8d773084564>2007-04-29 11:20:36 +0000
commit983ee1db888e8f478990ac900ce01cfefe30c890 (patch)
treed58ee78680258feb12ab96039a393b7784db1c54 /src
parent09f2bf2c058da1e6dd57d67d71f45f2477dc5209 (diff)
downloadirssi-983ee1db888e8f478990ac900ce01cfefe30c890.zip
Factor out code from set_print into a function to get a printable
representation of a setting. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4470 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src')
-rw-r--r--src/core/settings.c21
-rw-r--r--src/core/settings.h1
-rw-r--r--src/fe-common/core/fe-settings.c24
3 files changed, 26 insertions, 20 deletions
diff --git a/src/core/settings.c b/src/core/settings.c
index 2f32ac92..3adc14a4 100644
--- a/src/core/settings.c
+++ b/src/core/settings.c
@@ -148,6 +148,27 @@ int settings_get_size(const char *key)
return str == NULL ? 0 : bytes;
}
+char *settings_get_print(SETTINGS_REC *rec)
+{
+ char *value;
+
+ switch(rec->type) {
+ case SETTING_TYPE_BOOLEAN:
+ value = g_strdup(settings_get_bool(rec->key) ? "ON" : "OFF");
+ break;
+ case SETTING_TYPE_INT:
+ value = g_strdup_printf("%d", settings_get_int(rec->key));
+ break;
+ case SETTING_TYPE_STRING:
+ case SETTING_TYPE_TIME:
+ case SETTING_TYPE_LEVEL:
+ case SETTING_TYPE_SIZE:
+ value = g_strdup(settings_get_str(rec->key));
+ break;
+ }
+ return value;
+}
+
static void settings_add(const char *module, const char *section,
const char *key, SettingType type,
const SettingValue *default_value)
diff --git a/src/core/settings.h b/src/core/settings.h
index 8a712dce..d3ff3083 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -55,6 +55,7 @@ int settings_get_bool(const char *key);
int settings_get_time(const char *key); /* as milliseconds */
int settings_get_level(const char *key);
int settings_get_size(const char *key); /* as bytes */
+char *settings_get_print(SETTINGS_REC *rec);
/* Functions to add/remove settings */
void settings_add_str_module(const char *module, const char *section,
diff --git a/src/fe-common/core/fe-settings.c b/src/fe-common/core/fe-settings.c
index dccfcba9..24cf8b9e 100644
--- a/src/fe-common/core/fe-settings.c
+++ b/src/fe-common/core/fe-settings.c
@@ -33,28 +33,12 @@
static void set_print(SETTINGS_REC *rec)
{
- const char *value;
- char value_int[MAX_INT_STRLEN];
-
- switch (rec->type) {
- case SETTING_TYPE_BOOLEAN:
- value = settings_get_bool(rec->key) ? "ON" : "OFF";
- break;
- case SETTING_TYPE_INT:
- ltoa(value_int, settings_get_int(rec->key));
- value = value_int;
- break;
- case SETTING_TYPE_STRING:
- case SETTING_TYPE_TIME:
- case SETTING_TYPE_LEVEL:
- case SETTING_TYPE_SIZE:
- value = settings_get_str(rec->key);
- break;
- default:
- value = "";
- }
+ char *value;
+
+ value = settings_get_print(rec);
printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_SET_ITEM,
rec->key, value);
+ g_free(value);
}
static void set_boolean(const char *key, const char *value)