As preparation for fixing the handling of backslash-escapes used inside a character class, refactor is_any_but() to be defined in terms of is_any_of() so we don't have to repeat the same logic in two places.
Reviewed-by: Simon Glass <s...@chromium.org> Signed-off-by: Rasmus Villemoes <r...@prevas.dk> --- lib/slre.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lib/slre.c b/lib/slre.c index 4f455400d3a..5cb0d3ec7fa 100644 --- a/lib/slre.c +++ b/lib/slre.c @@ -484,17 +484,14 @@ is_any_of(const unsigned char *p, int len, const char *s, int *ofs) static int is_any_but(const unsigned char *p, int len, const char *s, int *ofs) { - int i, ch; - - ch = s[*ofs]; + int dummy = *ofs; - for (i = 0; i < len; i++) { - if (p[i] == ch) - return 0; + if (is_any_of(p, len, s, &dummy)) { + return 0; + } else { + (*ofs)++; + return 1; } - - (*ofs)++; - return 1; } static int -- 2.49.0