diff options
author | Max Kellermann <max@duempel.org> | 2011-11-28 11:56:01 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2011-11-28 11:56:01 +0100 |
commit | 4f093d5b979c3547c8dd8045dde5d91e8cc93461 (patch) | |
tree | 94b1c12cfce14c90f26852e948ba419a8a7ba7eb /src/path.c | |
parent | 37420c342bf9582a0de32d46f78716e913119400 (diff) | |
parent | e1b032cbad5db7698104a93c2235fb7da1f8b580 (diff) | |
download | mpd-4f093d5b979c3547c8dd8045dde5d91e8cc93461.tar.gz mpd-4f093d5b979c3547c8dd8045dde5d91e8cc93461.tar.xz mpd-4f093d5b979c3547c8dd8045dde5d91e8cc93461.zip |
Merge branch 'v0.16.x'
Conflicts:
Makefile.am
NEWS
configure.ac
src/encoder/flac_encoder.c
src/log.c
src/pcm_buffer.c
Diffstat (limited to 'src/path.c')
-rw-r--r-- | src/path.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/path.c b/src/path.c index 42e5a5c2a..59a91a0f7 100644 --- a/src/path.c +++ b/src/path.c @@ -27,6 +27,11 @@ #include <assert.h> #include <string.h> +#ifdef G_OS_WIN32 +#include <windows.h> // for GetACP() +#include <stdio.h> // for sprintf() +#endif + #undef G_LOG_DOMAIN #define G_LOG_DOMAIN "path" @@ -85,11 +90,22 @@ void path_global_init(void) charset = config_get_string(CONF_FS_CHARSET, NULL); if (charset == NULL) { +#ifndef G_OS_WIN32 const gchar **encodings; g_get_filename_charsets(&encodings); if (encodings[0] != NULL && *encodings[0] != '\0') charset = encodings[0]; +#else /* G_OS_WIN32 */ + /* Glib claims that file system encoding is always utf-8 + * on native Win32 (i.e. not Cygwin). + * However this is true only if <gstdio.h> helpers are used. + * MPD uses regular <stdio.h> functions. + * Those functions use encoding determined by GetACP(). */ + char win_charset[13]; + sprintf(win_charset, "cp%u", GetACP()); + charset = win_charset; +#endif } if (charset) { |