From 1567d326971811fd956042aaa43c932d247b4681 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Wed, 30 Nov 2011 08:28:19 +0100 Subject: [PATCH] plugin config - separate string and int functions --- plugins/xchat-plugin.h | 27 +++++++++++++++++++++------ src/common/plugin.c | 26 ++++++++++++++++++++++---- src/common/plugin.h | 12 ++++++++---- src/common/xchat-plugin.h | 27 +++++++++++++++++++++------ 4 files changed, 72 insertions(+), 20 deletions(-) diff --git a/plugins/xchat-plugin.h b/plugins/xchat-plugin.h index c3606b19..c278012a 100644 --- a/plugins/xchat-plugin.h +++ b/plugins/xchat-plugin.h @@ -137,12 +137,17 @@ struct _xchat_plugin int flags); void (*xchat_free) (xchat_plugin *ph, void *ptr); - int (*xchat_set_plugin_pref) (xchat_plugin *ph, + int (*xchat_set_plugin_pref_str) (xchat_plugin *ph, char *var, char *value); - int (*xchat_get_plugin_pref) (xchat_plugin *ph, + int (*xchat_get_plugin_pref_str) (xchat_plugin *ph, char *var, char *dest); + int (*xchat_set_plugin_pref_int) (xchat_plugin *ph, + char *var, + int value); + int (*xchat_get_plugin_pref_int) (xchat_plugin *ph, + char *var); }; #endif @@ -299,15 +304,23 @@ xchat_free (xchat_plugin *ph, void *ptr); int -xchat_set_plugin_pref (xchat_plugin *ph, +xchat_set_plugin_pref_str (xchat_plugin *ph, char *var, char *value); int -xchat_get_plugin_pref (xchat_plugin *ph, +xchat_get_plugin_pref_str (xchat_plugin *ph, char *var, char *dest); +int +xchat_set_plugin_pref_int (xchat_plugin *ph, + char *var, + int value); +int +xchat_get_plugin_pref_int (xchat_plugin *ph, + char *var); + #if !defined(PLUGIN_C) && defined(WIN32) #ifndef XCHAT_PLUGIN_HANDLE #define XCHAT_PLUGIN_HANDLE (ph) @@ -342,8 +355,10 @@ xchat_get_plugin_pref (xchat_plugin *ph, #define xchat_send_modes ((XCHAT_PLUGIN_HANDLE)->xchat_send_modes) #define xchat_strip ((XCHAT_PLUGIN_HANDLE)->xchat_strip) #define xchat_free ((XCHAT_PLUGIN_HANDLE)->xchat_free) -#define xchat_set_plugin_pref ((XCHAT_PLUGIN_HANDLE)->xchat_set_plugin_pref) -#define xchat_get_plugin_pref ((XCHAT_PLUGIN_HANDLE)->xchat_get_plugin_pref) +#define xchat_set_plugin_pref_str ((XCHAT_PLUGIN_HANDLE)->xchat_set_plugin_pref_str) +#define xchat_get_plugin_pref_str ((XCHAT_PLUGIN_HANDLE)->xchat_get_plugin_pref_str) +#define xchat_set_plugin_pref_int ((XCHAT_PLUGIN_HANDLE)->xchat_set_plugin_pref_int) +#define xchat_get_plugin_pref_int ((XCHAT_PLUGIN_HANDLE)->xchat_get_plugin_pref_int) #endif #ifdef __cplusplus diff --git a/src/common/plugin.c b/src/common/plugin.c index 41690038..bd960ea5 100644 --- a/src/common/plugin.c +++ b/src/common/plugin.c @@ -270,8 +270,10 @@ plugin_add (session *sess, char *filename, void *handle, void *init_func, pl->xchat_send_modes = xchat_send_modes; pl->xchat_strip = xchat_strip; pl->xchat_free = xchat_free; - pl->xchat_set_plugin_pref = xchat_set_plugin_pref; - pl->xchat_get_plugin_pref = xchat_get_plugin_pref; + pl->xchat_set_plugin_pref_str = xchat_set_plugin_pref_str; + pl->xchat_get_plugin_pref_str = xchat_get_plugin_pref_str; + pl->xchat_set_plugin_pref_int = xchat_set_plugin_pref_int; + pl->xchat_get_plugin_pref_int= xchat_get_plugin_pref_int; /* incase new plugins are loaded on older xchat */ pl->xchat_dummy4 = xchat_dummy; @@ -1582,7 +1584,7 @@ xchat_free (xchat_plugin *ph, void *ptr) } int -xchat_set_plugin_pref (xchat_plugin *pl, char *var, char *value) +xchat_set_plugin_pref_str (xchat_plugin *pl, char *var, char *value) { FILE *fpIn; int fhOut; @@ -1678,7 +1680,7 @@ xchat_set_plugin_pref (xchat_plugin *pl, char *var, char *value) } int -xchat_get_plugin_pref (xchat_plugin *pl, char *var, char *dest) +xchat_get_plugin_pref_str (xchat_plugin *pl, char *var, char *dest) { int fh; int l; @@ -1728,3 +1730,19 @@ xchat_get_plugin_pref (xchat_plugin *pl, char *var, char *dest) close (fh); return 1; } + +int +xchat_set_plugin_pref_int (xchat_plugin *pl, char *var, int value) +{ + char buffer[12]; + sprintf (buffer, "%d", value); + return xchat_set_plugin_pref_str (pl, var, buffer); +} + +int +xchat_get_plugin_pref_int (xchat_plugin *pl, char *var) +{ + char buffer[12]; + xchat_get_plugin_pref_str (pl, var, buffer); + return atoi (buffer); +} diff --git a/src/common/plugin.h b/src/common/plugin.h index 6a2d62e2..f0ae6fc4 100644 --- a/src/common/plugin.h +++ b/src/common/plugin.h @@ -98,13 +98,17 @@ struct _xchat_plugin int flags); void (*xchat_free) (xchat_plugin *ph, void *ptr); - int (*xchat_set_plugin_pref) (xchat_plugin *ph, + int (*xchat_set_plugin_pref_str) (xchat_plugin *ph, char *var, char *value); - int (*xchat_get_plugin_pref) (xchat_plugin *ph, + int (*xchat_get_plugin_pref_str) (xchat_plugin *ph, char *var, - char *dest, - int dest_len); + char *dest); + int (*xchat_set_plugin_pref_int) (xchat_plugin *ph, + char *var, + int value); + int (*xchat_get_plugin_pref_int) (xchat_plugin *ph, + char *var); void *(*xchat_dummy4) (xchat_plugin *ph); void *(*xchat_dummy3) (xchat_plugin *ph); void *(*xchat_dummy2) (xchat_plugin *ph); diff --git a/src/common/xchat-plugin.h b/src/common/xchat-plugin.h index c3606b19..c278012a 100644 --- a/src/common/xchat-plugin.h +++ b/src/common/xchat-plugin.h @@ -137,12 +137,17 @@ struct _xchat_plugin int flags); void (*xchat_free) (xchat_plugin *ph, void *ptr); - int (*xchat_set_plugin_pref) (xchat_plugin *ph, + int (*xchat_set_plugin_pref_str) (xchat_plugin *ph, char *var, char *value); - int (*xchat_get_plugin_pref) (xchat_plugin *ph, + int (*xchat_get_plugin_pref_str) (xchat_plugin *ph, char *var, char *dest); + int (*xchat_set_plugin_pref_int) (xchat_plugin *ph, + char *var, + int value); + int (*xchat_get_plugin_pref_int) (xchat_plugin *ph, + char *var); }; #endif @@ -299,15 +304,23 @@ xchat_free (xchat_plugin *ph, void *ptr); int -xchat_set_plugin_pref (xchat_plugin *ph, +xchat_set_plugin_pref_str (xchat_plugin *ph, char *var, char *value); int -xchat_get_plugin_pref (xchat_plugin *ph, +xchat_get_plugin_pref_str (xchat_plugin *ph, char *var, char *dest); +int +xchat_set_plugin_pref_int (xchat_plugin *ph, + char *var, + int value); +int +xchat_get_plugin_pref_int (xchat_plugin *ph, + char *var); + #if !defined(PLUGIN_C) && defined(WIN32) #ifndef XCHAT_PLUGIN_HANDLE #define XCHAT_PLUGIN_HANDLE (ph) @@ -342,8 +355,10 @@ xchat_get_plugin_pref (xchat_plugin *ph, #define xchat_send_modes ((XCHAT_PLUGIN_HANDLE)->xchat_send_modes) #define xchat_strip ((XCHAT_PLUGIN_HANDLE)->xchat_strip) #define xchat_free ((XCHAT_PLUGIN_HANDLE)->xchat_free) -#define xchat_set_plugin_pref ((XCHAT_PLUGIN_HANDLE)->xchat_set_plugin_pref) -#define xchat_get_plugin_pref ((XCHAT_PLUGIN_HANDLE)->xchat_get_plugin_pref) +#define xchat_set_plugin_pref_str ((XCHAT_PLUGIN_HANDLE)->xchat_set_plugin_pref_str) +#define xchat_get_plugin_pref_str ((XCHAT_PLUGIN_HANDLE)->xchat_get_plugin_pref_str) +#define xchat_set_plugin_pref_int ((XCHAT_PLUGIN_HANDLE)->xchat_set_plugin_pref_int) +#define xchat_get_plugin_pref_int ((XCHAT_PLUGIN_HANDLE)->xchat_get_plugin_pref_int) #endif #ifdef __cplusplus