summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2008-09-03 10:09:22 +0200
committerSebastien Helleu <flashcode@flashtux.org>2008-09-03 10:09:22 +0200
commitcd586cda77f0376ecf465a37c3ea327eb77c73a6 (patch)
tree62025bf4b95c0ed20a3af209eea14911ec5ec506 /src/gui
parent209df25bdbd153ae6ff74efbce1657b85d45c6ac (diff)
downloadweechat-cd586cda77f0376ecf465a37c3ea327eb77c73a6.zip
Add infolist for list of filters ("filter")
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/gui-filter.c40
-rw-r--r--src/gui/gui-filter.h2
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 */