* (c) 1999 Martin Mares <mj@ucw.cz>
*/
+#include "lib/lib.h"
+#include "lib/pools.h"
+#include "lib/wildmatch.h"
+
#include <stdio.h>
#include <string.h>
-#include "lib.h"
-#include "pools.h"
-#include "wildmatch.h"
-
#define MAX_STATES 32 /* Must be <= 32, state 0 is reserved, state 1 is initial */
#define MAX_CACHED 256 /* Maximum number of cached DFA states */
#define HASH_SIZE 512 /* Number of entries in DFA hash table (at least MAX_CACHED+MAX_STATES) */
struct nfa_state nfa[MAX_STATES];
struct dfa_state *hash[HASH_SIZE];
struct dfa_state *dfa_start;
- int nfa_states;
- int dfa_cache_counter;
+ uns nfa_states;
+ uns dfa_cache_counter;
struct mempool *pool;
struct dfa_state *free_states;
};
if (d = w->free_states)
w->free_states = d->next;
else
- d = pool_alloc(w->pool, sizeof(*d));
+ d = mp_alloc(w->pool, sizeof(*d));
w->hash[h] = d;
bzero(d, sizeof(*d));
d->nfa_set = set;
if (strlen(p) >= MAX_STATES) /* Too long */
return NULL;
- w = pool_alloc(pool, sizeof(*w));
- bzero(w, sizeof(w));
+ w = mp_alloc_zero(pool, sizeof(*w));
w->pool = pool;
for(i=1; *p; p++)
{
return d->final;
}
+int
+wp_min_size(byte *p)
+{
+ int s = 0;
+
+ while (*p)
+ if (*p++ != '*')
+ s++;
+ return s;
+}
+
#ifdef TEST
void
char buf[1024];
if (argc != 2) return 1;
- w = wp_compile(argv[1], new_pool(65536));
+ w = wp_compile(argv[1], mp_new(65536));
if (!w)
{
puts("Compile error");