aboutsummaryrefslogtreecommitdiff
path: root/libX11/modules/lc/Utf8/lcUTF8Load.c
diff options
context:
space:
mode:
Diffstat (limited to 'libX11/modules/lc/Utf8/lcUTF8Load.c')
-rw-r--r--libX11/modules/lc/Utf8/lcUTF8Load.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/libX11/modules/lc/Utf8/lcUTF8Load.c b/libX11/modules/lc/Utf8/lcUTF8Load.c
index f4bff2880..19880f8ed 100644
--- a/libX11/modules/lc/Utf8/lcUTF8Load.c
+++ b/libX11/modules/lc/Utf8/lcUTF8Load.c
@@ -51,13 +51,21 @@ _XlcUtf8Loader(
return lcd;
/* The official IANA name for UTF-8 is "UTF-8" in upper case with a dash. */
- if (!XLC_PUBLIC_PART(lcd)->codeset ||
- (_XlcCompareISOLatin1(XLC_PUBLIC_PART(lcd)->codeset, "UTF-8"))) {
+ if (!XLC_PUBLIC_PART(lcd)->codeset) {
+ _XlcDestroyLC(lcd);
+ return (XLCd) NULL;
+ }
+ else if (!_XlcCompareISOLatin1(XLC_PUBLIC_PART(lcd)->codeset, "UTF-8")) {
+ _XlcAddUtf8LocaleConverters(lcd);
+ }
+ else if (!_XlcCompareISOLatin1(XLC_PUBLIC_PART(lcd)->codeset, "GB18030")) {
+ _XlcAddGB18030LocaleConverters(lcd);
+ }
+ else {
_XlcDestroyLC(lcd);
return (XLCd) NULL;
}
- _XlcAddUtf8LocaleConverters(lcd);
_XlcAddUtf8Converters(lcd);
return lcd;