diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-03-24 15:17:43 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-03-24 15:30:51 +0300 |
commit | 70fcecc1f788772ac0ecdbd647583afe995423bb (patch) | |
tree | d0ffa9094a372b5c02daf7254bd8813dce87077d /source/blender/blenlib/intern/string.c | |
parent | bdae647670817f4c09d4c871314f237dde1bfaac (diff) |
Fix BLI_strncasestr use with a single character
Diffstat (limited to 'source/blender/blenlib/intern/string.c')
-rw-r--r-- | source/blender/blenlib/intern/string.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/source/blender/blenlib/intern/string.c b/source/blender/blenlib/intern/string.c index 2f67b0e57a3..f62ffe9e985 100644 --- a/source/blender/blenlib/intern/string.c +++ b/source/blender/blenlib/intern/string.c @@ -534,13 +534,24 @@ char *BLI_strncasestr(const char *s, const char *find, size_t len) if ((c = *find++) != 0) { c = tolower(c); - do { + if (len > 1) { do { - if ((sc = *s++) == 0) - return (NULL); - sc = tolower(sc); - } while (sc != c); - } while (BLI_strncasecmp(s, find, len - 1) != 0); + do { + if ((sc = *s++) == 0) + return NULL; + sc = tolower(sc); + } while (sc != c); + } while (BLI_strncasecmp(s, find, len - 1) != 0); + } + else { + { + do { + if ((sc = *s++) == 0) + return NULL; + sc = tolower(sc); + } while (sc != c); + } + } s--; } return ((char *)s); |