diff options
-rw-r--r-- | src/conf.c | 11 | ||||
-rw-r--r-- | src/support.c | 30 | ||||
-rw-r--r-- | src/support.h | 3 |
3 files changed, 17 insertions, 27 deletions
diff --git a/src/conf.c b/src/conf.c index 05eb28ff7..ff627e0b6 100644 --- a/src/conf.c +++ b/src/conf.c @@ -332,14 +332,15 @@ check_screen_list(char *value) i=0; j=0; while( tmp && tmp[i] ) { - tmp[i] = lowerstr(tmp[i]); - if (screen_lookup_name(tmp[i]) == NULL) + char *name = g_ascii_strdown(tmp[i], -1); + if (screen_lookup_name(name) == NULL) { fprintf(stderr, _("Error: Unsupported screen \"%s\"\n"), - tmp[i]); - else { + name); + free(name); + } else { screen = g_realloc(screen, (j+2)*sizeof(char *)); - screen[j++] = g_strdup(tmp[i]); + screen[j++] = name; screen[j] = NULL; } i++; diff --git a/src/support.c b/src/support.c index 3f30671f9..ca0266c1b 100644 --- a/src/support.c +++ b/src/support.c @@ -43,24 +43,6 @@ remove_trailing_slash(char *path) return path; } -char * -lowerstr(char *str) -{ - gsize i; - gsize len = strlen(str); - - if (str == NULL) - return NULL; - - i = 0; - while (i < len && str[i]) { - str[i] = tolower(str[i]); - i++; - } - return str; -} - - #ifndef HAVE_BASENAME char * basename(char *path) @@ -84,13 +66,21 @@ basename(char *path) #ifndef HAVE_STRCASESTR -char * +const char * strcasestr(const char *haystack, const char *needle) { + char *haystack2 = g_utf8_strdown(haystack, -1); + char *needle2 = g_utf8_strdown(needle, -1); + char *result; + assert(haystack != NULL); assert(needle != NULL); - return strstr(lowerstr(haystack), lowerstr(needle)); + result = strstr(haystack2, needle2); + g_free(haystack2); + g_free(needle2); + + return haystack + (result - haystack2); } #endif /* HAVE_STRCASESTR */ diff --git a/src/support.h b/src/support.h index 0679ddc86..5d67b8fa7 100644 --- a/src/support.h +++ b/src/support.h @@ -14,8 +14,7 @@ char *basename(char *path); #define IS_WHITESPACE(c) (c==' ' || c=='\t' || c=='\r' || c=='\n') char *remove_trailing_slash(char *path); -char *lowerstr(char *str); -char *strcasestr(const char *haystack, const char *needle); +const char *strcasestr(const char *haystack, const char *needle); typedef struct { gsize offset; |