projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
move more stuff to the lua bindings.
[apps/madmutt.git]
/
lib-lib
/
rx.c
diff --git
a/lib-lib/rx.c
b/lib-lib/rx.c
index
21cbd33
..
02a01d0
100644
(file)
--- a/
lib-lib/rx.c
+++ b/
lib-lib/rx.c
@@
-38,6
+38,21
@@
rx_t *rx_compile(const char *s, int flags)
return pp;
}
return pp;
}
+int rx_validate(const char *s, char *errbuf, ssize_t errlen)
+{
+ regex_t re;
+ int res;
+
+ p_clear(&re, 1);
+ res = REGCOMP(&re, NONULL(s), 0);
+ if (res) {
+ regerror(res, &re, errbuf, errlen);
+ }
+ regfree(&re);
+
+ return res;
+}
+
void rx_set_template(rx_t *rx, const char *tpl)
{
const char *p = tpl;
void rx_set_template(rx_t *rx, const char *tpl)
{
const char *p = tpl;
@@
-58,13
+73,12
@@
void rx_set_template(rx_t *rx, const char *tpl)
rx->nmatch++; /* match 0 is always the whole expr */
}
rx->nmatch++; /* match 0 is always the whole expr */
}
-void rx_
delete(rx_t **p
)
+void rx_
wipe(rx_t *rx
)
{
{
- p_delete(&(*p)->pattern);
- regfree((*p)->rx);
- p_delete(&(*p)->rx);
- p_delete(&(*p)->template);
- p_delete(p);
+ p_delete(&rx->pattern);
+ regfree(rx->rx);
+ p_delete(&rx->rx);
+ p_delete(&rx->template);
}
int rx_list_match(rx_t *l, const char *s)
}
int rx_list_match(rx_t *l, const char *s)
@@
-125,11
+139,11
@@
int rx_list_match2(rx_t *l, const char *s, char *dst, int dlen)
rx_t **rx_lookup(rx_t **l, const char *pat)
{
rx_t **rx_lookup(rx_t **l, const char *pat)
{
- if (
!pat || !*pat
)
+ if (
m_strisempty(pat)
)
return NULL;
while (*l) {
return NULL;
while (*l) {
- if (!strcmp((*l)->pattern, pat))
+ if (!
m_
strcmp((*l)->pattern, pat))
return l;
l = &(*l)->next;
}
return l;
l = &(*l)->next;
}