diff --git a/plugins/xchat-plugin.h b/plugins/xchat-plugin.h index 15799424..373c664e 100644 --- a/plugins/xchat-plugin.h +++ b/plugins/xchat-plugin.h @@ -148,6 +148,8 @@ struct _xchat_plugin int value); int (*xchat_get_pluginpref_int) (xchat_plugin *ph, const char *var); + int (*xchat_del_pluginpref) (xchat_plugin *ph, + const char *var); }; #endif @@ -321,6 +323,10 @@ int xchat_get_pluginpref_int (xchat_plugin *ph, const char *var); +int +xchat_del_pluginpref (xchat_plugin *ph, + const char *var); + #if !defined(PLUGIN_C) && defined(WIN32) #ifndef XCHAT_PLUGIN_HANDLE #define XCHAT_PLUGIN_HANDLE (ph) @@ -359,6 +365,7 @@ xchat_get_pluginpref_int (xchat_plugin *ph, #define xchat_get_pluginpref_str ((XCHAT_PLUGIN_HANDLE)->xchat_get_pluginpref_str) #define xchat_set_pluginpref_int ((XCHAT_PLUGIN_HANDLE)->xchat_set_pluginpref_int) #define xchat_get_pluginpref_int ((XCHAT_PLUGIN_HANDLE)->xchat_get_pluginpref_int) +#define xchat_del_pluginpref ((XCHAT_PLUGIN_HANDLE)->xchat_del_pluginpref) #endif #ifdef __cplusplus diff --git a/src/common/plugin.c b/src/common/plugin.c index 5ed20b87..02cdcce5 100644 --- a/src/common/plugin.c +++ b/src/common/plugin.c @@ -274,6 +274,7 @@ plugin_add (session *sess, char *filename, void *handle, void *init_func, pl->xchat_get_pluginpref_str = xchat_get_pluginpref_str; pl->xchat_set_pluginpref_int = xchat_set_pluginpref_int; pl->xchat_get_pluginpref_int = xchat_get_pluginpref_int; + pl->xchat_del_pluginpref = xchat_del_pluginpref; /* incase new plugins are loaded on older xchat */ pl->xchat_dummy4 = xchat_dummy; @@ -1587,9 +1588,11 @@ xchat_free (xchat_plugin *ph, void *ptr) g_free (ptr); } -int -xchat_set_pluginpref_str (xchat_plugin *pl, const char *var, const char *value) +static int +xchat_set_pluginpref_str_real (xchat_plugin *pl, const char *var, const char *value, int mode) { + /* mode: 0 = delete, 1 = save */ + FILE *fpIn; int fhOut; int prevConfig; @@ -1683,6 +1686,12 @@ xchat_set_pluginpref_str (xchat_plugin *pl, const char *var, const char *value) } } +int +xchat_set_pluginpref_str (xchat_plugin *pl, const char *var, const char *value) +{ + return xchat_set_pluginpref_str (pl, var, value, 1); +} + int xchat_get_pluginpref_str (xchat_plugin *pl, const char *var, char *dest) { @@ -1741,7 +1750,7 @@ xchat_set_pluginpref_int (xchat_plugin *pl, const char *var, int value) char buffer[12]; sprintf (buffer, "%d", value); - return xchat_set_pluginpref_str (pl, var, buffer); + return xchat_set_pluginpref_str_real (pl, var, buffer, 1); } int @@ -1758,3 +1767,9 @@ xchat_get_pluginpref_int (xchat_plugin *pl, const char *var) return -1; } } + +int +xchat_del_pluginpref (xchat_plugin *pl, const char *var) +{ + xchat_set_pluginpref_str_real (pl, var, 0, 0); +} diff --git a/src/common/plugin.h b/src/common/plugin.h index cddb86fb..bb86f0a3 100644 --- a/src/common/plugin.h +++ b/src/common/plugin.h @@ -109,6 +109,8 @@ struct _xchat_plugin int value); int (*xchat_get_pluginpref_int) (xchat_plugin *ph, const char *var); + int (*xchat_del_pluginpref) (xchat_plugin *ph, + const 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 15799424..373c664e 100644 --- a/src/common/xchat-plugin.h +++ b/src/common/xchat-plugin.h @@ -148,6 +148,8 @@ struct _xchat_plugin int value); int (*xchat_get_pluginpref_int) (xchat_plugin *ph, const char *var); + int (*xchat_del_pluginpref) (xchat_plugin *ph, + const char *var); }; #endif @@ -321,6 +323,10 @@ int xchat_get_pluginpref_int (xchat_plugin *ph, const char *var); +int +xchat_del_pluginpref (xchat_plugin *ph, + const char *var); + #if !defined(PLUGIN_C) && defined(WIN32) #ifndef XCHAT_PLUGIN_HANDLE #define XCHAT_PLUGIN_HANDLE (ph) @@ -359,6 +365,7 @@ xchat_get_pluginpref_int (xchat_plugin *ph, #define xchat_get_pluginpref_str ((XCHAT_PLUGIN_HANDLE)->xchat_get_pluginpref_str) #define xchat_set_pluginpref_int ((XCHAT_PLUGIN_HANDLE)->xchat_set_pluginpref_int) #define xchat_get_pluginpref_int ((XCHAT_PLUGIN_HANDLE)->xchat_get_pluginpref_int) +#define xchat_del_pluginpref ((XCHAT_PLUGIN_HANDLE)->xchat_del_pluginpref) #endif #ifdef __cplusplus diff --git a/src/version-script b/src/version-script index e76f4fe9..fe04dd46 100644 --- a/src/version-script +++ b/src/version-script @@ -34,5 +34,6 @@ EXPORTED { xchat_get_pluginpref_str; xchat_set_pluginpref_int; xchat_get_pluginpref_int; + xchat_del_pluginpref; local: *; };