diff options
author | J. Alexander Treuman <jat@spatialrift.net> | 2007-01-08 03:15:33 +0000 |
---|---|---|
committer | J. Alexander Treuman <jat@spatialrift.net> | 2007-01-08 03:15:33 +0000 |
commit | bcb493cfd3e838695e19b675f919112e81506c45 (patch) | |
tree | cb8af92f07a51394dd8cd05ce4537772006d78db /src/path.c | |
parent | 4730666b26c3f6dd9776a7adf29b30814c900f37 (diff) | |
download | mpd-bcb493cfd3e838695e19b675f919112e81506c45.tar.gz mpd-bcb493cfd3e838695e19b675f919112e81506c45.tar.xz mpd-bcb493cfd3e838695e19b675f919112e81506c45.zip |
Moving localization stuff from path.c to localization.c so we can reuse it
for log messages when outputting to console.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5225 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src/path.c')
-rw-r--r-- | src/path.c | 45 |
1 files changed, 6 insertions, 39 deletions
diff --git a/src/path.c b/src/path.c index 5877d795e..721cb345b 100644 --- a/src/path.c +++ b/src/path.c @@ -22,6 +22,7 @@ #include "conf.h" #include "utf8.h" #include "utils.h" +#include "localization.h" #include <stdlib.h> #include <string.h> @@ -31,13 +32,6 @@ #include <errno.h> #include <dirent.h> -#ifdef HAVE_LOCALE -#ifdef HAVE_LANGINFO_CODESET -#include <locale.h> -#include <langinfo.h> -#endif -#endif - const char *musicDir; static const char *playlistDir; static char *fsCharset = NULL; @@ -135,7 +129,6 @@ void initPaths(void) ConfigParam *fsCharsetParam = getConfigParam(CONF_FS_CHARSET); char *charset = NULL; - char *originalLocale; DIR *dir; musicDir = appendSlash(&(musicParam->value)); @@ -159,38 +152,12 @@ void initPaths(void) if (fsCharsetParam) { charset = xstrdup(fsCharsetParam->value); + } else if ((charset = getLocaleCharset())) { + if (*charset == '\0') + charset = NULL; + else + charset = xstrdup(charset); } -#ifdef HAVE_LOCALE -#ifdef HAVE_LANGINFO_CODESET - else if ((originalLocale = setlocale(LC_CTYPE, NULL))) { - char *temp; - char *currentLocale; - originalLocale = xstrdup(originalLocale); - - if (!(currentLocale = setlocale(LC_CTYPE, ""))) { - WARNING("problems setting current locale with " - "setlocale()\n"); - } else { - if (strcmp(currentLocale, "C") == 0 || - strcmp(currentLocale, "POSIX") == 0) { - WARNING("current locale is \"%s\"\n", - currentLocale); - } else if ((temp = nl_langinfo(CODESET))) { - charset = xstrdup(temp); - } else - WARNING - ("problems getting charset for locale\n"); - if (!setlocale(LC_CTYPE, originalLocale)) { - WARNING - ("problems resetting locale with setlocale()\n"); - } - } - - free(originalLocale); - } else - WARNING("problems getting locale with setlocale()\n"); -#endif -#endif if (charset) { setFsCharset(charset); |