fs/Charset: disable if GLib is disabled
This commit is contained in:
parent
4ad14f6a2c
commit
ce925ba56f
|
@ -24,22 +24,32 @@
|
||||||
#include "util/Error.hxx"
|
#include "util/Error.hxx"
|
||||||
#include "Compiler.h"
|
#include "Compiler.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_GLIB
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_GLIB
|
||||||
|
|
||||||
inline AllocatedPath::AllocatedPath(Donate, pointer _value)
|
inline AllocatedPath::AllocatedPath(Donate, pointer _value)
|
||||||
:value(_value) {
|
:value(_value) {
|
||||||
g_free(_value);
|
g_free(_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
/* no inlining, please */
|
/* no inlining, please */
|
||||||
AllocatedPath::~AllocatedPath() {}
|
AllocatedPath::~AllocatedPath() {}
|
||||||
|
|
||||||
AllocatedPath
|
AllocatedPath
|
||||||
AllocatedPath::FromUTF8(const char *path_utf8)
|
AllocatedPath::FromUTF8(const char *path_utf8)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_GLIB
|
||||||
return AllocatedPath(Donate(), ::PathFromUTF8(path_utf8));
|
return AllocatedPath(Donate(), ::PathFromUTF8(path_utf8));
|
||||||
|
#else
|
||||||
|
return FromFS(path_utf8);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
AllocatedPath
|
AllocatedPath
|
||||||
|
|
|
@ -25,7 +25,9 @@
|
||||||
#include "Log.hxx"
|
#include "Log.hxx"
|
||||||
#include "Traits.hxx"
|
#include "Traits.hxx"
|
||||||
|
|
||||||
|
#ifdef HAVE_GLIB
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
@ -42,6 +44,7 @@
|
||||||
*/
|
*/
|
||||||
static constexpr size_t MPD_PATH_MAX_UTF8 = (MPD_PATH_MAX - 1) * 4 + 1;
|
static constexpr size_t MPD_PATH_MAX_UTF8 = (MPD_PATH_MAX - 1) * 4 + 1;
|
||||||
|
|
||||||
|
#ifdef HAVE_GLIB
|
||||||
static std::string fs_charset;
|
static std::string fs_charset;
|
||||||
|
|
||||||
gcc_pure
|
gcc_pure
|
||||||
|
@ -71,10 +74,16 @@ SetFSCharset(const char *charset)
|
||||||
"SetFSCharset: fs charset is: %s", fs_charset.c_str());
|
"SetFSCharset: fs charset is: %s", fs_charset.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
GetFSCharset()
|
GetFSCharset()
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_GLIB
|
||||||
return fs_charset.empty() ? "utf-8" : fs_charset.c_str();
|
return fs_charset.empty() ? "utf-8" : fs_charset.c_str();
|
||||||
|
#else
|
||||||
|
return "utf-8";
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void FixSeparators(std::string &s)
|
static inline void FixSeparators(std::string &s)
|
||||||
|
@ -95,10 +104,13 @@ PathToUTF8(const char *path_fs)
|
||||||
{
|
{
|
||||||
assert(path_fs != nullptr);
|
assert(path_fs != nullptr);
|
||||||
|
|
||||||
|
#ifdef HAVE_GLIB
|
||||||
if (fs_charset.empty()) {
|
if (fs_charset.empty()) {
|
||||||
|
#endif
|
||||||
auto result = std::string(path_fs);
|
auto result = std::string(path_fs);
|
||||||
FixSeparators(result);
|
FixSeparators(result);
|
||||||
return result;
|
return result;
|
||||||
|
#ifdef HAVE_GLIB
|
||||||
}
|
}
|
||||||
|
|
||||||
GIConv conv = g_iconv_open("utf-8", fs_charset.c_str());
|
GIConv conv = g_iconv_open("utf-8", fs_charset.c_str());
|
||||||
|
@ -123,8 +135,11 @@ PathToUTF8(const char *path_fs)
|
||||||
auto result_path = std::string(path_utf8, sizeof(path_utf8) - out_left);
|
auto result_path = std::string(path_utf8, sizeof(path_utf8) - out_left);
|
||||||
FixSeparators(result_path);
|
FixSeparators(result_path);
|
||||||
return result_path;
|
return result_path;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_GLIB
|
||||||
|
|
||||||
char *
|
char *
|
||||||
PathFromUTF8(const char *path_utf8)
|
PathFromUTF8(const char *path_utf8)
|
||||||
{
|
{
|
||||||
|
@ -137,3 +152,5 @@ PathFromUTF8(const char *path_utf8)
|
||||||
fs_charset.c_str(), "utf-8",
|
fs_charset.c_str(), "utf-8",
|
||||||
nullptr, nullptr, nullptr);
|
nullptr, nullptr, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -22,16 +22,17 @@
|
||||||
#include "Charset.hxx"
|
#include "Charset.hxx"
|
||||||
#include "config/ConfigGlobal.hxx"
|
#include "config/ConfigGlobal.hxx"
|
||||||
|
|
||||||
#include <glib.h>
|
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#include <windows.h> // for GetACP()
|
#include <windows.h> // for GetACP()
|
||||||
#include <stdio.h> // for sprintf()
|
#include <stdio.h> // for sprintf()
|
||||||
|
#elif defined(HAVE_GLIB)
|
||||||
|
#include <glib.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
ConfigureFS()
|
ConfigureFS()
|
||||||
{
|
{
|
||||||
|
#if defined(HAVE_GLIB) || defined(WIN32)
|
||||||
const char *charset = nullptr;
|
const char *charset = nullptr;
|
||||||
|
|
||||||
charset = config_get_string(CONF_FS_CHARSET, nullptr);
|
charset = config_get_string(CONF_FS_CHARSET, nullptr);
|
||||||
|
@ -56,4 +57,5 @@ ConfigureFS()
|
||||||
|
|
||||||
if (charset != nullptr)
|
if (charset != nullptr)
|
||||||
SetFSCharset(charset);
|
SetFSCharset(charset);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue