diff options
Diffstat (limited to 'src/localization.c')
-rw-r--r-- | src/localization.c | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/src/localization.c b/src/localization.c deleted file mode 100644 index b58c83945..000000000 --- a/src/localization.c +++ /dev/null @@ -1,105 +0,0 @@ -/* the Music Player Daemon (MPD) - * (c)2003-2006 by Warren Dukes (warren.dukes@gmail.com) - * This project's homepage is: http://www.musicpd.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "localization.h" -#include "charConv.h" -#include "utils.h" -#include "log.h" - -#include <stdlib.h> -#include <string.h> - -#ifdef HAVE_LOCALE -#ifdef HAVE_LANGINFO_CODESET -#include <locale.h> -#include <langinfo.h> -#endif -#endif - -static char *localeCharset; - -char *utf8ToLocaleCharset(char *str) -{ - static char *ret; - - if (localeCharset) - ret = convCharset(localeCharset, "UTF-8", str, ret); - - if (!ret) - ret = xstrdup(str); - - return ret; -} - -void setLocaleCharset(char *charset) -{ - if (localeCharset) - free(localeCharset); - localeCharset = charset; -} - -char *getLocaleCharset(void) -{ - return localeCharset; -} - -void initLocalization(void) -{ -#ifdef HAVE_LOCALE -#ifdef HAVE_LANGINFO_CODESET - char *temp; - char *originalLocale; - char *currentLocale; - - if (!(originalLocale = setlocale(LC_CTYPE, NULL))) { - WARNING("problems getting locale with setlocale()\n"); - } else { - 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); - setLocaleCharset(xstrdup("ISO-8859-1")); - } else if ((temp = nl_langinfo(CODESET))) { - setLocaleCharset(xstrdup(temp)); - } else { - WARNING("problems getting charset for " - "locale\n"); - } - - if (!setlocale(LC_CTYPE, originalLocale)) { - WARNING("problems resetting locale with " - "setlocale()\n"); - } - } - - free(originalLocale); - } -#endif -#endif -} - -void finishLocalization(void) -{ - setLocaleCharset(NULL); -} |