locate: use g_utf8_casefold() instead of string_toupper()

string_toupper() and strDupToUpper() were not able to deal with
character sets other than US-ASCII.  Use GLib's g_utf8_casefold()
for strings.
This commit is contained in:
Max Kellermann
2008-10-15 19:36:37 +02:00
parent 7366191f0d
commit 047043d2a8
5 changed files with 16 additions and 30 deletions

View File

@@ -30,6 +30,8 @@
#include "log.h"
#include "storedPlaylist.h"
#include <glib.h>
typedef struct _ListCommandItem {
int8_t tagType;
int numConditionals;
@@ -103,7 +105,7 @@ int searchForSongsIn(struct client *client, const char *name,
for (i = 0; i < numItems; i++) {
originalNeedles[i] = items[i].needle;
items[i].needle = strDupToUpper(originalNeedles[i]);
items[i].needle = g_utf8_casefold(originalNeedles[i], -1);
}
data.client = client;
@@ -113,7 +115,7 @@ int searchForSongsIn(struct client *client, const char *name,
ret = db_walk(name, searchInDirectory, NULL, &data);
for (i = 0; i < numItems; i++) {
free(items[i].needle);
g_free(items[i].needle);
items[i].needle = originalNeedles[i];
}