Built SDL2_image and _mixer static
This commit is contained in:
63
libsdl2_mixer/external/mpg123-1.25.6/src/local.c
vendored
Normal file
63
libsdl2_mixer/external/mpg123-1.25.6/src/local.c
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
local: some stuff for localisation
|
||||
|
||||
Currently, this is just about determining if we got UTF-8 locale.
|
||||
|
||||
copyright 2008 by the mpg123 project - free software under the terms of the LGPL 2.1
|
||||
see COPYING and AUTHORS files in distribution or http://mpg123.org
|
||||
initially written by Thomas Orgis, based on a patch by Thorsten Glaser.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#ifdef HAVE_LOCALE_H
|
||||
#include <locale.h>
|
||||
#endif
|
||||
#ifdef HAVE_LANGINFO_H
|
||||
#include <langinfo.h>
|
||||
#endif
|
||||
#include "compat.h"
|
||||
#include "mpg123app.h"
|
||||
#include "debug.h"
|
||||
|
||||
int utf8env = 0;
|
||||
|
||||
/* Check some language variable for UTF-8-ness. */
|
||||
static int is_utf8(const char *lang);
|
||||
|
||||
void check_locale(void)
|
||||
{
|
||||
if(param.force_utf8) utf8env = 1;
|
||||
else
|
||||
{
|
||||
const char *cp;
|
||||
|
||||
/* Check for env vars in proper oder. */
|
||||
if((cp = getenv("LC_ALL")) == NULL && (cp = getenv("LC_CTYPE")) == NULL)
|
||||
cp = getenv("LANG");
|
||||
|
||||
if(is_utf8(cp)) utf8env = 1;
|
||||
}
|
||||
|
||||
#if defined(HAVE_SETLOCALE) && defined(LC_CTYPE)
|
||||
/* To query, we need to set from environment... */
|
||||
if(!utf8env && is_utf8(setlocale(LC_CTYPE, ""))) utf8env = 1;
|
||||
#endif
|
||||
#if defined(HAVE_NL_LANGINFO) && defined(CODESET)
|
||||
/* ...langinfo works after we set a locale, eh? So it makes sense after setlocale, if only. */
|
||||
if(!utf8env && is_utf8(nl_langinfo(CODESET))) utf8env = 1;
|
||||
#endif
|
||||
|
||||
debug1("UTF-8 locale: %i", utf8env);
|
||||
}
|
||||
|
||||
static int is_utf8(const char *lang)
|
||||
{
|
||||
if(lang == NULL) return 0;
|
||||
|
||||
/* Now, if the variable mentions UTF-8 anywhere, in some variation, the locale is UTF-8. */
|
||||
if( strstr(lang, "UTF-8") || strstr(lang, "utf-8")
|
||||
|| strstr(lang, "UTF8") || strstr(lang, "utf8") )
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user