diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2007-12-02 18:02:18 +0100 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2007-12-02 18:02:18 +0100 |
commit | fab33dc4df8dfd717012f046987b138e0af5b22f (patch) | |
tree | 604577ae7586baa19c2d9f282edb7b875d481c72 /src/plugins | |
parent | 5c579ec3b88e61a4f6f61e7dc8cbf9621a1ec2f5 (diff) | |
download | weechat-fab33dc4df8dfd717012f046987b138e0af5b22f.zip |
Added config files management in plugins API
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/demo/demo.c | 4 | ||||
-rw-r--r-- | src/plugins/plugin-api.c | 416 | ||||
-rw-r--r-- | src/plugins/plugin-api.h | 30 | ||||
-rw-r--r-- | src/plugins/plugin-config.c | 7 | ||||
-rw-r--r-- | src/plugins/plugin-list.c | 10 | ||||
-rw-r--r-- | src/plugins/plugin-list.h | 6 | ||||
-rw-r--r-- | src/plugins/plugin.c | 2 | ||||
-rw-r--r-- | src/plugins/weechat-plugin.h | 259 |
8 files changed, 475 insertions, 259 deletions
diff --git a/src/plugins/demo/demo.c b/src/plugins/demo/demo.c index 6797e5afc..1df07869c 100644 --- a/src/plugins/demo/demo.c +++ b/src/plugins/demo/demo.c @@ -141,8 +141,8 @@ demo_print_list (void *list, char *item_name) case 'i': weechat_printf (NULL, " %s: %d", argv[j] + 2, - weechat_list_int (list, - argv[j] + 2)); + weechat_list_integer (list, + argv[j] + 2)); break; case 's': weechat_printf (NULL, " %s: %s", diff --git a/src/plugins/plugin-api.c b/src/plugins/plugin-api.c index 1dbb9372d..a95435bdb 100644 --- a/src/plugins/plugin-api.c +++ b/src/plugins/plugin-api.c @@ -254,6 +254,276 @@ plugin_api_exec_on_files (struct t_weechat_plugin *plugin, char *directory, } /* + * plugin_api_config_new: create new config file structure + */ + +struct t_config_file * +plugin_api_config_new (struct t_weechat_plugin *plugin, char *filename) +{ + return config_file_new (plugin, filename); +} + +/* + * plugin_api_config_new_section: create new section in a config + */ + +struct t_config_section * +plugin_api_config_new_section (struct t_weechat_plugin *plugin, + void *config_file, char *name, + void (*callback_read)(void *, char *, char *), + void (*callback_write)(void *), + void (*callback_write_default)(void *)) +{ + /* make C compiler happy */ + (void) plugin; + + return config_file_new_section (config_file, name, callback_read, + callback_write, callback_write_default); +} + +/* + * plugin_api_config_new_option: create new option in a config section + */ + +struct t_config_option * +plugin_api_config_new_option (struct t_weechat_plugin *plugin, + void *section, char *name, char *type, + char *description, char *string_values, + int min, int max, char *default_value, + void (*callback_change)()) + +{ + long number; + char *error; + + /* make C compiler happy */ + (void) plugin; + + if (string_strcasecmp (type, "boolean") == 0) + { + return config_file_new_option_boolean ( + section, name, description, + (config_file_string_boolean_value (default_value) == CONFIG_BOOLEAN_TRUE) ? + CONFIG_BOOLEAN_TRUE : CONFIG_BOOLEAN_FALSE, + callback_change); + } + if (string_strcasecmp (type, "integer") == 0) + { + error = NULL; + number = strtol (default_value, &error, 10); + if (error && (error[0] == '\0')) + { + if (string_values && string_values[0]) + return config_file_new_option_integer_with_string ( + section, name, description, string_values, number, + callback_change); + return config_file_new_option_integer ( + section, name, description, min, max, number, + callback_change); + } + else + return NULL; + } + if (string_strcasecmp (type, "string") == 0) + { + return config_file_new_option_string ( + section, name, description, min, max, default_value, + callback_change); + } + if (string_strcasecmp (type, "color") == 0) + { + return config_file_new_option_color ( + section, name, description, min, default_value, + callback_change); + } + + /* unknown option type */ + return NULL; +} + +/* + * plugin_api_config_boolean: return boolean value of an option + */ + +char +plugin_api_config_boolean (struct t_weechat_plugin *plugin, void *option) +{ + if (plugin && config_file_option_valid_for_plugin (plugin, option) + && (((struct t_config_option *)option)->type == CONFIG_OPTION_BOOLEAN)) + return CONFIG_BOOLEAN((struct t_config_option *)option); + else + return 0; +} + +/* + * plugin_api_config_integer: return integer value of an option + */ + +int +plugin_api_config_integer (struct t_weechat_plugin *plugin, void *option) +{ + if (plugin && config_file_option_valid_for_plugin (plugin, option) + && (((struct t_config_option *)option)->type == CONFIG_OPTION_INTEGER)) + return CONFIG_INTEGER((struct t_config_option *)option); + else + return 0; +} + +/* + * plugin_api_config_string: return string value of an option + */ + +char * +plugin_api_config_string (struct t_weechat_plugin *plugin, void *option) +{ + if (plugin && config_file_option_valid_for_plugin (plugin, option) + && (((struct t_config_option *)option)->type == CONFIG_OPTION_STRING)) + return CONFIG_STRING((struct t_config_option *)option); + else + return NULL; +} + +/* + * plugin_api_config_color: return color value of an option + */ + +int +plugin_api_config_color (struct t_weechat_plugin *plugin, void *option) +{ + if (plugin && config_file_option_valid_for_plugin (plugin, option) + && (((struct t_config_option *)option)->type == CONFIG_OPTION_COLOR)) + return CONFIG_COLOR((struct t_config_option *)option); + else + return 0; +} + +/* + * plugin_api_get_config_str_value: return string value for any option + * This function should never be called directly + * (only used by weechat_get_config) + */ + +char * +plugin_api_get_config_str_value (struct t_config_option *option) +{ + char buf_temp[1024], *color_name; + + switch (option->type) + { + case CONFIG_OPTION_BOOLEAN: + return (CONFIG_BOOLEAN(option) == CONFIG_BOOLEAN_TRUE) ? + strdup ("on") : strdup ("off"); + case CONFIG_OPTION_INTEGER: + if (option->string_values) + snprintf (buf_temp, sizeof (buf_temp), "%s", + option->string_values[CONFIG_INTEGER(option)]); + else + snprintf (buf_temp, sizeof (buf_temp), "%d", + CONFIG_INTEGER(option)); + return strdup (buf_temp); + case CONFIG_OPTION_STRING: + return strdup (CONFIG_STRING(option)); + case CONFIG_OPTION_COLOR: + color_name = gui_color_get_name (CONFIG_INTEGER(option)); + return (color_name) ? strdup (color_name) : strdup (""); + } + + /* should never be executed! */ + return NULL; +} + +/* + * plugin_api_config_get: get value of a WeeChat config option + */ + +char * +plugin_api_config_get (struct t_weechat_plugin *plugin, char *option_name) +{ + struct t_config_option *ptr_option; + + /* make C compiler happy */ + (void) plugin; + + /* search WeeChat config option */ + ptr_option = config_file_search_option (weechat_config, NULL, option_name); + if (ptr_option) + return plugin_api_get_config_str_value (ptr_option); + + /* option not found */ + return NULL; +} + +/* + * plugin_api_config_set: set value of a config option + */ + +int +plugin_api_config_set (struct t_weechat_plugin *plugin, char *option_name, + char *value) +{ + struct t_config_option *ptr_option; + int rc; + + /* make C compiler happy */ + (void) plugin; + + if (!option_name || !value) + return 0; + + /* search and set WeeChat config option if found */ + ptr_option = config_file_search_option (weechat_config, NULL, option_name); + if (ptr_option) + { + rc = config_file_option_set (ptr_option, value); + if ((rc == 2) && (ptr_option->callback_change)) + (void) (ptr_option->callback_change) (); + if (rc == 0) + return 0; + return 1; + } + + /* failed to set config option */ + return 0; +} + +/* + * plugin_api_plugin_config_get: get value of a plugin config option + */ + +char * +plugin_api_plugin_config_get (struct t_weechat_plugin *plugin, char *option_name) +{ + struct t_config_option *ptr_option; + + if (!option_name) + return NULL; + + ptr_option = plugin_config_search (plugin->name, option_name); + if (ptr_option) + return (ptr_option->value) ? strdup (ptr_option->value) : NULL; + + /* option not found */ + return NULL; +} + +/* + * plugin_api_plugin_config_set: set value of a plugin config option + */ + +int +plugin_api_plugin_config_set (struct t_weechat_plugin *plugin, + char *option_name, char *value) +{ + if (!option_name) + return 0; + + if (plugin_config_set (plugin->name, option_name, value)) + return 1; + + return 0; +} + +/* * plugin_api_prefix: return a prefix for display with printf */ @@ -835,21 +1105,21 @@ plugin_api_list_get_add_buffer (struct t_plugin_list *list, if (!plugin_list_new_var_pointer (ptr_item, "pointer", buffer)) return 0; - if (!plugin_list_new_var_int (ptr_item, "number", buffer->number)) + if (!plugin_list_new_var_integer (ptr_item, "number", buffer->number)) return 0; if (!plugin_list_new_var_string (ptr_item, "category", buffer->category)) return 0; if (!plugin_list_new_var_string (ptr_item, "name", buffer->name)) return 0; - if (!plugin_list_new_var_int (ptr_item, "type", buffer->type)) + if (!plugin_list_new_var_integer (ptr_item, "type", buffer->type)) return 0; - if (!plugin_list_new_var_int (ptr_item, "notify_level", buffer->notify_level)) + if (!plugin_list_new_var_integer (ptr_item, "notify_level", buffer->notify_level)) return 0; - if (!plugin_list_new_var_int (ptr_item, "num_displayed", buffer->num_displayed)) + if (!plugin_list_new_var_integer (ptr_item, "num_displayed", buffer->num_displayed)) return 0; if (!plugin_list_new_var_string (ptr_item, "title", buffer->title)) return 0; - if (!plugin_list_new_var_int (ptr_item, "input", buffer->input)) + if (!plugin_list_new_var_integer (ptr_item, "input", buffer->input)) return 0; if (!plugin_list_new_var_string (ptr_item, "input_nick", buffer->input_nick)) return 0; @@ -1024,19 +1294,19 @@ plugin_api_list_fields (struct t_weechat_plugin *plugin, void *list) } /* - * plugin_api_list_int: get an integer variable value in current list item + * plugin_api_list_integer: get an integer variable value in current list item */ int -plugin_api_list_int (struct t_weechat_plugin *plugin, void *list, - char *var) +plugin_api_list_integer (struct t_weechat_plugin *plugin, void *list, + char *var) { if (!plugin || !list || !plugin_list_valid ((struct t_plugin_list *)list) || !((struct t_plugin_list *)list)->ptr_item) return 0; - return plugin_list_get_int ((struct t_plugin_list *)list, var); + return plugin_list_get_integer ((struct t_plugin_list *)list, var); } /* @@ -1099,132 +1369,6 @@ plugin_api_list_free (struct t_weechat_plugin *plugin, void *list) } /* - * plugin_api_get_config_str_value: return string value for any option - * This function should never be called directly - * (only used by weechat_get_config) - */ - -char * -plugin_api_get_config_str_value (struct t_config_option *option) -{ - char buf_temp[1024], *color_name; - - switch (option->type) - { - case CONFIG_OPTION_BOOLEAN: - return (CONFIG_BOOLEAN(option) == CONFIG_BOOLEAN_TRUE) ? - strdup ("on") : strdup ("off"); - case CONFIG_OPTION_INTEGER: - if (option->string_values) - snprintf (buf_temp, sizeof (buf_temp), "%s", - option->string_values[CONFIG_INTEGER(option)]); - else - snprintf (buf_temp, sizeof (buf_temp), "%d", - CONFIG_INTEGER(option)); - return strdup (buf_temp); - case CONFIG_OPTION_STRING: - return strdup (CONFIG_STRING(option)); - case CONFIG_OPTION_COLOR: - color_name = gui_color_get_name (CONFIG_INTEGER(option)); - return (color_name) ? strdup (color_name) : strdup (""); - } - - /* should never be executed! */ - return NULL; -} - -/* - * plugin_api_config_get: get value of a WeeChat config option - */ - -char * -plugin_api_config_get (struct t_weechat_plugin *plugin, char *option_name) -{ - struct t_config_option *ptr_option; - - /* make C compiler happy */ - (void) plugin; - - /* search WeeChat config option */ - ptr_option = config_file_search_option (weechat_config, NULL, option_name); - if (ptr_option) - return plugin_api_get_config_str_value (ptr_option); - - /* option not found */ - return NULL; -} - -/* - * plugin_api_config_set: set value of a config option - */ - -int -plugin_api_config_set (struct t_weechat_plugin *plugin, char *option_name, - char *value) -{ - struct t_config_option *ptr_option; - int rc; - - /* make C compiler happy */ - (void) plugin; - - if (!option_name || !value) - return 0; - - /* search and set WeeChat config option if found */ - ptr_option = config_file_search_option (weechat_config, NULL, option_name); - if (ptr_option) - { - rc = config_file_option_set (ptr_option, value); - if ((rc == 2) && (ptr_option->callback_change)) - (void) (ptr_option->callback_change) (); - if (rc == 0) - return 0; - return 1; - } - - /* failed to set config option */ - return 0; -} - -/* - * plugin_api_plugin_config_get: get value of a plugin config option - */ - -char * -plugin_api_plugin_config_get (struct t_weechat_plugin *plugin, char *option_name) -{ - struct t_config_option *ptr_option; - - if (!option_name) - return NULL; - - ptr_option = plugin_config_search (plugin->name, option_name); - if (ptr_option) - return (ptr_option->value) ? strdup (ptr_option->value) : NULL; - - /* option not found */ - return NULL; -} - -/* - * plugin_api_plugin_config_set: set value of a plugin config option - */ - -int -plugin_api_plugin_config_set (struct t_weechat_plugin *plugin, - char *option_name, char *value) -{ - if (!option_name) - return 0; - - if (plugin_config_set (plugin->name, option_name, value)) - return 1; - - return 0; -} - -/* * plugin_api_log: add a message in buffer log file */ @@ -1256,5 +1400,5 @@ plugin_api_log (struct t_weechat_plugin *plugin, gui_log_write_line (ptr_buffer, (buf2) ? buf2 : buf); if (buf2) free (buf2); - }*/ + }*/ } diff --git a/src/plugins/plugin-api.h b/src/plugins/plugin-api.h index 7dcb54361..2b98ecac3 100644 --- a/src/plugins/plugin-api.h +++ b/src/plugins/plugin-api.h @@ -44,6 +44,27 @@ extern int plugin_api_mkdir_home (struct t_weechat_plugin *, char *); extern void plugin_api_exec_on_files (struct t_weechat_plugin *, char *, int (*)(char *)); +/* config */ +extern struct t_config_file *config_new (struct t_weechat_plugin *, char *); +extern struct t_config_section *config_new_section (struct t_weechat_plugin *, + void *, char *, + void (*)(void *, char *, char *), + void (*)(void *), + void (*)(void *)); +extern struct t_config_option *config_new_option (struct t_weechat_plugin *, + void *, char *, char *, + char *, char *, int, int, + char *, void (*)()); +extern char config_boolean (struct t_weechat_plugin *, void *); +extern int config_integer (struct t_weechat_plugin *, void *); +extern char *config_string (struct t_weechat_plugin *, void *); +extern int config_color (struct t_weechat_plugin *, void *); +extern char *plugin_api_config_get (struct t_weechat_plugin *, char *); +extern int plugin_api_config_set (struct t_weechat_plugin *, char *, char *); +extern char *plugin_api_plugin_config_get (struct t_weechat_plugin *, char *); +extern int plugin_api_plugin_config_set (struct t_weechat_plugin *, char *, + char *); + /* display */ extern char *plugin_api_prefix (struct t_weechat_plugin *, char *); extern char *plugin_api_color (struct t_weechat_plugin *, char *); @@ -109,19 +130,12 @@ extern int plugin_api_list_next (struct t_weechat_plugin *, extern int plugin_api_list_prev (struct t_weechat_plugin *, void *); extern char *plugin_api_list_fields (struct t_weechat_plugin *, void *); -extern int plugin_api_list_int (struct t_weechat_plugin *, void *, char *); +extern int plugin_api_list_integer (struct t_weechat_plugin *, void *, char *); extern char *plugin_api_list_string (struct t_weechat_plugin *, void *, char *); extern void *plugin_api_list_pointer (struct t_weechat_plugin *, void *, char *); extern time_t plugin_api_list_time (struct t_weechat_plugin *, void *, char *); extern void plugin_api_list_free (struct t_weechat_plugin *, void *); -/* config */ -extern char *plugin_api_config_get (struct t_weechat_plugin *, char *); -extern int plugin_api_config_set (struct t_weechat_plugin *, char *, char *); -extern char *plugin_api_plugin_config_get (struct t_weechat_plugin *, char *); -extern int plugin_api_plugin_config_set (struct t_weechat_plugin *, char *, - char *); - /* log */ extern void plugin_api_log (struct t_weechat_plugin *, char *, char *, char *, ...); diff --git a/src/plugins/plugin-config.c b/src/plugins/plugin-config.c index b2976e72a..c0c391e87 100644 --- a/src/plugins/plugin-config.c +++ b/src/plugins/plugin-config.c @@ -289,8 +289,7 @@ plugin_config_free_all () */ void -plugin_config_read_option (struct t_config_file *config_file, - char *option_name, char *value) +plugin_config_read_option (void *config_file, char *option_name, char *value) { char *value2; @@ -309,7 +308,7 @@ plugin_config_read_option (struct t_config_file *config_file, */ void -plugin_config_write_options (struct t_config_file *config_file) +plugin_config_write_options (void *config_file) { struct t_config_option *ptr_option; @@ -329,7 +328,7 @@ plugin_config_write_options (struct t_config_file *config_file) void plugin_config_init () { - plugin_config = config_file_new (PLUGIN_CONFIG_FILENAME); + plugin_config = config_file_new (NULL, PLUGIN_CONFIG_FILENAME); if (plugin_config) { config_file_new_section (plugin_config, "plugin", diff --git a/src/plugins/plugin-list.c b/src/plugins/plugin-list.c index da3de5dac..243041eb8 100644 --- a/src/plugins/plugin-list.c +++ b/src/plugins/plugin-list.c @@ -93,12 +93,12 @@ plugin_list_new_item (struct t_plugin_list *list) } /* - * plugin_list_new_var_int: create a new integer variable in an item + * plugin_list_new_var_integer: create a new integer variable in an item */ struct t_plugin_list_var * -plugin_list_new_var_int (struct t_plugin_list_item *item, - char *name, int value) +plugin_list_new_var_integer (struct t_plugin_list_item *item, + char *name, int value) { struct t_plugin_list_var *new_var; @@ -334,11 +334,11 @@ plugin_list_get_fields (struct t_plugin_list *list) } /* - * plugin_list_get_int: get an integer variable value in current list item + * plugin_list_get_integer: get an integer variable value in current list item */ int -plugin_list_get_int (struct t_plugin_list *list, char *var) +plugin_list_get_integer (struct t_plugin_list *list, char *var) { struct t_plugin_list_var *ptr_var; diff --git a/src/plugins/plugin-list.h b/src/plugins/plugin-list.h index 05ef7204f..b415d4f71 100644 --- a/src/plugins/plugin-list.h +++ b/src/plugins/plugin-list.h @@ -67,8 +67,8 @@ extern struct t_plugin_list *last_plugin_list; extern struct t_plugin_list *plugin_list_new (); extern struct t_plugin_list_item *plugin_list_new_item (struct t_plugin_list *); -extern struct t_plugin_list_var *plugin_list_new_var_int (struct t_plugin_list_item *, - char *, int); +extern struct t_plugin_list_var *plugin_list_new_var_integer (struct t_plugin_list_item *, + char *, int); extern struct t_plugin_list_var *plugin_list_new_var_string (struct t_plugin_list_item *, char *, char *); extern struct t_plugin_list_var *plugin_list_new_var_pointer (struct t_plugin_list_item *, @@ -79,7 +79,7 @@ extern int plugin_list_valid (struct t_plugin_list *); extern struct t_plugin_list_item *plugin_list_next_item (struct t_plugin_list *); extern struct t_plugin_list_item *plugin_list_prev_item (struct t_plugin_list *); extern char *plugin_list_get_fields (struct t_plugin_list *); -extern int plugin_list_get_int (struct t_plugin_list *, char *); +extern int plugin_list_get_integer (struct t_plugin_list *, char *); extern char *plugin_list_get_string (struct t_plugin_list *, char *); extern void *plugin_list_get_pointer (struct t_plugin_list *, char *); extern time_t plugin_list_get_time (struct t_plugin_list *, char *); diff --git a/src/plugins/plugin.c b/src/plugins/plugin.c index b8fa1597d..cd5d2cb0a 100644 --- a/src/plugins/plugin.c +++ b/src/plugins/plugin.c @@ -269,7 +269,7 @@ plugin_load (char *filename) new_plugin->list_next = &plugin_api_list_next; new_plugin->list_prev = &plugin_api_list_prev; new_plugin->list_fields = &plugin_api_list_fields; - new_plugin->list_int = &plugin_api_list_int; + new_plugin->list_integer = &plugin_api_list_integer; new_plugin->list_string = &plugin_api_list_string; new_plugin->list_pointer = &plugin_api_list_pointer; new_plugin->list_time = &plugin_api_list_time; diff --git a/src/plugins/weechat-plugin.h b/src/plugins/weechat-plugin.h index be24519d0..22537e4f5 100644 --- a/src/plugins/weechat-plugin.h +++ b/src/plugins/weechat-plugin.h @@ -72,6 +72,27 @@ struct t_weechat_plugin int (*mkdir_home) (struct t_weechat_plugin *, char *); void (*exec_on_files) (struct t_weechat_plugin *, char *, int (*)(char *)); + + /* config files */ + struct t_config_file *(*config_new) (struct t_weechat_plugin *, char *); + struct t_config_section *(*config_new_section) (struct t_weechat_plugin *, + void *, char *, + void (*)(void *, char *, char *), + void (*)(void *), + void (*)(void *)); + struct t_config_option *(*config_new_option) (struct t_weechat_plugin *, + void *, char *, char *, + char *, char *, int, int, + char *, void (*)()); + char (*config_boolean) (struct t_weechat_plugin *, void *); + int (*config_integer) (struct t_weechat_plugin *, void *); + char *(*config_string) (struct t_weechat_plugin *, void *); + int (*config_color) (struct t_weechat_plugin *, void *); + char *(*config_get) (struct t_weechat_plugin *, char *); + int (*config_set) (struct t_weechat_plugin *, char *, char *); + char *(*plugin_config_get) (struct t_weechat_plugin *, char *); + int (*plugin_config_set) (struct t_weechat_plugin *, char *, char *); + /* display */ char *(*prefix) (struct t_weechat_plugin *, char *); @@ -128,18 +149,12 @@ struct t_weechat_plugin int (*list_next) (struct t_weechat_plugin *, void *); int (*list_prev) (struct t_weechat_plugin *, void *); char *(*list_fields) (struct t_weechat_plugin *, void *); - int (*list_int) (struct t_weechat_plugin *, void *, char *); + int (*list_integer) (struct t_weechat_plugin *, void *, char *); char *(*list_string) (struct t_weechat_plugin *, void *, char *); void *(*list_pointer) (struct t_weechat_plugin *, void *, char *); time_t (*list_time) (struct t_weechat_plugin *, void *, char *); void (*list_free) (struct t_weechat_plugin *, void *); - /* config */ - char *(*config_get) (struct t_weechat_plugin *, char *); - int (*config_set) (struct t_weechat_plugin *, char *, char *); - char *(*plugin_config_get) (struct t_weechat_plugin *, char *); - int (*plugin_config_set) (struct t_weechat_plugin *, char *, char *); - /* log */ void (*log) (struct t_weechat_plugin *, char *, char *, char *, ...); @@ -148,114 +163,158 @@ struct t_weechat_plugin /* macros for easy call to plugin API */ -#define weechat_charset_set(chset, string) \ - weechat_plugin->charset_set(weechat_plugin, string) -#define weechat_iconv_to_internal(chset, string) \ - weechat_plugin->iconv_to_internal(weechat_plugin, chset, string) -#define weechat_iconv_from_internal(chset, string) \ - weechat_plugin->iconv_from_internal(weechat_plugin, chset, string) +/* strings */ +#define weechat_charset_set(__charset) \ + weechat_plugin->charset_set(weechat_plugin, __charset) +#define weechat_iconv_to_internal(__charset, __string) \ + weechat_plugin->iconv_to_internal(weechat_plugin, \ + __charset, __string) +#define weechat_iconv_from_internal(__charset, __string) \ + weechat_plugin->iconv_from_internal(weechat_plugin, \ + __charset, __string) #ifndef __WEECHAT_H #define _(string) weechat_plugin->gettext(weechat_plugin, string) #define N_(string) (string) #define NG_(single,plural,number) \ weechat_plugin->ngettext(weechat_plugin, single, plural, number) #endif -#define weechat_strcasecmp(string1, string2) \ - weechat_plugin->strcasecmp(weechat_plugin, string1, string2) -#define weechat_strncasecmp(string1, string2, max) \ - weechat_plugin->strncasecmp(weechat_plugin, string1, string2, max) -#define weechat_string_replace(string1, search1, replace1) \ - weechat_plugin->string_replace(weechat_plugin, string1, search1, \ - replace1) -#define weechat_string_explode(string1, separator, eol, max, \ - num_items) \ - weechat_plugin->string_explode(weechat_plugin, string1, separator, \ - eol, max, num_items) -#define weechat_string_free_exploded(array_str) \ - weechat_plugin->string_free_exploded(weechat_plugin, array_str) +#define weechat_strcasecmp(__string1, __string2) \ + weechat_plugin->strcasecmp(weechat_plugin, __string1, __string2) +#define weechat_strncasecmp(__string1, __string2, __max) \ + weechat_plugin->strncasecmp(weechat_plugin, __string1, \ + __string2, __max) +#define weechat_string_replace(__string1, __search1, __replace1) \ + weechat_plugin->string_replace(weechat_plugin, __string1, \ + __search1, __replace1) +#define weechat_string_explode(__string1, __separator, __eol, __max, \ + __num_items) \ + weechat_plugin->string_explode(weechat_plugin, __string1, \ + __separator, __eol, __max, \ + __num_items) +#define weechat_string_free_exploded(__array_str) \ + weechat_plugin->string_free_exploded(weechat_plugin, __array_str) -#define weechat_prefix(prefix_name) \ - weechat_plugin->prefix(weechat_plugin, prefix_name) -#define weechat_color(color_name) \ - weechat_plugin->color(weechat_plugin, color_name) -#define weechat_printf(buffer, argz...) \ - weechat_plugin->printf(weechat_plugin, buffer, ##argz) -#define weechat_printf_date(buffer, datetime, argz...) \ - weechat_plugin->printf_date(weechat_plugin, buffer, datetime, \ - ##argz) -#define weechat2_log_printf(argz...) \ - weechat_plugin->log_printf(weechat_plugin, ##argz) +/* directories */ +#define weechat_mkdir_home(__directory) \ + weechat_plugin->mkdir_home(weechat_plugin, __directory) +#define weechat_exec_on_files(__directory, __callback) \ + weechat_plugin->exec_on_files(weechat_plugin, __directory, \ + __callback) -#define weechat_hook_command(command, description, args, args_desc, \ - completion, callback, data) \ - weechat_plugin->hook_command(weechat_plugin, command, description, \ - args, args_desc, completion, callback, \ - data) -#define weechat_hook_timer(interval, max_calls, callback, data) \ - weechat_plugin->hook_timer(weechat_plugin, interval, max_calls, \ - callback, data) -#define weechat_hook_fd(fd, flag_read, flag_write, flag_exception, \ - callback, data) \ - weechat_plugin->hook_fd(weechat_plugin, fd, flag_read, flag_write, \ - flag_exception, callback, data) -#define weechat_hook_print(buffer, msg, strip_colors, callback, data) \ - weechat_plugin->hook_print(weechat_plugin, buffer, msg, \ - strip_colors, callback, data) -#define weechat_hook_event(evnt, callback, data) \ - weechat_plugin->hook_event(weechat_plugin, evnt, callback, data) -#define weechat_hook_config(type, option, callback, data) \ - weechat_plugin->hook_config(weechat_plugin, type, option, \ - callback, data) -#define weechat_unhook(hook) \ - weechat_plugin->unhook(weechat_plugin, hook) +/* config files */ +#define weechat_config_new(__filename) \ + weechat_plugin->config_new(weechat_plugin, __filename) +#define weechat_config_new_section(__config, __name, __cb_read, \ + __cb_write_std, __cb_write_def) \ + weechat_plugin->config_new_section(weechat_plugin, \ + __config, __name, __cb_read, \ + __cb_write_std, __cb_write_def) +#define weechat_config_new_option(__section, __name, __desc, \ + __string_values, __min, __max, \ + __default, __callback) \ + weechat_plugin->config_new_option(weechat_plugin, \ + __section, __name, __desc, \ + __string_values, __min, __max, \ + __default, __callback) +#define weechat_config_boolean(__option) \ + weechat_plugin->config_boolean(weechat_plugin, __option) +#define weechat_config_integer(__option) \ + weechat_plugin->config_integer(weechat_plugin, __option) +#define weechat_config_string(__option) \ + weechat_plugin->config_string(weechat_plugin, __option) +#define weechat_config_color(__option) \ + weechat_plugin->config_color(weechat_plugin, __option) +#define weechat_config_get(__option) \ + weechat_plugin->config_get(weechat_plugin, __option) +#define weechat_config_set(__option, __value) \ + weechat_plugin->config_set(weechat_plugin, __option, __value) +#define weechat_plugin_config_get(__option) \ + weechat_plugin->plugin_config_get(weechat_plugin, __option) +#define weechat_plugin_config_set(__option, __value) \ + weechat_plugin->plugin_config_set(weechat_plugin, __option, __value) + +/* display */ +#define weechat_prefix(__prefix_name) \ + weechat_plugin->prefix(weechat_plugin, __prefix_name) +#define weechat_color(__color_name) \ + weechat_plugin->color(weechat_plugin, __color_name) +#define weechat_printf(__buffer, __argz...) \ + weechat_plugin->printf(weechat_plugin, __buffer, ##__argz) +#define weechat_printf_date(__buffer, __datetime, __argz...) \ + weechat_plugin->printf_date(weechat_plugin, __buffer, __datetime, \ + ##__argz) +#define weechat2_log_printf(__argz...) \ + weechat_plugin->log_printf(weechat_plugin, ##__argz) + +/* hooks */ +#define weechat_hook_command(__command, __description, __args, \ + __args_desc, __completion, __callback, \ + __data) \ + weechat_plugin->hook_command(weechat_plugin, __command, __description, \ + __args, __args_desc, __completion, \ + __callback, __data) +#define weechat_hook_timer(__interval, __max_calls, __callback, __data) \ + weechat_plugin->hook_timer(weechat_plugin, __interval, __max_calls, \ + __callback, __data) +#define weechat_hook_fd(__fd, __flag_read, __flag_write, \ + __flag_exception, __callback, __data) \ + weechat_plugin->hook_fd(weechat_plugin, __fd, __flag_read, \ + __flag_write, __flag_exception, __callback, \ + __data) +#define weechat_hook_print(__buffer, __msg, __stri__colors, __callback, \ + __data) \ + weechat_plugin->hook_print(weechat_plugin, __buffer, __msg, \ + __stri__colors, __callback, __data) +#define weechat_hook_event(__event, __callback, __data) \ + weechat_plugin->hook_event(weechat_plugin, __event, __callback, __data) +#define weechat_hook_config(__type, __option, __callback, __data) \ + weechat_plugin->hook_config(weechat_plugin, __type, __option, \ + __callback, __data) +#define weechat_unhook(__hook) \ + weechat_plugin->unhook(weechat_plugin, __hook) #define weechat_unhook_all() \ weechat_plugin->unhook(weechat_plugin) -#define weechat_buffer_new(category, name, input_data_cb) \ - weechat_plugin->buffer_new(weechat_plugin, category, name, \ - input_data_cb) -#define weechat_buffer_search(category, name) \ - weechat_plugin->buffer_search(weechat_plugin, category, name) +/* buffers */ +#define weechat_buffer_new(__category, __name, __input_data_cb) \ + weechat_plugin->buffer_new(weechat_plugin, __category, __name, \ + __input_data_cb) +#define weechat_buffer_search(__category, __name) \ + weechat_plugin->buffer_search(weechat_plugin, __category, __name) #define weechat_current_buffer \ weechat_plugin->buffer_search(weechat_plugin, NULL, NULL) -#define weechat_buffer_close(ptr_buffer) \ - weechat_plugin->buffer_close(weechat_plugin, ptr_buffer) -#define weechat_buffer_set(ptr_buffer, property, value) \ - weechat_plugin->buffer_set(weechat_plugin, ptr_buffer, \ - property, value) - -#define weechat_command(buffer, cmd) \ - weechat_plugin->command(weechat_plugin, buffer, cmd) +#define weechat_buffer_close(__buffer) \ + weechat_plugin->buffer_close(weechat_plugin, __buffer) +#define weechat_buffer_set(__buffer, __property, __value) \ + weechat_plugin->buffer_set(weechat_plugin, __buffer, \ + __property, __value) -#define weechat_info_get(infoname) \ - weechat_plugin->info_get(weechat_plugin, infoname) +/* command */ +#define weechat_command(__buffer, __command) \ + weechat_plugin->command(weechat_plugin, __buffer, __command) -#define weechat_list_get(name, pointer) \ - weechat_plugin->list_get(weechat_plugin, name, pointer) -#define weechat_list_next(ptrlist) \ - weechat_plugin->list_next(weechat_plugin, ptrlist) -#define weechat_list_prev(ptrlist) \ - weechat_plugin->list_prev(weechat_plugin, ptrlist) -#define weechat_list_fields(ptrlist) \ - weechat_plugin->list_fields(weechat_plugin, ptrlist) -#define weechat_list_int(ptritem, var) \ - weechat_plugin->list_int(weechat_plugin, ptritem, var) -#define weechat_list_string(ptritem, var) \ - weechat_plugin->list_string(weechat_plugin, ptritem, var) -#define weechat_list_pointer(ptritem, var) \ - weechat_plugin->list_pointer(weechat_plugin, ptritem, var) -#define weechat_list_time(ptritem, var) \ - weechat_plugin->list_time(weechat_plugin, ptritem, var) -#define weechat_list_free(ptrlist) \ - weechat_plugin->list_free(weechat_plugin, ptrlist) +/* infos */ +#define weechat_info_get(__name) \ + weechat_plugin->info_get(weechat_plugin, __name) -#define weechat_config_get(option) \ - weechat_plugin->config_get(weechat_plugin, option) -#define weechat_config_set(option, value) \ - weechat_plugin->config_set(weechat_plugin, option, value) -#define weechat_plugin_config_get(option) \ - weechat_plugin->plugin_config_get(weechat_plugin, option) -#define weechat_plugin_config_set(option, value) \ - weechat_plugin->plugin_config_set(weechat_plugin, option, value) +/* lists */ +#define weechat_list_get(__name, __pointer) \ + weechat_plugin->list_get(weechat_plugin, __name, __pointer) +#define weechat_list_next(__list) \ + weechat_plugin->list_next(weechat_plugin, __list) +#define weechat_list_prev(__list) \ + weechat_plugin->list_prev(weechat_plugin, __list) +#define weechat_list_fields(__list) \ + weechat_plugin->list_fields(weechat_plugin, __list) +#define weechat_list_integer(__item, __var) \ + weechat_plugin->list_integer(weechat_plugin, __item, __var) +#define weechat_list_string(__item, __var) \ + weechat_plugin->list_string(weechat_plugin, __item, __var) +#define weechat_list_pointer(__item, __var) \ + weechat_plugin->list_pointer(weechat_plugin, __item, __var) +#define weechat_list_time(__item, __var) \ + weechat_plugin->list_time(weechat_plugin, __item, __var) +#define weechat_list_free(__list) \ + weechat_plugin->list_free(weechat_plugin, __list) #endif /* weechat-plugin.h */ |