]> mj.ucw.cz Git - libucw.git/blobdiff - lib/kmp.c
IP parsing code moved to lib/conf.c, closes Bug #2375.
[libucw.git] / lib / kmp.c
index c930168d6a7a64bb7c6bd00068780de22d8cb9f9..95a709d4fbe161eb3c93d108fbf5e3501634407b 100644 (file)
--- a/lib/kmp.c
+++ b/lib/kmp.c
@@ -8,15 +8,13 @@
 #include "lib/bitops.h"
 #include "lib/mempool.h"
 #include "lib/lists.h"
-#include "sherlock/tagged-text.h"
 #include "lib/unicode.h"
 
-#define KMP_GET_CHAR KMP_GET_RAW
+#define KMP_GET_CHAR(pos, c, flags) ASSERT(0)
 #include "lib/kmp.h"
 
 #include <stdlib.h>
 #include <stdio.h>
-#include <string.h>
 #include <alloca.h>
 
 #define        TRACE(level, mask...)   if (0) fprintf(stderr, mask)
@@ -67,16 +65,15 @@ new_output(struct kmp *kmp, uns id, uns len)
 }
  
 void
-kmp_enter_raw_string(struct kmp *kmp, const byte *str, uns id)
+kmp_enter_raw_string(struct kmp *kmp, kmp_char_t *str, uns id)
 {
        struct kmp_transition tr = { .next=NULL, .from=0 }, **prev;
        struct kmp_output *new_out;
-       const byte *orig_str = str;
        uns len = 0;
        kmp_char_t c = 'a';
 
-       TRACE(20, "kmp.c: Entering string %s", str);
-       kmp_get_char(&str, &c, 0);
+       TRACE(20, "kmp.c: Entering string");
+       c = *str++;
        len++;
        if (!c)
                return;
@@ -87,7 +84,7 @@ kmp_enter_raw_string(struct kmp *kmp, const byte *str, uns id)
                if (!*prev)
                        break;
                tr.from = (*prev)->to;
-               kmp_get_char(&str, &c, 0);
+               c = *str++;
                len++;
        }
        while (c)
@@ -97,7 +94,7 @@ kmp_enter_raw_string(struct kmp *kmp, const byte *str, uns id)
                **prev = tr;
                add_tail(kmp->g.sons + tr.from, &(*prev)->n);
                init_list(kmp->g.sons + tr.to);
-               kmp_get_char(&str, &c, 0);
+               c = *str++;
                len++;
                tr.from = tr.to;
                tr.c = c;
@@ -105,7 +102,7 @@ kmp_enter_raw_string(struct kmp *kmp, const byte *str, uns id)
                ASSERT(!*prev);
        }
        if (kmp->out[tr.from])
-               TRACE(5, "kmp.c: string %s is inserted more than once", orig_str);
+               TRACE(5, "kmp.c: string is inserted more than once");
        new_out = new_output(kmp, id, len-1);
        merge_output(kmp->out + tr.from, new_out);
 }