diff options
author | Max Kellermann <max@duempel.org> | 2012-06-12 23:22:03 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2012-06-12 23:22:03 +0200 |
commit | 4eb57e1e9a1718ce93eced6bd4fb06d8abb26477 (patch) | |
tree | 2355c6d77273cf614822f5a144005ab1d353863b /src/glib_compat.h | |
parent | d662c4c0cc089a6a493a7463e440f0f7e7959b48 (diff) | |
parent | 1d52e2cc7727d93e65d557c322b5dd7dc149651c (diff) | |
download | mpd-4eb57e1e9a1718ce93eced6bd4fb06d8abb26477.tar.gz mpd-4eb57e1e9a1718ce93eced6bd4fb06d8abb26477.tar.xz mpd-4eb57e1e9a1718ce93eced6bd4fb06d8abb26477.zip |
Merge branch 'v0.16.x'
Conflicts:
src/cmdline.c
src/decoder/wildmidi_decoder_plugin.c
src/gcc.h
src/glib_compat.h
src/input_stream.c
src/output_list.c
src/output_thread.c
valgrind.suppressions
Diffstat (limited to 'src/glib_compat.h')
-rw-r--r-- | src/glib_compat.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/glib_compat.h b/src/glib_compat.h index 330c9e779..989bf3b81 100644 --- a/src/glib_compat.h +++ b/src/glib_compat.h @@ -109,4 +109,32 @@ g_source_get_time(GSource *source) #endif +#if defined(G_OS_WIN32) && defined(g_file_test) + +/* Modern GLib on Win32 likes to use UTF-8 for file names. +It redefines g_file_test() to be g_file_test_utf8(). +This gives incorrect results for non-ASCII files. +Old g_file_test() is available for *binary compatibility*, +but symbol is hidden from linker, we copy-paste its definition here */ + +#undef g_file_test + +static inline gboolean +g_file_test(const gchar *filename, GFileTest test) +{ + gchar *utf8_filename = g_locale_to_utf8(filename, -1, NULL, NULL, NULL); + gboolean retval; + + if (utf8_filename == NULL) + return FALSE; + + retval = g_file_test_utf8(utf8_filename, test); + + g_free(utf8_filename); + + return retval; +} + +#endif + #endif |