diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2008-09-03 10:09:22 +0200 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2008-09-03 10:09:22 +0200 |
commit | cd586cda77f0376ecf465a37c3ea327eb77c73a6 (patch) | |
tree | 62025bf4b95c0ed20a3af209eea14911ec5ec506 /src/gui | |
parent | 209df25bdbd153ae6ff74efbce1657b85d45c6ac (diff) | |
download | weechat-cd586cda77f0376ecf465a37c3ea327eb77c73a6.zip |
Add infolist for list of filters ("filter")
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/gui-filter.c | 40 | ||||
-rw-r--r-- | src/gui/gui-filter.h | 2 |
2 files changed, 42 insertions, 0 deletions
diff --git a/src/gui/gui-filter.c b/src/gui/gui-filter.c index 6919ffc56..bf7a4e53d 100644 --- a/src/gui/gui-filter.c +++ b/src/gui/gui-filter.c @@ -29,6 +29,7 @@ #include "../core/weechat.h" #include "../core/wee-hook.h" +#include "../core/wee-infolist.h" #include "../core/wee-log.h" #include "../core/wee-string.h" #include "../plugins/plugin.h" @@ -408,6 +409,45 @@ gui_filter_free_all () } /* + * gui_filter_add_to_infolist: add a filter in an infolist + * return 1 if ok, 0 if error + */ + +int +gui_filter_add_to_infolist (struct t_infolist *infolist, + struct t_gui_filter *filter) +{ + struct t_infolist_item *ptr_item; + char option_name[64]; + int i; + + if (!infolist || !filter) + return 0; + + ptr_item = infolist_new_item (infolist); + if (!ptr_item) + return 0; + + if (!infolist_new_var_string (ptr_item, "buffer", filter->buffer)) + return 0; + if (!infolist_new_var_string (ptr_item, "tags", filter->tags)) + return 0; + if (!infolist_new_var_integer (ptr_item, "tags_count", filter->tags_count)) + return 0; + for (i = 0; i < filter->tags_count; i++) + { + snprintf (option_name, sizeof (option_name), "tag_%05d", i + 1); + if (!infolist_new_var_string (ptr_item, option_name, + filter->tags_array[i])) + return 0; + } + if (!infolist_new_var_string (ptr_item, "regex", filter->regex)) + return 0; + + return 1; +} + +/* * gui_filter_print_log: print filter infos in log (usually for crash dump) */ diff --git a/src/gui/gui-filter.h b/src/gui/gui-filter.h index 9daa65b4a..3522463bc 100644 --- a/src/gui/gui-filter.h +++ b/src/gui/gui-filter.h @@ -62,6 +62,8 @@ extern struct t_gui_filter *gui_filter_new (const char *buffer, const char *regex); extern void gui_filter_free (struct t_gui_filter *filter); extern void gui_filter_free_all (); +extern int gui_filter_add_to_infolist (struct t_infolist *infolist, + struct t_gui_filter *filter); extern void gui_filter_print_log (); #endif /* gui-filter.h */ |