disable detecting currently used encoding as it's extremely ugly
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
# have all needed files, that a GNU package needs
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
|
||||
SUBDIRS = src data doc
|
||||
SUBDIRS = src doc
|
||||
docdir = $(prefix)/share/doc/$(PACKAGE)
|
||||
doc_DATA = AUTHORS NEWS COPYING
|
||||
EXTRA_DIST = $(doc_DATA)
|
||||
|
||||
@@ -38,7 +38,6 @@ if test "$prefix" = "NONE"; then
|
||||
else
|
||||
encodings_file="${prefix}"
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED([ENCODINGS], ["${encodings_file}/share/ncmpcpp/encodings"], [defines path for encodings file])
|
||||
AC_CHECK_HEADERS([iconv.h], , AC_MSG_NOTICE(cannot find iconv.h header, iconv support will be disabled))
|
||||
|
||||
dnl ========================
|
||||
@@ -103,5 +102,5 @@ if test "$taglib" = "yes" ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_CONFIG_FILES([Makefile src/Makefile data/Makefile doc/Makefile])
|
||||
AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile])
|
||||
AC_OUTPUT
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
pkgdata_DATA = encodings
|
||||
EXTRA_DIST = $(pkgdata_DATA)
|
||||
411
data/encodings
411
data/encodings
@@ -1,411 +0,0 @@
|
||||
aa_DJ.UTF-8 UTF-8
|
||||
aa_DJ ISO-8859-1
|
||||
aa_ER UTF-8
|
||||
aa_ER@saaho UTF-8
|
||||
aa_ET UTF-8
|
||||
af_ZA.UTF-8 UTF-8
|
||||
af_ZA ISO-8859-1
|
||||
am_ET UTF-8
|
||||
an_ES.UTF-8 UTF-8
|
||||
an_ES ISO-8859-15
|
||||
ar_AE.UTF-8 UTF-8
|
||||
ar_AE ISO-8859-6
|
||||
ar_BH.UTF-8 UTF-8
|
||||
ar_BH ISO-8859-6
|
||||
ar_DZ.UTF-8 UTF-8
|
||||
ar_DZ ISO-8859-6
|
||||
ar_EG.UTF-8 UTF-8
|
||||
ar_EG ISO-8859-6
|
||||
ar_IN UTF-8
|
||||
ar_IQ.UTF-8 UTF-8
|
||||
ar_IQ ISO-8859-6
|
||||
ar_JO.UTF-8 UTF-8
|
||||
ar_JO ISO-8859-6
|
||||
ar_KW.UTF-8 UTF-8
|
||||
ar_KW ISO-8859-6
|
||||
ar_LB.UTF-8 UTF-8
|
||||
ar_LB ISO-8859-6
|
||||
ar_LY.UTF-8 UTF-8
|
||||
ar_LY ISO-8859-6
|
||||
ar_MA.UTF-8 UTF-8
|
||||
ar_MA ISO-8859-6
|
||||
ar_OM.UTF-8 UTF-8
|
||||
ar_OM ISO-8859-6
|
||||
ar_QA.UTF-8 UTF-8
|
||||
ar_QA ISO-8859-6
|
||||
ar_SA.UTF-8 UTF-8
|
||||
ar_SA ISO-8859-6
|
||||
ar_SD.UTF-8 UTF-8
|
||||
ar_SD ISO-8859-6
|
||||
ar_SY.UTF-8 UTF-8
|
||||
ar_SY ISO-8859-6
|
||||
ar_TN.UTF-8 UTF-8
|
||||
ar_TN ISO-8859-6
|
||||
ar_YE.UTF-8 UTF-8
|
||||
ar_YE ISO-8859-6
|
||||
az_AZ.UTF-8 UTF-8
|
||||
as_IN.UTF-8 UTF-8
|
||||
ast_ES.UTF-8 UTF-8
|
||||
ast_ES ISO-8859-15
|
||||
be_BY.UTF-8 UTF-8
|
||||
be_BY CP1251
|
||||
be_BY@latin UTF-8
|
||||
ber_DZ UTF-8
|
||||
ber_MA UTF-8
|
||||
bg_BG.UTF-8 UTF-8
|
||||
bg_BG CP1251
|
||||
bn_BD UTF-8
|
||||
bn_IN UTF-8
|
||||
bo_CN UTF-8
|
||||
bo_IN UTF-8
|
||||
br_FR.UTF-8 UTF-8
|
||||
br_FR ISO-8859-1
|
||||
br_FR@euro ISO-8859-15
|
||||
bs_BA.UTF-8 UTF-8
|
||||
bs_BA ISO-8859-2
|
||||
byn_ER UTF-8
|
||||
ca_AD.UTF-8 UTF-8
|
||||
ca_AD ISO-8859-15
|
||||
ca_ES.UTF-8 UTF-8
|
||||
ca_ES ISO-8859-1
|
||||
ca_ES@euro ISO-8859-15
|
||||
ca_ES.UTF-8@valencia UTF-8
|
||||
ca_ES@valencia ISO-8859-15
|
||||
ca_FR.UTF-8 UTF-8
|
||||
ca_FR ISO-8859-15
|
||||
ca_IT.UTF-8 UTF-8
|
||||
ca_IT ISO-8859-15
|
||||
crh_UA UTF-8
|
||||
cs_CZ.UTF-8 UTF-8
|
||||
cs_CZ ISO-8859-2
|
||||
csb_PL UTF-8
|
||||
cy_GB.UTF-8 UTF-8
|
||||
cy_GB ISO-8859-14
|
||||
da_DK.UTF-8 UTF-8
|
||||
da_DK ISO-8859-1
|
||||
de_AT.UTF-8 UTF-8
|
||||
de_AT ISO-8859-1
|
||||
de_AT@euro ISO-8859-15
|
||||
de_BE.UTF-8 UTF-8
|
||||
de_BE ISO-8859-1
|
||||
de_BE@euro ISO-8859-15
|
||||
de_CH.UTF-8 UTF-8
|
||||
de_CH ISO-8859-1
|
||||
de_DE.UTF-8 UTF-8
|
||||
de_DE ISO-8859-1
|
||||
de_DE@euro ISO-8859-15
|
||||
de_LU.UTF-8 UTF-8
|
||||
de_LU ISO-8859-1
|
||||
de_LU@euro ISO-8859-15
|
||||
dz_BT UTF-8
|
||||
el_GR.UTF-8 UTF-8
|
||||
el_GR ISO-8859-7
|
||||
el_CY.UTF-8 UTF-8
|
||||
el_CY ISO-8859-7
|
||||
en_AG UTF-8
|
||||
en_AU.UTF-8 UTF-8
|
||||
en_AU ISO-8859-1
|
||||
en_BW.UTF-8 UTF-8
|
||||
en_BW ISO-8859-1
|
||||
en_CA.UTF-8 UTF-8
|
||||
en_CA ISO-8859-1
|
||||
en_DK.UTF-8 UTF-8
|
||||
en_DK ISO-8859-1
|
||||
en_GB.UTF-8 UTF-8
|
||||
en_GB ISO-8859-1
|
||||
en_HK.UTF-8 UTF-8
|
||||
en_HK ISO-8859-1
|
||||
en_IE.UTF-8 UTF-8
|
||||
en_IE ISO-8859-1
|
||||
en_IE@euro ISO-8859-15
|
||||
en_IN UTF-8
|
||||
en_NG UTF-8
|
||||
en_NZ.UTF-8 UTF-8
|
||||
en_NZ ISO-8859-1
|
||||
en_PH.UTF-8 UTF-8
|
||||
en_PH ISO-8859-1
|
||||
en_SG.UTF-8 UTF-8
|
||||
en_SG ISO-8859-1
|
||||
en_US.UTF-8 UTF-8
|
||||
en_US ISO-8859-1
|
||||
en_ZA.UTF-8 UTF-8
|
||||
en_ZA ISO-8859-1
|
||||
en_ZW.UTF-8 UTF-8
|
||||
en_ZW ISO-8859-1
|
||||
es_AR.UTF-8 UTF-8
|
||||
es_AR ISO-8859-1
|
||||
es_BO.UTF-8 UTF-8
|
||||
es_BO ISO-8859-1
|
||||
es_CL.UTF-8 UTF-8
|
||||
es_CL ISO-8859-1
|
||||
es_CO.UTF-8 UTF-8
|
||||
es_CO ISO-8859-1
|
||||
es_CR.UTF-8 UTF-8
|
||||
es_CR ISO-8859-1
|
||||
es_DO.UTF-8 UTF-8
|
||||
es_DO ISO-8859-1
|
||||
es_EC.UTF-8 UTF-8
|
||||
es_EC ISO-8859-1
|
||||
es_ES.UTF-8 UTF-8
|
||||
es_ES ISO-8859-1
|
||||
es_ES@euro ISO-8859-15
|
||||
es_GT.UTF-8 UTF-8
|
||||
es_GT ISO-8859-1
|
||||
es_HN.UTF-8 UTF-8
|
||||
es_HN ISO-8859-1
|
||||
es_MX.UTF-8 UTF-8
|
||||
es_MX ISO-8859-1
|
||||
es_NI.UTF-8 UTF-8
|
||||
es_NI ISO-8859-1
|
||||
es_PA.UTF-8 UTF-8
|
||||
es_PA ISO-8859-1
|
||||
es_PE.UTF-8 UTF-8
|
||||
es_PE ISO-8859-1
|
||||
es_PR.UTF-8 UTF-8
|
||||
es_PR ISO-8859-1
|
||||
es_PY.UTF-8 UTF-8
|
||||
es_PY ISO-8859-1
|
||||
es_SV.UTF-8 UTF-8
|
||||
es_SV ISO-8859-1
|
||||
es_US.UTF-8 UTF-8
|
||||
es_US ISO-8859-1
|
||||
es_UY.UTF-8 UTF-8
|
||||
es_UY ISO-8859-1
|
||||
es_VE.UTF-8 UTF-8
|
||||
es_VE ISO-8859-1
|
||||
et_EE.UTF-8 UTF-8
|
||||
et_EE ISO-8859-1
|
||||
et_EE.ISO-8859-15 ISO-8859-15
|
||||
eu_ES.UTF-8 UTF-8
|
||||
eu_ES ISO-8859-1
|
||||
eu_ES@euro ISO-8859-15
|
||||
fa_IR UTF-8
|
||||
fi_FI.UTF-8 UTF-8
|
||||
fi_FI ISO-8859-1
|
||||
fi_FI@euro ISO-8859-15
|
||||
fil_PH UTF-8
|
||||
fo_FO.UTF-8 UTF-8
|
||||
fo_FO ISO-8859-1
|
||||
fr_BE.UTF-8 UTF-8
|
||||
fr_BE ISO-8859-1
|
||||
fr_BE@euro ISO-8859-15
|
||||
fr_CA.UTF-8 UTF-8
|
||||
fr_CA ISO-8859-1
|
||||
fr_CH.UTF-8 UTF-8
|
||||
fr_CH ISO-8859-1
|
||||
fr_FR.UTF-8 UTF-8
|
||||
fr_FR ISO-8859-1
|
||||
fr_FR@euro ISO-8859-15
|
||||
fr_LU.UTF-8 UTF-8
|
||||
fr_LU ISO-8859-1
|
||||
fr_LU@euro ISO-8859-15
|
||||
fur_IT UTF-8
|
||||
fy_NL UTF-8
|
||||
fy_DE UTF-8
|
||||
ga_IE.UTF-8 UTF-8
|
||||
ga_IE ISO-8859-1
|
||||
ga_IE@euro ISO-8859-15
|
||||
gd_GB.UTF-8 UTF-8
|
||||
gd_GB ISO-8859-15
|
||||
gez_ER UTF-8
|
||||
gez_ER@abegede UTF-8
|
||||
gez_ET UTF-8
|
||||
gez_ET@abegede UTF-8
|
||||
gl_ES.UTF-8 UTF-8
|
||||
gl_ES ISO-8859-1
|
||||
gl_ES@euro ISO-8859-15
|
||||
gu_IN UTF-8
|
||||
gv_GB.UTF-8 UTF-8
|
||||
gv_GB ISO-8859-1
|
||||
ha_NG UTF-8
|
||||
he_IL.UTF-8 UTF-8
|
||||
he_IL ISO-8859-8
|
||||
hi_IN UTF-8
|
||||
hr_HR.UTF-8 UTF-8
|
||||
hr_HR ISO-8859-2
|
||||
hsb_DE ISO-8859-2
|
||||
hsb_DE.UTF-8 UTF-8
|
||||
ht_HT UTF-8
|
||||
hu_HU.UTF-8 UTF-8
|
||||
hu_HU ISO-8859-2
|
||||
hy_AM UTF-8
|
||||
hy_AM.ARMSCII-8 ARMSCII-8
|
||||
id_ID.UTF-8 UTF-8
|
||||
id_ID ISO-8859-1
|
||||
ig_NG UTF-8
|
||||
ik_CA UTF-8
|
||||
is_IS.UTF-8 UTF-8
|
||||
is_IS ISO-8859-1
|
||||
it_CH.UTF-8 UTF-8
|
||||
it_CH ISO-8859-1
|
||||
it_IT.UTF-8 UTF-8
|
||||
it_IT ISO-8859-1
|
||||
it_IT@euro ISO-8859-15
|
||||
iu_CA UTF-8
|
||||
iw_IL.UTF-8 UTF-8
|
||||
iw_IL ISO-8859-8
|
||||
ja_JP.EUC-JP EUC-JP
|
||||
ja_JP.UTF-8 UTF-8
|
||||
ka_GE.UTF-8 UTF-8
|
||||
ka_GE GEORGIAN-PS
|
||||
kk_KZ.UTF-8 UTF-8
|
||||
kk_KZ PT154
|
||||
kl_GL.UTF-8 UTF-8
|
||||
kl_GL ISO-8859-1
|
||||
km_KH UTF-8
|
||||
kn_IN UTF-8
|
||||
ko_KR.EUC-KR EUC-KR
|
||||
ko_KR.UTF-8 UTF-8
|
||||
ks_IN@devanagari UTF-8
|
||||
ku_TR.UTF-8 UTF-8
|
||||
ku_TR ISO-8859-9
|
||||
kw_GB.UTF-8 UTF-8
|
||||
kw_GB ISO-8859-1
|
||||
ky_KG UTF-8
|
||||
lg_UG.UTF-8 UTF-8
|
||||
lg_UG ISO-8859-10
|
||||
li_BE UTF-8
|
||||
li_NL UTF-8
|
||||
lo_LA UTF-8
|
||||
lt_LT.UTF-8 UTF-8
|
||||
lt_LT ISO-8859-13
|
||||
lv_LV.UTF-8 UTF-8
|
||||
lv_LV ISO-8859-13
|
||||
mai_IN UTF-8
|
||||
mg_MG.UTF-8 UTF-8
|
||||
mg_MG ISO-8859-15
|
||||
mi_NZ.UTF-8 UTF-8
|
||||
mi_NZ ISO-8859-13
|
||||
mk_MK.UTF-8 UTF-8
|
||||
mk_MK ISO-8859-5
|
||||
ml_IN UTF-8
|
||||
mn_MN UTF-8
|
||||
mr_IN UTF-8
|
||||
ms_MY.UTF-8 UTF-8
|
||||
ms_MY ISO-8859-1
|
||||
mt_MT.UTF-8 UTF-8
|
||||
mt_MT ISO-8859-3
|
||||
nb_NO.UTF-8 UTF-8
|
||||
nb_NO ISO-8859-1
|
||||
nds_DE UTF-8
|
||||
nds_NL UTF-8
|
||||
ne_NP UTF-8
|
||||
nl_AW UTF-8
|
||||
nl_BE.UTF-8 UTF-8
|
||||
nl_BE ISO-8859-1
|
||||
nl_BE@euro ISO-8859-15
|
||||
nl_NL.UTF-8 UTF-8
|
||||
nl_NL ISO-8859-1
|
||||
nl_NL@euro ISO-8859-15
|
||||
nn_NO.UTF-8 UTF-8
|
||||
nn_NO ISO-8859-1
|
||||
nr_ZA UTF-8
|
||||
nso_ZA UTF-8
|
||||
oc_FR.UTF-8 UTF-8
|
||||
oc_FR ISO-8859-1
|
||||
om_ET UTF-8
|
||||
om_KE.UTF-8 UTF-8
|
||||
om_KE ISO-8859-1
|
||||
or_IN UTF-8
|
||||
pa_IN UTF-8
|
||||
pa_PK UTF-8
|
||||
pap_AN UTF-8
|
||||
pl_PL.UTF-8 UTF-8
|
||||
pl_PL ISO-8859-2
|
||||
pt_BR.UTF-8 UTF-8
|
||||
pt_BR ISO-8859-1
|
||||
pt_PT.UTF-8 UTF-8
|
||||
pt_PT ISO-8859-1
|
||||
pt_PT@euro ISO-8859-15
|
||||
ro_RO.UTF-8 UTF-8
|
||||
ro_RO ISO-8859-2
|
||||
ru_RU.KOI8-R KOI8-R
|
||||
ru_RU.UTF-8 UTF-8
|
||||
ru_RU ISO-8859-5
|
||||
ru_UA.UTF-8 UTF-8
|
||||
ru_UA KOI8-U
|
||||
rw_RW UTF-8
|
||||
sa_IN UTF-8
|
||||
sc_IT UTF-8
|
||||
sd_IN UTF-8
|
||||
sd_IN@devanagari UTF-8
|
||||
se_NO UTF-8
|
||||
shs_CA UTF-8
|
||||
si_LK UTF-8
|
||||
sid_ET UTF-8
|
||||
sk_SK.UTF-8 UTF-8
|
||||
sk_SK ISO-8859-2
|
||||
sl_SI.UTF-8 UTF-8
|
||||
sl_SI ISO-8859-2
|
||||
so_DJ.UTF-8 UTF-8
|
||||
so_DJ ISO-8859-1
|
||||
so_ET UTF-8
|
||||
so_KE.UTF-8 UTF-8
|
||||
so_KE ISO-8859-1
|
||||
so_SO.UTF-8 UTF-8
|
||||
so_SO ISO-8859-1
|
||||
sq_AL.UTF-8 UTF-8
|
||||
sq_AL ISO-8859-1
|
||||
sr_ME UTF-8
|
||||
sr_RS UTF-8
|
||||
sr_RS@latin UTF-8
|
||||
ss_ZA UTF-8
|
||||
st_ZA.UTF-8 UTF-8
|
||||
st_ZA ISO-8859-1
|
||||
sv_FI.UTF-8 UTF-8
|
||||
sv_FI ISO-8859-1
|
||||
sv_FI@euro ISO-8859-15
|
||||
sv_SE.UTF-8 UTF-8
|
||||
sv_SE ISO-8859-1
|
||||
ta_IN UTF-8
|
||||
te_IN UTF-8
|
||||
tg_TJ.UTF-8 UTF-8
|
||||
tg_TJ KOI8-T
|
||||
th_TH.UTF-8 UTF-8
|
||||
th_TH TIS-620
|
||||
ti_ER UTF-8
|
||||
ti_ET UTF-8
|
||||
tig_ER UTF-8
|
||||
tk_TM UTF-8
|
||||
tl_PH.UTF-8 UTF-8
|
||||
tl_PH ISO-8859-1
|
||||
tn_ZA UTF-8
|
||||
tr_CY.UTF-8 UTF-8
|
||||
tr_CY ISO-8859-9
|
||||
tr_TR.UTF-8 UTF-8
|
||||
tr_TR ISO-8859-9
|
||||
ts_ZA UTF-8
|
||||
tt_RU.UTF-8 UTF-8
|
||||
tt_RU@iqtelif.UTF-8 UTF-8
|
||||
ug_CN UTF-8
|
||||
uk_UA.UTF-8 UTF-8
|
||||
uk_UA KOI8-U
|
||||
ur_PK UTF-8
|
||||
uz_UZ ISO-8859-1
|
||||
uz_UZ@cyrillic UTF-8
|
||||
ve_ZA UTF-8
|
||||
vi_VN.TCVN TCVN5712-1
|
||||
vi_VN UTF-8
|
||||
wa_BE ISO-8859-1
|
||||
wa_BE@euro ISO-8859-15
|
||||
wa_BE.UTF-8 UTF-8
|
||||
wo_SN UTF-8
|
||||
xh_ZA.UTF-8 UTF-8
|
||||
xh_ZA ISO-8859-1
|
||||
yi_US.UTF-8 UTF-8
|
||||
yi_US CP1255
|
||||
yo_NG UTF-8
|
||||
zh_CN.GB18030 GB18030
|
||||
zh_CN.GBK GBK
|
||||
zh_CN.UTF-8 UTF-8
|
||||
zh_CN GB2312
|
||||
zh_HK.UTF-8 UTF-8
|
||||
zh_HK BIG5-HKSCS
|
||||
zh_SG.UTF-8 UTF-8
|
||||
zh_SG.GBK GBK
|
||||
zh_SG GB2312
|
||||
zh_TW.EUC-TW EUC-TW
|
||||
zh_TW.UTF-8 UTF-8
|
||||
zh_TW BIG5
|
||||
zu_ZA.UTF-8 UTF-8
|
||||
zu_ZA ISO-8859-1
|
||||
@@ -17,6 +17,14 @@
|
||||
#
|
||||
#mpd_crossfade_time = "5"
|
||||
#
|
||||
##### system encoding #####
|
||||
##
|
||||
## if you use encoding other than utf8, set it in
|
||||
## order to handle utf8 encoded strings properly.
|
||||
##
|
||||
#
|
||||
#system_encoding = ""
|
||||
#
|
||||
##### delays #####
|
||||
#
|
||||
## delay after playlist highlighting will be disabled (0 = don't disable)
|
||||
|
||||
@@ -60,6 +60,9 @@ Set connection timeout to MPD to given value.
|
||||
.B mpd_crossfade_time = SECONDS
|
||||
Default number of seconds to crossfade, if enabled by ncmpcpp.
|
||||
.TP
|
||||
.B system_encoding = ENCODING
|
||||
If you use encoding other than utf8, set it in order to handle utf8 encoded strings properly.
|
||||
.TP
|
||||
.B seek_time = SECONDS
|
||||
Base seek time to begin with.
|
||||
.TP
|
||||
|
||||
@@ -29,13 +29,11 @@
|
||||
#include <iostream>
|
||||
#include <stdexcept>
|
||||
|
||||
#include "locale.h"
|
||||
#include "settings.h"
|
||||
#include "str_pool.h"
|
||||
|
||||
namespace
|
||||
{
|
||||
char *locale_charset = 0;
|
||||
|
||||
inline bool char_non_ascii(char ch)
|
||||
{
|
||||
return (ch & 0x80) != 0;
|
||||
@@ -89,55 +87,12 @@ namespace
|
||||
}
|
||||
}
|
||||
|
||||
void init_current_locale()
|
||||
{
|
||||
if (!setlocale(LC_CTYPE, ""))
|
||||
return;
|
||||
std::string envlocale = setlocale(LC_CTYPE, "");
|
||||
if (envlocale.empty() || envlocale == "C")
|
||||
return;
|
||||
std::ifstream f(ENCODINGS);
|
||||
if (!f.is_open())
|
||||
{
|
||||
std::cerr << "ncmpcpp: cannot open file "ENCODINGS"!\n";
|
||||
return;
|
||||
}
|
||||
envlocale += " ";
|
||||
std::string line;
|
||||
while (!f.eof())
|
||||
{
|
||||
getline(f, line);
|
||||
if (line.find(envlocale) != std::string::npos)
|
||||
{
|
||||
try
|
||||
{
|
||||
std::string charset = line.substr(line.find(" ")+1);
|
||||
if (charset == "UTF-8"
|
||||
|| charset == "utf-8"
|
||||
|| charset == "utf8")
|
||||
{
|
||||
f.close();
|
||||
return;
|
||||
}
|
||||
locale_charset = strdup((charset + "//TRANSLIT").c_str());
|
||||
}
|
||||
catch (std::out_of_range)
|
||||
{
|
||||
f.close();
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
f.close();
|
||||
}
|
||||
|
||||
void utf_to_locale(std::string &s)
|
||||
{
|
||||
if (s.empty() || !locale_charset || !has_non_ascii_chars(s))
|
||||
if (s.empty() || Config.system_encoding.empty() || !has_non_ascii_chars(s))
|
||||
return;
|
||||
char *tmp = str_pool_get(s.c_str());
|
||||
charset_convert("utf8", locale_charset, tmp, s.length());
|
||||
charset_convert("utf8", Config.system_encoding.c_str(), tmp, s.length());
|
||||
s = tmp;
|
||||
str_pool_put(tmp);
|
||||
}
|
||||
@@ -151,10 +106,10 @@ std::string utf_to_locale_cpy(const std::string &s)
|
||||
|
||||
void locale_to_utf(std::string &s)
|
||||
{
|
||||
if (s.empty() || !locale_charset || !has_non_ascii_chars(s))
|
||||
if (s.empty() || Config.system_encoding.empty() || !has_non_ascii_chars(s))
|
||||
return;
|
||||
char *tmp = str_pool_get(s.c_str());
|
||||
charset_convert(locale_charset, "utf8", tmp, s.length());
|
||||
charset_convert(Config.system_encoding.c_str(), "utf8", tmp, s.length());
|
||||
s = tmp;
|
||||
str_pool_put(tmp);
|
||||
}
|
||||
@@ -168,16 +123,16 @@ std::string locale_to_utf_cpy(const std::string &s)
|
||||
|
||||
void str_pool_utf_to_locale(char *&s)
|
||||
{
|
||||
if (!s || !locale_charset || !has_non_ascii_chars(s))
|
||||
if (!s || Config.system_encoding.empty() || !has_non_ascii_chars(s))
|
||||
return;
|
||||
charset_convert("utf8", locale_charset, s);
|
||||
charset_convert("utf8", Config.system_encoding.c_str(), s);
|
||||
}
|
||||
|
||||
void str_pool_locale_to_utf(char *&s)
|
||||
{
|
||||
if (!s || !locale_charset || !has_non_ascii_chars(s))
|
||||
if (!s || Config.system_encoding.empty() || !has_non_ascii_chars(s))
|
||||
return;
|
||||
charset_convert(locale_charset, "utf8", s);
|
||||
charset_convert(Config.system_encoding.c_str(), "utf8", s);
|
||||
}
|
||||
|
||||
#endif // HAVE_ICONV_H
|
||||
|
||||
@@ -29,8 +29,6 @@
|
||||
|
||||
#include <string>
|
||||
|
||||
void init_current_locale();
|
||||
|
||||
void utf_to_locale(std::string &);
|
||||
void locale_to_utf(std::string &);
|
||||
|
||||
@@ -42,8 +40,6 @@ void str_pool_locale_to_utf(char *&);
|
||||
|
||||
#else
|
||||
|
||||
#define init_current_locale();
|
||||
|
||||
#define utf_to_locale(x);
|
||||
#define locale_to_utf(x);
|
||||
|
||||
|
||||
@@ -118,7 +118,6 @@ int main(int argc, char *argv[])
|
||||
std::cerr.rdbuf(errorlog.rdbuf());
|
||||
|
||||
InitScreen("ncmpc++ ver. "VERSION, Config.colors_enabled);
|
||||
init_current_locale();
|
||||
|
||||
MainStartY = 2;
|
||||
MainHeight = LINES-4;
|
||||
|
||||
@@ -528,6 +528,11 @@ void ReadConfiguration(ncmpcpp_config &conf)
|
||||
if (!v.empty())
|
||||
conf.external_editor = v;
|
||||
}
|
||||
else if (cl.find("system_encoding") != string::npos)
|
||||
{
|
||||
if (!v.empty())
|
||||
conf.system_encoding = v + "//TRANSLIT";
|
||||
}
|
||||
else if (cl.find("browser_playlist_prefix") != string::npos)
|
||||
{
|
||||
if (!v.empty())
|
||||
|
||||
@@ -111,6 +111,7 @@ struct ncmpcpp_config
|
||||
std::string song_library_format;
|
||||
std::string tag_editor_album_format;
|
||||
std::string external_editor;
|
||||
std::string system_encoding;
|
||||
|
||||
std::string pattern;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user