aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-01-15 00:09:18 +0100
committerMax Kellermann <max@duempel.org>2009-01-15 00:09:18 +0100
commit4847bbaad372c7c51811bafe2fdf3ffbf28d9a69 (patch)
treef3196fb261e2efa9d96d7e64bb7d6f00237f9d43
parentb7fe09fa5221d89f5dc1aa4990a10498aa6b2f4b (diff)
downloadmpd-4847bbaad372c7c51811bafe2fdf3ffbf28d9a69.tar.gz
mpd-4847bbaad372c7c51811bafe2fdf3ffbf28d9a69.tar.xz
mpd-4847bbaad372c7c51811bafe2fdf3ffbf28d9a69.zip
dirvec, songvec: sort using g_utf8_collate()
Path names in the directory and song structs are always encoded in UTF-8. Don't use strcmp(), it cannot handle UTF-8 characters properly. Use GLib's UTF-8 aware g_utf8_collate() function for that.
-rw-r--r--src/dirvec.c2
-rw-r--r--src/songvec.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/dirvec.c b/src/dirvec.c
index 774730382..8fa9cde77 100644
--- a/src/dirvec.c
+++ b/src/dirvec.c
@@ -19,7 +19,7 @@ static int dirvec_cmp(const void *d1, const void *d2)
{
const struct directory *a = ((const struct directory * const *)d1)[0];
const struct directory *b = ((const struct directory * const *)d2)[0];
- return strcmp(a->path, b->path);
+ return g_utf8_collate(a->path, b->path);
}
void dirvec_init(void)
diff --git a/src/songvec.c b/src/songvec.c
index 17f60ab3b..929eaea47 100644
--- a/src/songvec.c
+++ b/src/songvec.c
@@ -14,7 +14,7 @@ static int songvec_cmp(const void *s1, const void *s2)
{
const struct song *a = ((const struct song * const *)s1)[0];
const struct song *b = ((const struct song * const *)s2)[0];
- return strcmp(a->url, b->url);
+ return g_utf8_collate(a->url, b->url);
}
static size_t sv_size(const struct songvec *sv)