More string and buffer functions.
[apps/madmutt.git] / lib-lib / rx.h
index b976fc1..6decaa6 100644 (file)
@@ -29,7 +29,7 @@
 #ifndef MUTT_LIB_LIB_RX_H
 #define MUTT_LIB_LIB_RX_H
 
-#include <lib-lib/lib-lib.h>
+#include "lib-lib.h"
 
 /* this is a non-standard option supported by Solaris 2.5.x which allows
  * patterns of the form \<...\>
 
 typedef struct rx_t {
     struct rx_t *next;
-    char *pattern;                /* printable version */
-    regex_t *rx;                  /* compiled expression */
-    int not;                      /* do not match */
 
+    unsigned neg : 1;             /* do not match */
+    int flags;
     int nmatch;                   /* nb matches */
-    char *template;               /* out template */
+
+    char *pattern;                /* printable version */
+    char *tpl;                    /* out template */
+
+    regex_t *rx;                  /* compiled expression */
 } rx_t;
 
 rx_t *rx_compile(const char*, int);
-int rx_validate(const char*, char*, ssize_t);
-void rx_set_template(rx_t *, const char*);
 void rx_wipe(rx_t *);
+rx_t *rx_dup(rx_t *);
 DO_DELETE(rx_t, rx);
-
 DO_SLIST(rx_t, rx, rx_delete);
 
+int  rx_validate(const char*, char*, ssize_t);
+void rx_set_template(rx_t *, const char*);
+int  rx_sanitize_string(char *, ssize_t, const char *);
+
 /* for handling lists */
+rx_t **rx_lookup(rx_t**, const char*);       /* lookup pattern */
+
 int rx_list_match(rx_t *, const char*);      /* match all items list agains string */
+void rx_list_add(rx_t **, rx_t *);
+void rx_list_remove(rx_t **, const rx_t *);
+
 int rx_list_match2(rx_t *l, const char *s, char *dst, int dlen);
-rx_t **rx_lookup(rx_t**, const char*);       /* lookup pattern */
-int rx_sanitize_string(char *, ssize_t, const char *);
+void rx_list_add2(rx_t **, rx_t **);
 
 #define REGCOMP(X,Y,Z)  regcomp(X, Y, REG_WORDS|REG_EXTENDED|(Z))
 #define REGEXEC(X,Y)    regexec(X, Y, 0, NULL, 0)