diff --git a/st.c b/st.c index 4af67caf56..1d04f605a7 100644 --- a/st.c +++ b/st.c @@ -869,8 +869,11 @@ st_strcasecmp(const char *s1, const char *s2) while (1) { c1 = (unsigned char)*s1++; c2 = (unsigned char)*s2++; - if (!c1) break; - if (!c2) break; + if (c1 == '\0' || c2 == '\0') { + if (c1 != '\0') return 1; + if (c2 != '\0') return -1; + return 0; + } if ((unsigned int)(c1 - 'A') <= ('Z' - 'A')) c1 += 'a' - 'A'; if ((unsigned int)(c2 - 'A') <= ('Z' - 'A')) c2 += 'a' - 'A'; if (c1 != c2) { @@ -880,11 +883,6 @@ st_strcasecmp(const char *s1, const char *s2) return -1; } } - if (c1 != '\0') - return 1; - if (c2 != '\0') - return -1; - return 0; } int @@ -895,8 +893,11 @@ st_strncasecmp(const char *s1, const char *s2, size_t n) while (n--) { c1 = (unsigned char)*s1++; c2 = (unsigned char)*s2++; - if (!c1) break; - if (!c2) break; + if (c1 == '\0' || c2 == '\0') { + if (c1 != '\0') return 1; + if (c2 != '\0') return -1; + return 0; + } if ((unsigned int)(c1 - 'A') <= ('Z' - 'A')) c1 += 'a' - 'A'; if ((unsigned int)(c2 - 'A') <= ('Z' - 'A')) c2 += 'a' - 'A'; if (c1 != c2) { @@ -906,12 +907,6 @@ st_strncasecmp(const char *s1, const char *s2, size_t n) return -1; } } - if (n == 0) - return 0; - if (c1 != '\0') - return 1; - if (c2 != '\0') - return -1; return 0; }