X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-lib%2Frx.c;h=d0a394238a59bfa9ff78e67fdf3674b68c0f706a;hp=521376fdb20e5e11b788075179c00ff25848ab8b;hb=5a4df9d0e93209aeade80f632158036799f3e9bc;hpb=1ee89902de184a640c171ae3285bff6882a791bd diff --git a/lib-lib/rx.c b/lib-lib/rx.c index 521376f..d0a3942 100644 --- a/lib-lib/rx.c +++ b/lib-lib/rx.c @@ -46,34 +46,32 @@ void rx_delete(rx_t **p) p_delete(p); } -int rx_list_match(list2_t *l, const char *pat) +int rx_list_match(rx_t *l, const char *pat) { - int i; - - if (!pat || !*pat || list_empty(l)) + if (!pat || !*pat) return 0; - for (i = 0; i < l->length; i++) { - if (!REGEXEC(((rx_t*)l->data[i])->rx, pat)) + while (l) { + if (!REGEXEC(l->rx, pat)) return 1; + l = l->next; } return 0; } -int rx_lookup (list2_t *l, const char *pat) +rx_t **rx_lookup(rx_t **l, const char *pat) { - int i; - - if (!pat || !*pat || list_empty(l)) - return -1; + if (!pat || !*pat) + return NULL; - for (i = 0; i < l->length; i++) { - if (!strcmp(((rx_t*)l->data[i])->pattern, pat)) - return i; + while (*l) { + if (!strcmp((*l)->pattern, pat)) + return l; + l = &(*l)->next; } - return -1; + return NULL; } int rx_sanitize_string(char *dst, ssize_t n, const char *src)