From 43c40fa1929600605fcc1a88e04567fd5ac8e170 Mon Sep 17 00:00:00 2001 From: "Steffen (Daode) Nurpmeso" Date: Sat, 7 Jan 2017 17:15:23 +0100 Subject: [PATCH] Fix is_asccaseprefix()/asccasestr() --- nailfuns.h | 2 +- strings.c | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/nailfuns.h b/nailfuns.h index 93cf6cd4..58b99129 100644 --- a/nailfuns.h +++ b/nailfuns.h @@ -1930,7 +1930,7 @@ FL int ascncasecmp(char const *s1, char const *s2, size_t sz); /* Case-independent ASCII string find s2 in s1, return it or NULL */ FL char const *asccasestr(char const *s1, char const *s2); -/* Case-independent ASCII check wether as2 is the initial substring of as1 */ +/* Case-independent ASCII check whether as1 is the initial substring of as2 */ FL bool_t is_asccaseprefix(char const *as1, char const *as2); /* struct str related support funs */ diff --git a/strings.c b/strings.c index 8e9d5dae..bb277ccc 100644 --- a/strings.c +++ b/strings.c @@ -695,7 +695,7 @@ i_strcpy(char *dest, char const *src, size_t size) } FL int -is_prefix(char const *as1, char const *as2) +is_prefix(char const *as1, char const *as2) /* TODO arg order */ { char c; NYD2_ENTER; @@ -981,7 +981,7 @@ asccasestr(char const *s1, char const *s2) s1 = NULL; break; } - if (lowerconv(c1) == c2 && is_asccaseprefix(s1, s2)) { + if (lowerconv(c1) == c2 && is_asccaseprefix(s2, s1)) { --s1; break; } @@ -991,21 +991,24 @@ asccasestr(char const *s1, char const *s2) } FL bool_t -is_asccaseprefix(char const *as1, char const *as2) +is_asccaseprefix(char const *as1, char const *as2) /* TODO arg order */ { - bool_t rv = FAL0; + char c1, c2; NYD2_ENTER; - for (;; ++as1, ++as2) { - char c1 = lowerconv(*as1), c2 = lowerconv(*as2); + for(;; ++as1, ++as2){ + c1 = *as1; + c1 = lowerconv(c1); + c2 = *as2; + c2 = lowerconv(c2); - if ((rv = (c2 == '\0'))) + if(c1 != c2 || c1 == '\0') break; - if (c1 != c2) + if(c2 == '\0') break; } NYD2_LEAVE; - return rv; + return (c1 == '\0'); } FL struct str * -- 2.11.4.GIT