diff options
Diffstat (limited to 'filter')
-rw-r--r-- | filter/ChangeLog | 35 | ||||
-rw-r--r-- | filter/filter-code.c | 20 | ||||
-rw-r--r-- | filter/filter-code.h | 2 | ||||
-rw-r--r-- | filter/filter-int.c | 2 | ||||
-rw-r--r-- | filter/filter-option.c | 11 | ||||
-rw-r--r-- | filter/rule-context.c | 4 | ||||
-rw-r--r-- | filter/rule-editor.c | 3 |
7 files changed, 63 insertions, 14 deletions
diff --git a/filter/ChangeLog b/filter/ChangeLog index 367645ea18..a30463deb5 100644 --- a/filter/ChangeLog +++ b/filter/ChangeLog @@ -1,3 +1,38 @@ +2009-01-11 Tor Lillqvist <tml@novell.com> + + * filter-option.c (get_dynamic_options): Add cast to avoid + warning. + +2009-01-11 Tor Lillqvist <tml@novell.com> + + ** Bug #567244 + + * filter-option.c (get_dynamic_options): For portability, use + <gmodule.h> API instead of <dlfcn.h> API. + +2009-01-08 Milan Crha <mcrha@redhat.com> + + ** Fix for bug #567031 + + * rule-editor.c: (rule_editor_new): Hide also label of the combo. + +2009-01-08 Milan Crha <mcrha@redhat.com> + + ** Fix for bug #339879 + + * filter-code.h: (filter_code_new): + * filter-code.c: (filter_code_new), (build_code): + * rule-context.c: (new_element): + Have two types of code expression, one "code", which adds also + a "match-all" into the expression, and a "rawcode" without it. + +2008-12-15 Milan Crha <mcrha@redhat.com> + + ** Part of fix for bug #563669 + + * filter-int.c: (get_widget): + Use zero GtkSpinButton's PageSize, as Gtk+ requires. + 2008-12-10 Milan Crha <mcrha@redhat.com> ** Part of fix for bug #563870 diff --git a/filter/filter-code.c b/filter/filter-code.c index 2ca98313b6..1de9c3aba6 100644 --- a/filter/filter-code.c +++ b/filter/filter-code.c @@ -98,9 +98,16 @@ filter_code_finalise (GObject *obj) * Return value: A new #FilterCode object. **/ FilterCode * -filter_code_new (void) +filter_code_new (gboolean raw_code) { - return (FilterCode *) g_object_new (FILTER_TYPE_CODE, NULL, NULL); + FilterCode *fc = (FilterCode *) g_object_new (FILTER_TYPE_CODE, NULL, NULL); + + if (fc && raw_code) { + xmlFree (((FilterInput *) fc)->type); + ((FilterInput *) fc)->type = (char *)xmlStrdup ((const unsigned char *)"rawcode"); + } + + return fc; } /* here, the string IS the code */ @@ -109,14 +116,19 @@ build_code (FilterElement *fe, GString *out, struct _FilterPart *ff) { GList *l; FilterInput *fi = (FilterInput *)fe; + gboolean is_rawcode = fi && fi->type && g_str_equal (fi->type, "rawcode"); + + if (!is_rawcode) + g_string_append(out, "(match-all "); - g_string_append(out, "(match-all "); l = fi->values; while (l) { g_string_append(out, (char *)l->data); l = g_list_next(l); } - g_string_append(out, ")"); + + if (!is_rawcode) + g_string_append (out, ")"); } /* and we have no value */ diff --git a/filter/filter-code.h b/filter/filter-code.h index 3ea5559a2c..7199bcef68 100644 --- a/filter/filter-code.h +++ b/filter/filter-code.h @@ -49,7 +49,7 @@ struct _FilterCodeClass { }; GType filter_code_get_type (void); -FilterCode *filter_code_new (void); +FilterCode *filter_code_new (gboolean raw_code); /* methods */ diff --git a/filter/filter-int.c b/filter/filter-int.c index 5336884eae..969a477331 100644 --- a/filter/filter-int.c +++ b/filter/filter-int.c @@ -241,7 +241,7 @@ get_widget (FilterElement *fe) GtkObject *adjustment; FilterInt *fs = (FilterInt *)fe; - adjustment = gtk_adjustment_new (0.0, (gfloat)fs->min, (gfloat)fs->max, 1.0, 1.0, 1.0); + adjustment = gtk_adjustment_new (0.0, (gfloat)fs->min, (gfloat)fs->max, 1.0, 1.0, 0); spin = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), fs->max>fs->min+1000?5.0:1.0, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spin), TRUE); diff --git a/filter/filter-option.c b/filter/filter-option.c index 2d79b609c9..7af511b543 100644 --- a/filter/filter-option.c +++ b/filter/filter-option.c @@ -29,7 +29,7 @@ #include <gtk/gtk.h> #include <glib/gi18n.h> -#include <dlfcn.h> +#include <gmodule.h> #include "filter-option.h" #include "filter-part.h" @@ -352,23 +352,22 @@ option_changed (GtkWidget *widget, FilterElement *fe) static GSList * get_dynamic_options (FilterOption *fo) { - void *module; + GModule *module; GSList *(*get_func)(void); GSList *res = NULL; if (!fo || !fo->dynamic_func) return res; - module = dlopen (NULL, RTLD_LAZY); + module = g_module_open (NULL, G_MODULE_BIND_LAZY); - get_func = dlsym (module, fo->dynamic_func); - if (get_func) { + if (g_module_symbol (module, fo->dynamic_func, (gpointer) &get_func)) { res = get_func (); } else { g_warning ("optionlist dynamic fill function '%s' not found", fo->dynamic_func); } - dlclose (module); + g_module_close (module); return res; } diff --git a/filter/rule-context.c b/filter/rule-context.c index a7f739615b..0a7438b12c 100644 --- a/filter/rule-context.c +++ b/filter/rule-context.c @@ -905,7 +905,9 @@ new_element(RuleContext *rc, const char *type) /* FIXME: temporary ... need real address type */ return (FilterElement *) filter_input_new_type_name (type); } else if (!strcmp (type, "code")) { - return (FilterElement *) filter_code_new (); + return (FilterElement *) filter_code_new (FALSE); + } else if (!strcmp (type, "rawcode")) { + return (FilterElement *) filter_code_new (TRUE); } else if (!strcmp (type, "colour")) { return (FilterElement *) filter_colour_new (); } else if (!strcmp (type, "optionlist")) { diff --git a/filter/rule-editor.c b/filter/rule-editor.c index 16e79f0ee3..dc4c65a24c 100644 --- a/filter/rule-editor.c +++ b/filter/rule-editor.c @@ -175,7 +175,8 @@ rule_editor_new (RuleContext *rc, const char *source, const char *label) gui = glade_xml_new (filter_glade, "rule_editor", NULL); g_free (filter_glade); rule_editor_construct (re, rc, gui, source, label); - gtk_widget_hide(glade_xml_get_widget (gui, "filter_source")); + gtk_widget_hide(glade_xml_get_widget (gui, "label17")); + gtk_widget_hide(glade_xml_get_widget (gui, "filter_source")); g_object_unref (gui); return re; |