Commit 73bd6af0 authored by Max Kellermann's avatar Max Kellermann

fs/Charset: hard-code Windows to ACP

Don't define HAVE_FS_CHARSET, and make GetFSCharset() return "ACP" instead of "UTF-8". Ignore the configuration setting, which had no effect anyway.
parent 2aa54c53
......@@ -71,6 +71,8 @@ GetFSCharset()
{
#ifdef HAVE_FS_CHARSET
return fs_charset.empty() ? "UTF-8" : fs_charset.c_str();
#elif defined(WIN32)
return "ACP";
#else
return "UTF-8";
#endif
......
......@@ -24,7 +24,7 @@
#include "Compiler.h"
#include "Traits.hxx"
#if defined(HAVE_ICU) || defined(HAVE_GLIB)
#if (defined(HAVE_ICU) || defined(HAVE_GLIB)) && !defined(WIN32)
#define HAVE_FS_CHARSET
#endif
......
......@@ -22,10 +22,7 @@
#include "Charset.hxx"
#include "config/ConfigGlobal.hxx"
#ifdef WIN32
#include <windows.h> // for GetACP()
#include <stdio.h> // for sprintf()
#elif defined(HAVE_GLIB)
#ifdef HAVE_GLIB
#include <glib.h>
#endif
......@@ -37,16 +34,7 @@ ConfigureFS(Error &error)
charset = config_get_string(ConfigOption::FS_CHARSET, nullptr);
if (charset == nullptr) {
#ifdef 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(). */
static char win_charset[13];
sprintf(win_charset, "cp%u", GetACP());
charset = win_charset;
#elif defined(HAVE_GLIB)
#ifdef HAVE_GLIB
const gchar **encodings;
g_get_filename_charsets(&encodings);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment