Attached is a patch to fix bug #1203: "The rule on top of the coloring
rule list is not executed"
I changed g_slist_next to g_slist_nth with a counter variable starting
at 0 to fix this problem. This is because the first call to
g_slist_next (while on the first entry in the list) takes you right to
second entry in the list:
>From /usr/local/include/glib-2.0/glib/gslist.h:
#define g_slist_next(slist) ((slist) ? (((GSList *)(slist))->next) :
NULL)
Thanks,
Steve
Index: color_filters.c
===================================================================
--- color_filters.c (revision 19835)
+++ color_filters.c (working copy)
@@ -251,12 +251,13 @@
{
GSList *curr;
color_filter_t *colorf;
+ gint counter = 0;
/* If we have color filters, "search" for the matching one. */
if (color_filters_used()) {
curr = color_filter_list;
- while( (curr = g_slist_next(curr)) != NULL) {
+ while( (curr = g_slist_nth(curr, counter)) != NULL) {
colorf = curr->data;
if ((colorf->c_colorfilter != NULL) &&
dfilter_apply_edt(colorf->c_colorfilter, edt)) {
@@ -264,6 +265,7 @@
packet_list_set_colors(row, &(colorf->fg_color), &(colorf->bg_color));
return colorf;
}
+ counter++;
}
}