/*
- * Fast Pattern Matcher for Short Wildcard Patterns (only `?' and `*' supported)
+ * UCW Library -- Fast Pattern Matcher for Short Wildcard Patterns (only `?' and `*' supported)
*
* Traditional NFA -> DFA method with on-the-fly DFA construction.
*
* (c) 1999 Martin Mares <mj@ucw.cz>
+ *
+ * This software may be freely distributed and used according to the terms
+ * of the GNU Lesser General Public License.
*/
#include "lib/lib.h"
-#include "lib/pools.h"
+#include "lib/mempool.h"
#include "lib/wildmatch.h"
#include <stdio.h>
};
struct dfa_state {
- addr_int_t edge[256]; /* Outgoing DFA edges. Bit 0 is set for incomplete edges which
+ uintptr_t edge[256]; /* Outgoing DFA edges. Bit 0 is set for incomplete edges which
* contain just state set and clear for complete ones which point
* to other states. NULL means `no match'.
*/
if (strlen(p) >= MAX_STATES) /* Too long */
return NULL;
- w = mp_alloc(pool, sizeof(*w));
- bzero(w, sizeof(*w));
+ w = mp_alloc_zero(pool, sizeof(*w));
w->pool = pool;
for(i=1; *p; p++)
{
d = w->dfa_start;
while (*s)
{
- addr_int_t next = d->edge[*s];
+ uintptr_t next = d->edge[*s];
if (next & 1)
{
/* Need to lookup/create the destination state */
struct dfa_state *new = wp_new_state(w, next & ~1);
- d->edge[*s] = (addr_int_t) new;
+ d->edge[*s] = (uintptr_t) new;
d = new;
}
else if (!next)