From e12b1cc372e0c64a7c2fb76bc08a72381808d89d Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sun, 28 Dec 2025 14:00:33 +0100 Subject: Some fixes and generic automaton MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- libautomata_compile_kmp_automaton.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'libautomata_compile_kmp_automaton.c') diff --git a/libautomata_compile_kmp_automaton.c b/libautomata_compile_kmp_automaton.c index 3917b00..46b0430 100644 --- a/libautomata_compile_kmp_automaton.c +++ b/libautomata_compile_kmp_automaton.c @@ -24,15 +24,15 @@ libautomata_compile_kmp_automaton(const void *pattern, size_t length, size_t ele (!memcmp(&((const char *)pattern)[i * (WIDTH)], &((const char *)pattern)[j * (WIDTH)], (WIDTH))) #define IMPLEMENT(EQ, EQ_PARAM, CASE)\ - while (i < length) {\ - if (j != SIZE_MAX && !(EQ(EQ_PARAM)))\ - j = ret->next[j];\ - i++;\ - j++;\ - if (EQ(EQ_PARAM))\ + for (; i < length; i++, j++) {\ + if (EQ(EQ_PARAM)) {\ ret->next[i] = ret->next[j];\ - else CASE:\ + } else {\ + CASE:\ ret->next[i] = j;\ + while (j != SIZE_MAX && !(EQ(EQ_PARAM)))\ + j = ret->next[j];\ + }\ }\ return ret -- cgit v1.2.3-70-g09d2