Your message dated Sun, 19 Sep 2004 09:02:52 +0200 with message-id <[EMAIL PROTECTED]> and subject line Bug#53752: xlibs: Vietnamese (vi_VN) localization has caused the attached Bug report to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what I am talking about this indicates a serious mail system misconfiguration somewhere. Please contact me immediately.) Debian bug tracking system administrator (administrator, Debian Bugs database) -------------------------------------- Received: (at submit) by bugs.debian.org; 30 Dec 1999 22:27:53 +0000 Received: (qmail 18815 invoked from network); 30 Dec 1999 22:27:51 -0000 Received: from chupacabras.flash.net (209.30.2.16) by master.debian.org with SMTP; 30 Dec 1999 22:27:51 -0000 Received: from ghoti.home (209-30-246-231.flash.net [209.30.246.231]) by chupacabras.flash.net (8.9.3/Pro-8.9.3) with ESMTP id QAA27448 for <[EMAIL PROTECTED]>; Thu, 30 Dec 1999 16:27:22 -0600 (CST) Received: from aclark by ghoti.home with local (Exim 3.11 #1 (Debian)) id 123o2T-0007FX-00; Thu, 30 Dec 1999 16:27:21 -0600 From: Ashley Clark <[EMAIL PROTECTED]> Subject: xlib6g: Vietnamese (vi_VN) localization patch To: [EMAIL PROTECTED] X-Mailer: bug 3.2.7 Message-Id: <[EMAIL PROTECTED]> Date: Thu, 30 Dec 1999 16:27:21 -0600 Package: xlib6g Version: 3.3.5-2 Severity: wishlist Included is a patch enabling the vi_VN.TCVN and vi_VN.VISCII locales in Xlib. It was obtained from Pablo Saratxaga <[EMAIL PROTECTED]> who may or may not have submitted it upstream, if not it should be probably be forwarded upstream. Pablo's original patch also included changes for Georgian, Russian (KOI8-R, KOI8-U and Microsoft CP1251) but I have no way of testing them and so am only submitting the portions that deal with Vietnamese. I've tested this on my system and with the proper font encodings everything seems to work. -- System Information Debian Release: potato Kernel Version: Linux ghoti 2.2.13 #1 Wed Oct 20 08:50:54 CDT 1999 i586 unknown Versions of the packages xlib6g depends on: ii libc6 2.1.2-11 GNU C Library: Shared libraries and Timezone ii xfree86-common 3.3.5-3 X Window System (XFree86) infrastructure ----- patch follows ----- --- xc/include/keysymdef.h.aclark Thu Dec 23 20:48:44 1999 +++ xc/include/keysymdef.h Thu Dec 23 20:54:44 1999 @@ -323,6 +323,22 @@ #define XK_dead_voiced_sound 0xFE5E #define XK_dead_semivoiced_sound 0xFE5F #define XK_dead_belowdot 0xFE60 +#define XK_dead_hook 0xFE61 +#define XK_dead_horn 0xFE62 +#define XK_dead_A 0xFE63 +#define XK_dead_a 0xFE64 +#define XK_dead_d 0xFE65 +#define XK_dead_D 0xFE66 +#define XK_dead_e 0xFE67 +#define XK_dead_E 0xFE68 +#define XK_dead_i 0xFE69 +#define XK_dead_I 0xFE6A +#define XK_dead_o 0xFE6B +#define XK_dead_O 0xFE6C +#define XK_dead_u 0xFE6D +#define XK_dead_U 0xFE6E +#define XK_dead_y 0xFE6F +#define XK_dead_Y 0xFE70 #define XK_First_Virtual_Screen 0xFED0 #define XK_Prev_Virtual_Screen 0xFED1 @@ -575,6 +591,7 @@ #define XK_Odiaeresis 0x0d6 #define XK_multiply 0x0d7 #define XK_Ooblique 0x0d8 +#define XK_Oslash XK_Ooblique #define XK_Ugrave 0x0d9 #define XK_Uacute 0x0da #define XK_Ucircumflex 0x0db @@ -608,6 +625,7 @@ #define XK_odiaeresis 0x0f6 #define XK_division 0x0f7 #define XK_oslash 0x0f8 +#define XK_ooblique XK_oslash #define XK_ugrave 0x0f9 #define XK_uacute 0x0fa #define XK_ucircumflex 0x0fb @@ -1577,6 +1595,118 @@ #define XK_Korean_Won 0xeff #endif /* XK_KOREAN */ + +/* + * Vietnamese + * Byte 3 = 0x1e + */ + +#ifdef XK_VIETNAMESE +/* these two are from Latin8 and should be moved when it is added */ +#define XK_Ygrave 0x12ac +#define XK_ygrave 0x12bc +/* --- */ +#define XK_Abelowdot 0x1ea0 +#define XK_abelowdot 0x1ea1 +#define XK_Ahook 0x1ea2 +#define XK_ahook 0x1ea3 +#define XK_Acircumflexacute 0x1ea4 +#define XK_acircumflexacute 0x1ea5 +#define XK_Acircumflexgrave 0x1ea6 +#define XK_acircumflexgrave 0x1ea7 +#define XK_Acircumflexhook 0x1ea8 +#define XK_acircumflexhook 0x1ea9 +#define XK_Acircumflextilde 0x1eaa +#define XK_acircumflextilde 0x1eab +#define XK_Acircumflexbelowdot 0x1eac +#define XK_acircumflexbelowdot 0x1ead +#define XK_Abreveacute 0x1eae +#define XK_abreveacute 0x1eaf +#define XK_Abrevegrave 0x1eb0 +#define XK_abrevegrave 0x1eb1 +#define XK_Abrevehook 0x1eb2 +#define XK_abrevehook 0x1eb3 +#define XK_Abrevetilde 0x1eb4 +#define XK_abrevetilde 0x1eb5 +#define XK_Abrevebelowdot 0x1eb6 +#define XK_abrevebelowdot 0x1eb7 +#define XK_Ebelowdot 0x1eb8 +#define XK_ebelowdot 0x1eb9 +#define XK_Ehook 0x1eba +#define XK_ehook 0x1ebb +#define XK_Etilde 0x1ebc +#define XK_etilde 0x1ebd +#define XK_Ecircumflexacute 0x1ebe +#define XK_ecircumflexacute 0x1ebf +#define XK_Ecircumflexgrave 0x1ec0 +#define XK_ecircumflexgrave 0x1ec1 +#define XK_Ecircumflexhook 0x1ec2 +#define XK_ecircumflexhook 0x1ec3 +#define XK_Ecircumflextilde 0x1ec4 +#define XK_ecircumflextilde 0x1ec5 +#define XK_Ecircumflexbelowdot 0x1ec6 +#define XK_ecircumflexbelowdot 0x1ec7 +#define XK_Ihook 0x1ec8 +#define XK_ihook 0x1ec9 +#define XK_Ibelowdot 0x1eca +#define XK_ibelowdot 0x1ecb +#define XK_Obelowdot 0x1ecc +#define XK_obelowdot 0x1ecd +#define XK_Ohook 0x1ece +#define XK_ohook 0x1ecf +#define XK_Ocircumflexacute 0x1ed0 +#define XK_ocircumflexacute 0x1ed1 +#define XK_Ocircumflexgrave 0x1ed2 +#define XK_ocircumflexgrave 0x1ed3 +#define XK_Ocircumflexhook 0x1ed4 +#define XK_ocircumflexhook 0x1ed5 +#define XK_Ocircumflextilde 0x1ed6 +#define XK_ocircumflextilde 0x1ed7 +#define XK_Ocircumflexbelowdot 0x1ed8 +#define XK_ocircumflexbelowdot 0x1ed9 +#define XK_Ohornacute 0x1eda +#define XK_ohornacute 0x1edb +#define XK_Ohorngrave 0x1edc +#define XK_ohorngrave 0x1edd +#define XK_Ohornhook 0x1ede +#define XK_ohornhook 0x1edf +#define XK_Ohorntilde 0x1ee0 +#define XK_ohorntilde 0x1ee1 +#define XK_Ohornbelowdot 0x1ee2 +#define XK_ohornbelowdot 0x1ee3 +#define XK_Ubelowdot 0x1ee4 +#define XK_ubelowdot 0x1ee5 +#define XK_Uhook 0x1ee6 +#define XK_uhook 0x1ee7 +#define XK_Uhornacute 0x1ee8 +#define XK_uhornacute 0x1ee9 +#define XK_Uhorngrave 0x1eea +#define XK_uhorngrave 0x1eeb +#define XK_Uhornhook 0x1eec +#define XK_uhornhook 0x1eed +#define XK_Uhorntilde 0x1eee +#define XK_uhorntilde 0x1eef +#define XK_Uhornbelowdot 0x1ef0 +#define XK_uhornbelowdot 0x1ef1 +#define XK_Ybelowdot 0x1ef4 +#define XK_ybelowdot 0x1ef5 +#define XK_Yhook 0x1ef6 +#define XK_yhook 0x1ef7 +#define XK_Ytilde 0x1ef8 +#define XK_ytilde 0x1ef9 +#define XK_Ohorn 0x1efa /* U+01a0 */ +#define XK_ohorn 0x1efb /* U+01a1 */ +#define XK_Uhorn 0x1efc /* U+01af */ +#define XK_uhorn 0x1efd /* U+01b0 */ +#define XK_combining_grave 0x1ef2 /* U+0300 */ +#define XK_combining_acute 0x1ef3 /* U+0301 */ +/* not enough room for this one... +#define XK_combining_tilde 0x * U+0303 * +*/ +#define XK_combining_hook 0x1efe /* U+0309 */ +#define XK_combining_belowdot 0x1eff /* U+0323 */ +#endif /* XK_VIETNAMESE */ + #ifdef XK_CURRENCY #define XK_EcuSign 0x20a0 --- xc/lib/X11/XKBCvt.c.aclark Wed Dec 22 02:53:37 1999 +++ xc/lib/X11/XKBCvt.c Wed Dec 22 03:04:06 1999 @@ -75,6 +75,16 @@ extern unsigned short _Xkoi8_size; +/* maps Vietnamese keysyms to TCVN-5712 */ +extern unsigned char _Xtcvn[]; + +extern unsigned short _Xtcvn_size; + +/* maps Vietnamese keysyms to VISCII1.1-1 */ +extern unsigned char _Xviscii[]; + +extern unsigned short _Xviscii_size; + #define sLatin1 0 #define sLatin2 1 #define sLatin3 2 @@ -93,6 +103,9 @@ #define sLatin7 17 #define sLatin8 18 #define sLatin9 19 +#define sVietnamese 30 +#define sVietnamese_viscii 0x0100001eL +#define sVietnamese_tcvn 0x0200001eL #define sCurrency 32 @@ -109,6 +122,9 @@ static unsigned long WantGreek = sGreek; static unsigned long WantAPL = sAPL; static unsigned long WantHebrew = sHebrew; +static unsigned long WantVietnamese = sVietnamese; +static unsigned long WantTcvn = sVietnamese_tcvn; +static unsigned long WantViscii = sVietnamese_viscii; static int #if NeedFunctionPrototypes @@ -421,6 +437,14 @@ _XkbKSToKnownSet,(XPointer)&WantHebrew,_XkbKnownSetToKS,NULL,NULL }; +static XkbConverters cvt_Tcvn = { + _XkbKSToKnownSet,(XPointer)&WantTcvn,_XkbKnownSetToKS,NULL,NULL +}; + +static XkbConverters cvt_Viscii = { + _XkbKSToKnownSet,(XPointer)&WantViscii,_XkbKnownSetToKS,NULL,NULL +}; + static XkbConverters cvt_Thai = { _XkbKSToThai, NULL, _XkbThaiToKS, NULL, NULL }; @@ -509,6 +533,10 @@ *cvt_rtrn = cvt_Thai; else if (Strcmp(encoding_name, "koi8-r")==0) *cvt_rtrn = cvt_Koi8; + else if (Strcmp(encoding_name, "tcvn-5712")==0) + *cvt_rtrn = cvt_Tcvn; + else if (Strcmp(encoding_name, "viscii1.1-1")==0) + *cvt_rtrn = cvt_Viscii; /* other codesets go here */ else *cvt_rtrn = cvt_latin1; return 1; @@ -533,7 +561,7 @@ */ #define CHARSET_FILE "/usr/lib/X11/input/charsets" -static char *_XkbKnownLanguages = "c=ascii:da,de,en,es,fi,fr,is,it,nl,no,pt,sv=iso8859-1:hu,pl,cs=iso8859-2:bg,ru=iso8859-5:ar,ara=iso8859-6:el=iso8859-7:th,th_TH,th_TH.TACTIS=tactis"; +static char *_XkbKnownLanguages = "c=ascii:da,de,en,es,fi,fr,is,it,nl,no,pt,sv=iso8859-1:hu,pl,cs=iso8859-2:bg,ru=iso8859-5:ar,ara=iso8859-6:el=iso8859-7:th,th_TH,th_TH.TACTIS=tactis:vi,vi_VN,vi_VN.TCVN=tcvn-5712:vi_VN.VISCII=viscii1.1-1"; char * _XkbGetCharset() --- xc/lib/X11/lcCT.c.aclark Wed Oct 21 01:40:39 1998 +++ xc/lib/X11/lcCT.c Thu Dec 23 20:42:24 1999 @@ -95,6 +95,8 @@ /* Non-Standard Character Set Encodings */ { "KOI8-R:GR", "\033%/1\200\210koi8-r\002"}, { "ISO8859-15:GR", "\033%/1\200\213iso8859-15\002"}, + { "VISCII1.1-1:GR", "\033%/1\200\210viscii1.1-1\002"}, + { "TCVN-5712:GR", "\033%/1\200\210tcvn-5712\002"}, } ; #define XctC0 0x0000 --- xc/lib/X11/XlcUTF.h.aclark Wed Dec 22 03:06:20 1999 +++ xc/lib/X11/XlcUTF.h Wed Dec 22 03:07:16 1999 @@ -59,6 +59,8 @@ #define ksc5601 "ksc5601" #define gb2312 "gb2312" #define tabkoi8_r "tabkoi8_r" +#define tabviscii "tabviscii" +#define tabtcvn "tabtcvn" #define emit(x) *r = (Rune)x; --- xc/lib/X11/imConv.c.aclark Wed Dec 22 03:10:03 1999 +++ xc/lib/X11/imConv.c Thu Dec 23 20:41:10 1999 @@ -155,6 +155,48 @@ 0xf8, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +/* maps Vietnamese keysyms to TCVN-5712 */ +unsigned char _Xtcvn[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80 - */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90 - */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x84, 0xb9, 0x81, 0xb6, 0xc4, 0xca, 0xc1, 0xc7, /* 0xa0 - */ + 0xc2, 0xc8, 0xc3, 0xc9, 0x86, 0xcb, 0xc0, 0xbe, + 0xaf, 0xbb, 0xba, 0xbc, 0xbf, 0xbd, 0x85, 0xc6, /* 0xb0 - */ + 0x8b, 0xd1, 0x88, 0xce, 0x89, 0xcf, 0xda, 0xd5, + 0xc5, 0xd2, 0xcd, 0xd3, 0xd9, 0xd4, 0x8c, 0xd6, /* 0xc0 - */ + 0x8e, 0xd8, 0x91, 0xde, 0x96, 0xe4, 0x93, 0xe1, + 0xff, 0xe8, 0xdb, 0xe5, 0xe0, 0xe6, 0xf0, 0xe7, /* 0xd0 - */ + 0x97, 0xe9, 0x9b, 0xed, 0x98, 0xea, 0x99, 0xeb, + 0x9a, 0xec, 0x9c, 0xee, 0x02, 0xf4, 0x9e, 0xf1, /* 0xe0 - */ + 0x11, 0xf8, 0x04, 0xf5, 0x05, 0xf6, 0x06, 0xf7, + 0x12, 0xf9, 0xb0, 0xb3, 0x17, 0xfe, 0x14, 0xfb, /* 0xf0 - */ + 0x15, 0xfc, 0xa5, 0xac, 0xa6, 0xad, 0xb1, 0xb4 +}; + +/* maps Vietnamese keysyms to VISCII 1.1 */ +unsigned char _Xviscii[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80 - */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90 - */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xd5, 0xc4, 0xe4, 0x84, 0xa4, 0x85, 0xa5, /* 0xa0 - */ + 0x86, 0xa6, 0x06, 0xe7, 0x87, 0xa7, 0x81, 0xa1, + 0x82, 0xa2, 0x02, 0xc6, 0x05, 0xc7, 0x83, 0xa3, /* 0xb0 - */ + 0x89, 0xa9, 0xcb, 0xeb, 0x88, 0xa8, 0x8a, 0xaa, + 0x8b, 0xab, 0x8c, 0xac, 0x8d, 0xad, 0x8e, 0xae, /* 0xc0 - */ + 0x9b, 0xef, 0x98, 0xb8, 0x9a, 0xf7, 0x99, 0xf6, + 0x8f, 0xaf, 0x90, 0xb0, 0x91, 0xb1, 0x92, 0xb2, /* 0xd0 - */ + 0x93, 0xb5, 0x95, 0xbe, 0x96, 0xb6, 0x97, 0xb7, + 0xb3, 0xde, 0x94, 0xfe, 0x9e, 0xf8, 0x9c, 0xfc, /* 0xe0 - */ + 0xba, 0xd1, 0xbb, 0xd7, 0xbc, 0xd8, 0xff, 0xe6, + 0xb9, 0xf1, 0x00, 0x00, 0x1e, 0xdc, 0x14, 0xd6, /* 0xf0 - */ + 0x19, 0xdb, 0xb4, 0xbd, 0xbf, 0xdf, 0x00, 0x00 +}; + +unsigned short _Xtcvn_size = sizeof _Xtcvn; +unsigned short _Xviscii_size = sizeof _Xviscii; static unsigned short keysym_to_unicode_1a1_1ff[] = { 0x0104, 0x02d8, 0x0141, 0x0000, 0x013d, 0x015a, 0x0000, /* 0x01a0-0x01a7 */ @@ -337,6 +379,21 @@ 0x0152, 0x0153, 0x0178 /* 0x13b8-0x13bf */ }; +static unsigned short keysym_to_unicode_1ea0_1eff[] = { + 0x1ea0, 0x1ea1, 0x1ea2, 0x1ea3, 0x1ea4, 0x1ea5, 0x1ea6, 0x1ea7, /* 0x1ea0-0x1ea7 */ + 0x1ea8, 0x1ea9, 0x1eaa, 0x1eab, 0x1eac, 0x1ead, 0x1eae, 0x1eaf, /* 0x1ea8-0x1eaf */ + 0x1eb0, 0x1eb1, 0x1eb2, 0x1eb3, 0x1eb4, 0x1eb5, 0x1eb6, 0x1eb7, /* 0x1eb0-0x1eb7 */ + 0x1eb8, 0x1eb9, 0x1eba, 0x1ebb, 0x1ebc, 0x1ebd, 0x1ebe, 0x1ebf, /* 0x1eb8-0x1ebf */ + 0x1ec0, 0x1ec1, 0x1ec2, 0x1ec3, 0x1ec4, 0x1ec5, 0x1ec6, 0x1ec7, /* 0x1ec0-0x1ec7 */ + 0x1ec8, 0x1ec9, 0x1eca, 0x1ecb, 0x1ecc, 0x1ecd, 0x1ece, 0x1ecf, /* 0x1ec8-0x1ecf */ + 0x1ed0, 0x1ed1, 0x1ed2, 0x1ed3, 0x1ed4, 0x1ed5, 0x1ed6, 0x1ed7, /* 0x1ed0-0x1ed7 */ + 0x1ed8, 0x1ed9, 0x1eda, 0x1edb, 0x1edc, 0x1edd, 0x1ede, 0x1edf, /* 0x1ed8-0x1edf */ + 0x1ee0, 0x1ee1, 0x1ee2, 0x1ee3, 0x1ee4, 0x1ee5, 0x1ee6, 0x1ee7, /* 0x1ee0-0x1ee7 */ + 0x1ee8, 0x1ee9, 0x1eea, 0x1eeb, 0x1eec, 0x1eed, 0x1eee, 0x1eef, /* 0x1ee8-0x1eef */ + 0x1ef0, 0x1ef1, 0x0300, 0x0301, 0x1ef4, 0x1ef5, 0x1ef6, 0x1ef7, /* 0x1ef0-0x1ef7 */ + 0x1ef8, 0x1ef9, 0x01a0, 0x01a1, 0x01af, 0x01b0, 0x0309, 0x0323 /* 0x1ef8-0x1eff */ +}; + static unsigned short keysym_to_unicode_20a0_20ac[] = { 0x20a0, 0x20a1, 0x20a2, 0x20a3, 0x20a4, 0x20a5, 0x20a6, 0x20a7, /* 0x20a0-0x20a7 */ 0x20a8, 0x20a9, 0x20aa, 0x20ab, 0x20ac /* 0x20a8-0x20af */ @@ -375,6 +432,8 @@ return keysym_to_unicode_ea0_eff[keysym - 0xea0]; else if (keysym > 0x13bb && keysym < 0x13bf) return keysym_to_unicode_13bc_13be[keysym - 0x13bc]; + else if (keysym > 0x1ea0 && keysym < 0x1f00) + return keysym_to_unicode_1ea0_1eff[keysym - 0x1ea0]; else if (keysym > 0x209f && keysym < 0x20ad) return keysym_to_unicode_20a0_20ac[keysym - 0x20a0]; else @@ -405,6 +464,9 @@ #define sLatin7 17L #define sLatin8 18L #define sLatin9 19L +#define sVietnamese 30L +#define sVietnamese_tcvn 0x0100001eL +#define sVietnamese_viscii 0x0200001eL #define sCurrency 32L #define sUTF8 0x02000000L @@ -431,6 +493,8 @@ /* Non-standard */ {sKoi8, "KOI8-R", "\033%/1\200\210koi8-r\002"}, {sLatin9, "ISO8859-15", "\033%/1\200\213iso8859-15\002"},/* a.k.a. Latin-0 */ + {sVietnamese_viscii, "VISCII1.1-1", "\033%/1\200\210viscii1.1-1\002"}, + {sVietnamese_tcvn, "TCVN-5712", "\033%/1\200\210tcvn-5712\002"}, }; #define NUM_CODESETS sizeof CodesetTable / sizeof CodesetTable[0] @@ -627,6 +691,14 @@ if (!buf[0]) count = 0; break; + case sVietnamese: + if (locale_code == sVietnamese_tcvn) + *buf = _Xtcvn[keysym & 0x7f]; + else if (locale_code == sVietnamese_viscii) + *buf = _Xviscii[keysym & 0x7f]; + else /* other vietnamese encodings not defined */ + *buf = (unsigned char)(keysym & 0xff); + break; default: *buf = (unsigned char)(keysym & 0xff); break; @@ -654,6 +726,51 @@ if ((locale_code == sX0201) && ((keysym == XK_backslash) || (keysym == XK_asciitilde))) count = 0; + if (locale_code == sVietnamese_tcvn) { + count = 1; + switch (keysym) { + case XK_Agrave: *buf = (unsigned char)0x80; break; + case XK_agrave: *buf = (unsigned char)0xb5; break; + case XK_Aacute: *buf = (unsigned char)0x83; break; + case XK_aacute: *buf = (unsigned char)0xb8; break; + case XK_Acircumflex:*buf = (unsigned char)0xa2; break; + case XK_acircumflex:*buf = (unsigned char)0xa9; break; + case XK_Atilde: *buf = (unsigned char)0x82; break; + case XK_atilde: *buf = (unsigned char)0xb7; break; + case XK_Egrave: *buf = (unsigned char)0x87; break; + case XK_egrave: *buf = (unsigned char)0xcc; break; + case XK_Eacute: *buf = (unsigned char)0x8a; break; + case XK_eacute: *buf = (unsigned char)0xd0; break; + case XK_Ecircumflex:*buf = (unsigned char)0xa3; break; + case XK_ecircumflex:*buf = (unsigned char)0xaa; break; + case XK_Igrave: *buf = (unsigned char)0x8d; break; + case XK_igrave: *buf = (unsigned char)0xd7; break; + case XK_Iacute: *buf = (unsigned char)0x90; break; + case XK_iacute: *buf = (unsigned char)0xdd; break; + case XK_Ograve: *buf = (unsigned char)0x92; break; + case XK_ograve: *buf = (unsigned char)0xdf; break; + case XK_Oacute: *buf = (unsigned char)0x95; break; + case XK_oacute: *buf = (unsigned char)0xe3; break; + case XK_Ocircumflex:*buf = (unsigned char)0xa4; break; + case XK_ocircumflex:*buf = (unsigned char)0xab; break; + case XK_Otilde: *buf = (unsigned char)0x94; break; + case XK_otilde: *buf = (unsigned char)0xe2; break; + case XK_Ugrave: *buf = (unsigned char)0x9d; break; + case XK_ugrave: *buf = (unsigned char)0xef; break; + case XK_Uacute: *buf = (unsigned char)0x01; break; + case XK_uacute: *buf = (unsigned char)0xf3; break; + case XK_Yacute: *buf = (unsigned char)0x16; break; + case XK_yacute: *buf = (unsigned char)0xfd; break; + default: count = 0; + } + } else if (locale_code == sVietnamese_viscii) { + count = 1; + switch (keysym) { + case XK_Otilde: *buf = (unsigned char)0xa0; break; + case XK_otilde: *buf = (unsigned char)0xf5; break; + default: *buf = (unsigned char)(keysym&0x7f); + } + } if ( (keysym&0x80)==0 ) { *buf = (unsigned char)(keysym&0x7f); count = 1; @@ -678,6 +795,26 @@ else if (keysym == XK_zcaron) *buf = (unsigned char)0xb8; else count = 0; + } else if (locale_code == sVietnamese_viscii) { + if (keysym == XK_Abreve) + *buf = (unsigned char)0xc5; + if (keysym == XK_abreve) + *buf = (unsigned char)0xe5; + if (keysym == XK_Dstroke) + *buf = (unsigned char)0xd0; + if (keysym == XK_dstroke) + *buf = (unsigned char)0xf0; + else count = 0; + } else if (locale_code == sVietnamese_tcvn) { + if (keysym == XK_Abreve) + *buf = (unsigned char)0xa1; + if (keysym == XK_abreve) + *buf = (unsigned char)0xa8; + if (keysym == XK_Dstroke) + *buf = (unsigned char)0xa7; + if (keysym == XK_dstroke) + *buf = (unsigned char)0xae; + else count = 0; } else count = 0; } else if ((keysym >> 8) == sLatin3) { if (locale_code == sLatin5) { @@ -733,7 +870,44 @@ case XK_uogonek: *buf = (unsigned char)(keysym & 0xff); break; default: count = 0; } - } + } else if (locale_code == sVietnamese_tcvn) { + if (keysym == XK_Itilde) + *buf = (unsigned char)0x8f; + if (keysym == XK_itilde) + *buf = (unsigned char)0xdc; + if (keysym == XK_Utilde) + *buf = (unsigned char)0x9f; + if (keysym == XK_utilde) + *buf = (unsigned char)0xf2; + else count = 0; + } else if (locale_code == sVietnamese_viscii) { + if (keysym == XK_Itilde) + *buf = (unsigned char)0xce; + if (keysym == XK_itilde) + *buf = (unsigned char)0xee; + if (keysym == XK_Utilde) + *buf = (unsigned char)0x9d; + if (keysym == XK_utilde) + *buf = (unsigned char)0xfb; + else count = 0; + } else count = 0; + } else if ((keysym >> 8) == sLatin8) { + count = 1; + if (locale_code == sLatin8) { + *buf = (unsigned char)(keysym & 0xff); + } else if (locale_code == sVietnamese_viscii) { + if (keysym == XK_Ygrave) + *buf = (unsigned char)0x9f; + if (keysym == XK_ygrave) + *buf = (unsigned char)0xcf; + else count = 0; + } else if (locale_code == sVietnamese_tcvn) { + if (keysym == XK_Ygrave) + *buf = (unsigned char)0x13; + if (keysym == XK_ygrave) + *buf = (unsigned char)0xfa; + else count = 0; + } else count = 0; } else if (locale_code == sLatin9 && keysym == XK_EuroSign) { count = 1; *buf = (unsigned char)0xa4; --- xc/lib/X11/lcUTF.c.aclark Thu Dec 23 20:43:14 1999 +++ xc/lib/X11/lcUTF.c Thu Dec 23 20:48:16 1999 @@ -154,6 +154,18 @@ wchar_t #endif ); +static void init_visciitab( +#if NeedFunctionPrototypes + int*, + wchar_t +#endif +); +static void init_tcvn5712tab( +#if NeedFunctionPrototypes + int*, + wchar_t +#endif +); static void init_jis0201tab( #if NeedFunctionPrototypes int*, @@ -219,6 +231,10 @@ {"GB2312.1980-0", XlcGR, init_gb2312tab, gb2rune, N11n_zh, 0x2175}, {"KOI8-R", XlcGL, init_koi8rtab, latin2rune, N11n_none, 0x20}, {"KOI8-R", XlcGR, init_koi8rtab, latin2rune, N11n_none, 0x20}, + {"VISCII1.1-1", XlcGL, init_visciitab, latin2rune, N11n_none, 0x20}, + {"VISCII1.1-1", XlcGR, init_visciitab, latin2rune, N11n_none, 0x20}, + {"TCVN-5712", XlcGL, init_tcvn5712tab, latin2rune, N11n_none, 0x20}, + {"TCVN-5712", XlcGR, init_tcvn5712tab, latin2rune, N11n_none, 0x20}, }; @@ -554,6 +570,34 @@ #endif { init_8859_tab (tbl, fb_default, tab8859_15); +} + +static void +#if NeedFunctionPrototypes +init_visciitab( + int* tbl, + wchar_t fb_default) +#else +init_visciitab(tbl, fb_default) + int* tbl; + wchar_t fb_default; +#endif +{ + init_8859_tab (tbl, fb_default, tabviscii); +} + +static void +#if NeedFunctionPrototypes +init_tcvn5712tab( + int* tbl, + wchar_t fb_default) +#else +init_tcvn5712tab(tbl, fb_default) + int* tbl; + wchar_t fb_default; +#endif +{ + init_8859_tab (tbl, fb_default, tabtcvn); } static void --- xc/nls/Compose/vi_VN.viscii.aclark Thu Dec 23 21:07:35 1999 +++ xc/nls/Compose/vi_VN.viscii Thu Dec 23 21:10:53 1999 @@ -0,0 +1,510 @@ +# $TOG: vi_VN.viscii /main/7 1998/05/20 15:33:23 kaleb $ +# +# VISCII 1.1 Compose Sequence +# +# Sequence Definition +# +# <Multi_key> Means <Compose> +# Special Character +<Multi_key> <plus> <plus> : "#" numbersign +<Multi_key> <apostrophe> <space> : "'" apostrophe +<Multi_key> <space> <apostrophe> : "'" apostrophe +<Multi_key> <A> <T> : "@" at +<Multi_key> <parenleft> <parenleft> : "[" bracketleft +<Multi_key> <slash> <slash> : "\\" backslash +<Multi_key> <slash> <less> : "\\" backslash +<Multi_key> <less> <slash> : "\\" backslash +<Multi_key> <parenright> <parenright> : "]" bracketright +<Multi_key> <asciicircum> <space> : "^" asciicircum +<Multi_key> <space> <asciicircum> : "^" asciicircum +<Multi_key> <greater> <space> : "^" asciicircum +<Multi_key> <space> <greater> : "^" asciicircum +<Multi_key> <grave> <space> : "`" grave +<Multi_key> <space> <grave> : "`" grave +<Multi_key> <parenleft> <minus> : "{" braceleft +<Multi_key> <minus> <parenleft> : "{" braceleft +<Multi_key> <slash> <asciicircum> : "|" bar +<Multi_key> <asciicircum> <slash> : "|" bar +<Multi_key> <V> <L> : "|" bar +<Multi_key> <L> <V> : "|" bar +<Multi_key> <v> <l> : "|" bar +<Multi_key> <l> <v> : "|" bar +<Multi_key> <parenright> <minus> : "}" braceright +<Multi_key> <minus> <parenright> : "}" braceright +<Multi_key> <asciitilde> <space> : "~" asciitilde +<Multi_key> <space> <asciitilde> : "~" asciitilde +<Multi_key> <minus> <space> : "~" asciitilde +<Multi_key> <space> <minus> : "~" asciitilde +# Accented Alphabet +<Multi_key> <A> <grave> : "\300" Agrave +<Multi_key> <grave> <A> : "\300" Agrave +<Multi_key> <A> <acute> : "\301" Aacute +<Multi_key> <acute> <A> : "\301" Aacute +<Multi_key> <A> <apostrophe> : "\301" Aacute +<Multi_key> <apostrophe> <A> : "\301" Aacute +<Multi_key> <A> <asciicircum> : "\302" Acircumflex +<Multi_key> <asciicircum> <A> : "\302" Acircumflex +<Multi_key> <A> <greater> : "\302" Acircumflex +<Multi_key> <greater> <A> : "\302" Acircumflex +<Multi_key> <A> <asciitilde> : "\303" Atilde +<Multi_key> <asciitilde> <A> : "\303" Atilde +<Multi_key> <A> <parenleft> : "\304" Abreve +<Multi_key> <A> <period> : "\304" Abelowdot +<Multi_key> <A> <question> : "\305" Ahook + +<Multi_key> <a> <grave> : "\340" agrave +<Multi_key> <grave> <a> : "\340" agrave +<Multi_key> <a> <acute> : "\341" aacute +<Multi_key> <acute> <a> : "\341" aacute +<Multi_key> <a> <apostrophe> : "\341" aacute +<Multi_key> <apostrophe> <a> : "\341" aacute +<Multi_key> <a> <asciicircum> : "\342" acircumflex +<Multi_key> <asciicircum> <a> : "\342" acircumflex +<Multi_key> <a> <greater> : "\342" acircumflex +<Multi_key> <greater> <a> : "\342" acircumflex +<Multi_key> <a> <asciitilde> : "\343" atilde +<Multi_key> <asciitilde> <a> : "\343" atilde +<Multi_key> <a> <pareleft> : "\343" abreve +<Multi_key> <a> <period> : "\343" abelowdot +<Multi_key> <a> <question> : "\344" ahook +<Multi_key> <minus> <D> : "\320" Dstroke +<Multi_key> <D> <minus> : "\320" Dstroke +<Multi_key> <D> <D> : "\320" Dstroke +<Multi_key> <minus> <d> : "\360" dstroke +<Multi_key> <d> <minus> : "\360" dstroke +<Multi_key> <d> <d> : "\360" dstroke +<Multi_key> <E> <grave> : "\310" Egrave +<Multi_key> <grave> <E> : "\310" Egrave +<Multi_key> <E> <acute> : "\311" Eacute +<Multi_key> <acute> <E> : "\311" Eacute +<Multi_key> <E> <apostrophe> : "\311" Eacute +<Multi_key> <apostrophe> <E> : "\311" Eacute +<Multi_key> <E> <asciicircum> : "\312" Ecircumflex +<Multi_key> <asciicircum> <E> : "\312" Ecircumflex +<Multi_key> <E> <greater> : "\312" Ecircumflex +<Multi_key> <greater> <E> : "\312" Ecircumflex +<Multi_key> <E> <asciitilde> : "\313" Etilde +<Multi_key> <asciitilde> <E> : "\313" Etilde +<Multi_key> <E> <period> : "\313" Ebelowdot +<Multi_key> <E> <question> : "\313" Ehook +<Multi_key> <e> <grave> : "\350" egrave +<Multi_key> <grave> <e> : "\350" egrave +<Multi_key> <e> <acute> : "\351" eacute +<Multi_key> <acute> <e> : "\351" eacute +<Multi_key> <e> <apostrophe> : "\351" eacute +<Multi_key> <apostrophe> <e> : "\351" eacute +<Multi_key> <e> <asciicircum> : "\352" ecircumflex +<Multi_key> <asciicircum> <e> : "\352" ecircumflex +<Multi_key> <e> <greater> : "\352" ecircumflex +<Multi_key> <greater> <e> : "\352" ecircumflex +<Multi_key> <e> <asciitilde> : "\353" etilde +<Multi_key> <asciitilde> <e> : "\353" etilde +<Multi_key> <e> <period> : "\353" ebelowdot +<Multi_key> <e> <question> : "\353" ehook +<Multi_key> <I> <grave> : "\314" Igrave +<Multi_key> <grave> <I> : "\314" Igrave +<Multi_key> <I> <acute> : "\315" Iacute +<Multi_key> <acute> <I> : "\315" Iacute +<Multi_key> <I> <apostrophe> : "\315" Iacute +<Multi_key> <apostrophe> <I> : "\315" Iacute +<Multi_key> <I> <asciitilde> : "\316" Itilde +<Multi_key> <asciitilde> <I> : "\316" Itilde +<Multi_key> <I> <period> : "\316" Ibelowdot +<Multi_key> <I> <question> : "\317" Ihook +<Multi_key> <i> <grave> : "\354" igrave +<Multi_key> <grave> <i> : "\354" igrave +<Multi_key> <i> <acute> : "\355" iacute +<Multi_key> <acute> <i> : "\355" iacute +<Multi_key> <i> <apostrophe> : "\355" iacute +<Multi_key> <apostrophe> <i> : "\355" iacute +<Multi_key> <i> <asciitilde> : "\356" itilde +<Multi_key> <asciitilde> <i> : "\356" itilde +<Multi_key> <i> <period> : "\356" ibelowdot +<Multi_key> <i> <question> : "\357" ihook +<Multi_key> <O> <grave> : "\322" Ograve +<Multi_key> <grave> <O> : "\322" Ograve +<Multi_key> <O> <acute> : "\323" Oacute +<Multi_key> <acute> <O> : "\323" Oacute +<Multi_key> <O> <apostrophe> : "\323" Oacute +<Multi_key> <apostrophe> <O> : "\323" Oacute +<Multi_key> <O> <asciicircum> : "\324" Ocircumflex +<Multi_key> <asciicircum> <O> : "\324" Ocircumflex +<Multi_key> <O> <greater> : "\324" Ocircumflex +<Multi_key> <greater> <O> : "\324" Ocircumflex +<Multi_key> <O> <asciitilde> : "\325" Otilde +<Multi_key> <asciitilde> <O> : "\325" Otilde +<Multi_key> <O> <plus> : "\325" Ohorn +<Multi_key> <O> <period> : "\326" Obelowdot +<Multi_key> <O> <question> : "\326" Ohook +<Multi_key> <o> <grave> : "\362" ograve +<Multi_key> <grave> <o> : "\362" ograve +<Multi_key> <o> <acute> : "\363" oacute +<Multi_key> <acute> <o> : "\363" oacute +<Multi_key> <o> <apostrophe> : "\363" oacute +<Multi_key> <apostrophe> <o> : "\363" oacute +<Multi_key> <o> <asciicircum> : "\364" ocircumflex +<Multi_key> <asciicircum> <o> : "\364" ocircumflex +<Multi_key> <o> <greater> : "\364" ocircumflex +<Multi_key> <greater> <o> : "\364" ocircumflex +<Multi_key> <o> <asciitilde> : "\365" otilde +<Multi_key> <asciitilde> <o> : "\365" otilde +<Multi_key> <o> <plus> : "\366" ohorn +<Multi_key> <o> <period> : "\366" obelowdot +<Multi_key> <o> <question> : "\366" ohook +<Multi_key> <U> <grave> : "\331" Ugrave +<Multi_key> <grave> <U> : "\331" Ugrave +<Multi_key> <U> <acute> : "\332" Uacute +<Multi_key> <acute> <U> : "\332" Uacute +<Multi_key> <U> <apostrophe> : "\332" Uacute +<Multi_key> <apostrophe> <U> : "\332" Uacute +<Multi_key> <U> <plus> : "\333" Uhorn +<Multi_key> <U> <period> : "\333" Ubelowdot +<Multi_key> <U> <question> : "\334" Uhook +<Multi_key> <u> <grave> : "\371" ugrave +<Multi_key> <grave> <u> : "\371" ugrave +<Multi_key> <u> <acute> : "\372" uacute +<Multi_key> <acute> <u> : "\372" uacute +<Multi_key> <u> <apostrophe> : "\372" uacute +<Multi_key> <apostrophe> <u> : "\372" uacute +<Multi_key> <u> <plus> : "\373" uhorn +<Multi_key> <u> <period> : "\373" ubelowdot +<Multi_key> <u> <question> : "\374" uhook +<Multi_key> <Y> <acute> : "\335" Yacute +<Multi_key> <acute> <Y> : "\335" Yacute +<Multi_key> <Y> <apostrophe> : "\335" Yacute +<Multi_key> <apostrophe> <Y> : "\335" Yacute +<Multi_key> <Y> <grave> : "\375" Ygrave +<Multi_key> <grave> <Y> : "\375" Ygrave +<Multi_key> <Y> <asciitilde> : "\375" Ytilde +<Multi_key> <asciitilde> <Y> : "\375" Ytilde +<Multi_key> <Y> <period> : "\375" Ybelowdot +<Multi_key> <Y> <question> : "\375" Yhook +<Multi_key> <y> <acute> : "\375" yacute +<Multi_key> <acute> <y> : "\375" yacute +<Multi_key> <y> <apostrophe> : "\375" yacute +<Multi_key> <apostrophe> <y> : "\375" yacute +<Multi_key> <y> <grave> : "\375" ygrave +<Multi_key> <grave> <y> : "\375" ygrave +<Multi_key> <Y> <asciitilde> : "\375" ytilde +<Multi_key> <asciitilde> <y> : "\375" ytilde +<Multi_key> <y> <period> : "\375" ybelowdot +<Multi_key> <y> <question> : "\375" yhook +# +# multiple diacritics +# + +# +# +# dead key accent keysyms +# Special Character +<dead_circumflex> <slash> : "|" bar +<dead_grave> <space> : "`" grave +<dead_acute> <space> : "'" apostrophe +<dead_diaeresis> <space> : "\250" diaeresis +<dead_circumflex> <space> : "^" asciicircum +<dead_tilde> <space> : "~" asciitilde +<dead_grave> <space> : "`" grave +<dead_acute> <space> : "'" apostrophe +<dead_doubleacute> <space> : "\"" quotedbl +<dead_abovering> <space> : "\260" degree +<dead_abovering> <dead_abovering> : "\260" degree +<dead_circumflex> <0> : "\260" degree +<dead_circumflex> <1> : "\271" onesuperior +<dead_circumflex> <2> : "\262" twosuperior +<dead_circumflex> <3> : "\263" threesuperior +<dead_circumflex> <period> : "\267" periodcentered +<dead_circumflex> <exclam> : "\246" brokenbar +<dead_cedilla> <minus> : "\254" notsign +<dead_circumflex> <minus> : "\257" macron +<dead_circumflex> <underscore> : "\257" macron +<dead_acute> <apostrophe> : "\264" acute +<dead_cedilla> <comma> : "\270" cedilla +<dead_diaeresis> <quotedbl> : "\250" diaeresis +# Accented Alphabet +<dead_abovering> <A> : "\305" Aring +<dead_grave> <A> : "\300" Agrave +<dead_acute> <A> : "\301" Aacute +<dead_circumflex> <A> : "\302" Acircumflex +<dead_tilde> <A> : "\303" Atilde +<dead_diaeresis> <A> : "\304" Adiaeresis +<dead_abovering> <a> : "\345" aring +<dead_grave> <a> : "\340" agrave +<dead_acute> <a> : "\341" aacute +<dead_circumflex> <a> : "\342" acircumflex +<dead_tilde> <a> : "\343" atilde +<dead_diaeresis> <a> : "\344" adiaeresis +<dead_cedilla> <C> : "\307" Ccedilla +<dead_cedilla> <c> : "\347" ccedilla +<dead_grave> <E> : "\310" Egrave +<dead_acute> <E> : "\311" Eacute +<dead_circumflex> <E> : "\312" Ecircumflex +<dead_diaeresis> <E> : "\313" Ediaeresis +<dead_grave> <e> : "\350" egrave +<dead_acute> <e> : "\351" eacute +<dead_circumflex> <e> : "\352" ecircumflex +<dead_diaeresis> <e> : "\353" ediaeresis +<dead_grave> <I> : "\314" Igrave +<dead_acute> <I> : "\315" Iacute +<dead_circumflex> <I> : "\316" Icircumflex +<dead_diaeresis> <I> : "\317" Idiaeresis +<dead_grave> <i> : "\354" igrave +<dead_acute> <i> : "\355" iacute +<dead_circumflex> <i> : "\356" icircumflex +<dead_diaeresis> <i> : "\357" idiaeresis +<dead_tilde> <N> : "\321" Ntilde +<dead_tilde> <n> : "\361" ntilde +<dead_grave> <O> : "\322" Ograve +<dead_acute> <O> : "\323" Oacute +<dead_circumflex> <O> : "\324" Ocircumflex +<dead_tilde> <O> : "\325" Otilde +<dead_diaeresis> <O> : "\326" Odiaeresis +<dead_grave> <o> : "\362" ograve +<dead_acute> <o> : "\363" oacute +<dead_circumflex> <o> : "\364" ocircumflex +<dead_tilde> <o> : "\365" otilde +<dead_diaeresis> <o> : "\366" odiaeresis +<dead_grave> <U> : "\331" Ugrave +<dead_acute> <U> : "\332" Uacute +<dead_circumflex> <U> : "\333" Ucircumflex +<dead_doubleacute> <U> : "\334" Udiaeresis +<dead_diaeresis> <U> : "\334" Udiaeresis +<dead_grave> <u> : "\371" ugrave +<dead_acute> <u> : "\372" uacute +<dead_circumflex> <u> : "\373" ucircumflex +<dead_doubleacute> <u> : "\374" udiaeresis +<dead_diaeresis> <u> : "\374" udiaeresis +<dead_acute> <Y> : "\335" Yacute +<dead_acute> <y> : "\375" yacute +<dead_diaeresis> <y> : "\377" ydiaeresis + +# These are for us_intl, that does not has diaeresis, etc +<dead_acute> <dead_acute> : "'" apostrophe +<dead_grave> <dead_grave> : "`" grave +<dead_diaeresis> <space> : "\"" quotedbl +<dead_diaeresis> <dead_diaeresis> : "\"" quotedbl +<dead_tilde> <dead_tilde> : "~" asciitilde +<dead_circumflex> <dead_circumflex> : "^" asciicircum + +# dead_letters +# +# dead_a, dead_A, dead_d, dead_D, dead_e, dead_E, dead_i, dead_I, +# dead_o, dead_O, dead_u, dead_U, dead_y, dead_Y +# + +<dead_a> <f> : "\317" agrave +<dead_A> <f> : "\237" Agrave +<dead_A> <F> : "\237" Agrave +<dead_a> <s> : "\375" aacute +<dead_A> <s> : "\335" Aacute +<dead_A> <S> : "\335" Aacute +<dead_a> <a> : "\334" acircumflex +<dead_A> <a> : "\036" Acircumflex +<dead_A> <A> : "\036" Acircumflex +<dead_a> <x> : "\333" atilde +<dead_A> <x> : "\031" Atilde +<dead_A> <X> : "\031" Atilde +<dead_a> <w> : "\333" abreve +<dead_A> <w> : "\031" Abreve +<dead_A> <W> : "\031" Abreve +<dead_a> <j> : "\333" abelowdot +<dead_A> <j> : "\031" Abelowdot +<dead_A> <J> : "\031" Abelowdot +<dead_a> <r> : "\333" ahook +<dead_A> <r> : "\031" Ahook +<dead_A> <R> : "\031" Ahook +<dead_a> <a> <s> : "\334" acircumflexacute +<dead_A> <a> <s> : "\036" Acircumflexacute +<dead_A> <A> <S> : "\036" Acircumflexacute +<dead_a> <a> <f> : "\334" acircumflexgrave +<dead_A> <a> <f> : "\036" Acircumflexgrave +<dead_A> <A> <F> : "\036" Acircumflexgrave +<dead_a> <a> <r> : "\334" acircumflexhook +<dead_A> <a> <r> : "\036" Acircumflexhook +<dead_A> <A> <R> : "\036" Acircumflexhook +<dead_a> <a> <x> : "\334" acircumflextilde +<dead_A> <a> <x> : "\036" Acircumflextilde +<dead_A> <A> <X> : "\036" Acircumflextilde +<dead_a> <a> <j> : "\334" acircumflexdotbelow +<dead_A> <a> <j> : "\036" Acircumflexdotbelow +<dead_A> <A> <J> : "\036" Acircumflexdotbelow +<dead_a> <w> <s> : "\334" abreveacute +<dead_A> <w> <s> : "\036" Abreveacute +<dead_A> <W> <S> : "\036" Abreveacute +<dead_a> <w> <f> : "\334" abrevegrave +<dead_A> <w> <f> : "\036" Abrevegrave +<dead_A> <W> <F> : "\036" Abrevegrave +<dead_a> <w> <r> : "\334" abrevehook +<dead_A> <w> <r> : "\036" Abrevehook +<dead_A> <W> <R> : "\036" Abrevehook +<dead_a> <w> <x> : "\334" abrevetilde +<dead_A> <w> <x> : "\036" Abrevetilde +<dead_A> <W> <X> : "\036" Abrevetilde +<dead_a> <w> <j> : "\334" abrevedotbelow +<dead_A> <w> <j> : "\036" Abrevedotbelow +<dead_A> <W> <J> : "\036" Abrevedotbelow +<dead_a> : "a" a +<dead_A> : "A" A +<dead_d> <dead_d> : "\360" dstroke +<dead_D> <dead_D> : "\320" Dstroke +<dead_d> : "d" d +<dead_D> : "D" D +<dead_e> <f> : "\317" egrave +<dead_E> <f> : "\237" Egrave +<dead_E> <F> : "\237" Egrave +<dead_e> <s> : "\375" eacute +<dead_E> <s> : "\335" Eacute +<dead_E> <S> : "\335" Eacute +<dead_e> <e> : "\334" ecircumflex +<dead_E> <e> : "\036" Ecircumflex +<dead_E> <E> : "\036" Ecircumflex +<dead_e> <x> : "\333" etilde +<dead_E> <x> : "\031" Etilde +<dead_E> <X> : "\031" Etilde +<dead_e> <j> : "\333" ebelowdot +<dead_E> <j> : "\031" Ebelowdot +<dead_E> <J> : "\031" Ebelowdot +<dead_e> <r> : "\333" ehook +<dead_E> <r> : "\031" Ehook +<dead_E> <R> : "\031" Ehook +<dead_e> <e> <f> : "\317" ecircumflexgrave +<dead_E> <e> <f> : "\237" Ecircumflexgrave +<dead_E> <E> <F> : "\237" Ecircumflexgrave +<dead_e> <e> <s> : "\375" ecircumflexacute +<dead_E> <e> <s> : "\335" Ecircumflexacute +<dead_E> <E> <S> : "\335" Ecircumflexacute +<dead_e> <e> <x> : "\333" ecircumflextilde +<dead_E> <e> <x> : "\031" Ecircumflextilde +<dead_E> <E> <X> : "\031" Ecircumflextilde +<dead_e> <e> <j> : "\333" ecircumflexbelowdot +<dead_E> <e> <j> : "\031" Ecircumflexbelowdot +<dead_E> <E> <J> : "\031" Ecircumflexbelowdot +<dead_e> <e> <r> : "\333" ecircumflexhook +<dead_E> <e> <r> : "\031" Ecircumflexhook +<dead_E> <E> <R> : "\031" Ecircumflexhook +<dead_e> : "e" e +<dead_E> : "E" E +<dead_i> <f> : "\317" igrave +<dead_I> <f> : "\237" Igrave +<dead_I> <F> : "\237" Igrave +<dead_i> <s> : "\375" iacute +<dead_I> <s> : "\335" Iacute +<dead_I> <S> : "\335" Iacute +<dead_i> <x> : "\333" itilde +<dead_I> <x> : "\031" Itilde +<dead_I> <X> : "\031" Itilde +<dead_i> <j> : "\333" ibelowdot +<dead_I> <j> : "\031" Ibelowdot +<dead_I> <J> : "\031" Ibelowdot +<dead_i> <r> : "\333" ihook +<dead_I> <r> : "\031" Ihook +<dead_I> <R> : "\031" Ihook +<dead_i> : "i" i +<dead_I> : "I" I +<dead_o> <f> : "\317" ograve +<dead_O> <f> : "\237" Ograve +<dead_O> <F> : "\237" Ograve +<dead_o> <s> : "\375" oacute +<dead_O> <s> : "\335" Oacute +<dead_O> <S> : "\335" Oacute +<dead_o> <o> : "\334" ocircumflex +<dead_O> <o> : "\036" Ocircumflex +<dead_O> <O> : "\036" Ocircumflex +<dead_o> <x> : "\333" otilde +<dead_O> <x> : "\031" Otilde +<dead_O> <X> : "\031" Otilde +<dead_o> <w> : "\333" ohorn +<dead_O> <w> : "\031" Ohorn +<dead_O> <W> : "\031" Ohorn +<dead_o> <j> : "\333" obelowdot +<dead_O> <j> : "\031" Obelowdot +<dead_O> <J> : "\031" Obelowdot +<dead_o> <r> : "\333" ohook +<dead_O> <r> : "\031" Ohook +<dead_O> <R> : "\031" Ohook +<dead_o> <o> <s> : "\334" ocircumflexacute +<dead_O> <o> <s> : "\036" Ocircumflexacute +<dead_O> <O> <S> : "\036" Ocircumflexacute +<dead_o> <o> <f> : "\334" ocircumflexgrave +<dead_O> <o> <f> : "\036" Ocircumflexgrave +<dead_O> <O> <F> : "\036" Ocircumflexgrave +<dead_o> <o> <r> : "\334" ocircumflexhook +<dead_O> <o> <r> : "\036" Ocircumflexhook +<dead_O> <O> <R> : "\036" Ocircumflexhook +<dead_o> <o> <x> : "\334" ocircumflextilde +<dead_O> <o> <x> : "\036" Ocircumflextilde +<dead_O> <O> <X> : "\036" Ocircumflextilde +<dead_o> <o> <j> : "\334" ocircumflexdotbelow +<dead_O> <o> <j> : "\036" Ocircumflexdotbelow +<dead_O> <O> <J> : "\036" Ocircumflexdotbelow +<dead_o> <w> <s> : "\334" ohornacute +<dead_O> <w> <s> : "\036" Ohornacute +<dead_O> <W> <S> : "\036" Ohornacute +<dead_o> <w> <f> : "\334" ohorngrave +<dead_O> <w> <f> : "\036" Ohorngrave +<dead_O> <W> <F> : "\036" Ohorngrave +<dead_o> <w> <r> : "\334" ohornhook +<dead_O> <w> <r> : "\036" Ohornhook +<dead_O> <W> <R> : "\036" Ohornhook +<dead_o> <w> <x> : "\334" ohorntilde +<dead_O> <w> <x> : "\036" Ohorntilde +<dead_O> <W> <X> : "\036" Ohorntilde +<dead_o> <w> <j> : "\334" ohorndotbelow +<dead_O> <w> <j> : "\036" Ohorndotbelow +<dead_O> <W> <J> : "\036" Ohorndotbelow +<dead_o> : "o" o +<dead_O> : "O" O +<dead_u> <f> : "\317" ugrave +<dead_U> <f> : "\237" Ugrave +<dead_U> <F> : "\237" Ugrave +<dead_u> <s> : "\375" uacute +<dead_U> <s> : "\335" Uacute +<dead_U> <S> : "\335" Uacute +<dead_u> <x> : "\333" utilde +<dead_U> <x> : "\031" Utilde +<dead_U> <X> : "\031" Utilde +<dead_u> <w> : "\333" uhorn +<dead_U> <w> : "\031" Uhorn +<dead_U> <W> : "\031" Uhorn +<dead_u> <j> : "\333" ubelowdot +<dead_U> <j> : "\031" Ubelowdot +<dead_U> <J> : "\031" Ubelowdot +<dead_u> <r> : "\333" uhook +<dead_U> <r> : "\031" Uhook +<dead_U> <R> : "\031" Uhook +<dead_u> <w> <s> : "\334" uhornacute +<dead_U> <w> <s> : "\036" Uhornacute +<dead_U> <W> <S> : "\036" Uhornacute +<dead_u> <w> <f> : "\334" uhorngrave +<dead_U> <w> <f> : "\036" Uhorngrave +<dead_U> <W> <F> : "\036" Uhorngrave +<dead_u> <w> <r> : "\334" uhornhook +<dead_U> <w> <r> : "\036" Uhornhook +<dead_U> <W> <R> : "\036" Uhornhook +<dead_u> <w> <x> : "\334" uhorntilde +<dead_U> <w> <x> : "\036" Uhorntilde +<dead_U> <W> <X> : "\036" Uhorntilde +<dead_u> <w> <j> : "\334" uhorndotbelow +<dead_U> <w> <j> : "\036" Uhorndotbelow +<dead_U> <W> <J> : "\036" Uhorndotbelow +<dead_u> : "u" u +<dead_U> : "U" U + +<dead_y> <f> : "\317" ygrave +<dead_Y> <f> : "\237" Ygrave +<dead_Y> <F> : "\237" Ygrave +<dead_y> <s> : "\375" yacute +<dead_Y> <s> : "\335" Yacute +<dead_Y> <S> : "\335" Yacute +<dead_y> <x> : "\333" ytilde +<dead_Y> <x> : "\031" Ytilde +<dead_Y> <X> : "\031" Ytilde +<dead_y> <j> : "\334" ybelowdot +<dead_Y> <j> : "\036" Ybelowdot +<dead_Y> <J> : "\036" Ybelowdot +<dead_y> <r> : "\326" yhook +<dead_Y> <r> : "\024" Yhook +<dead_Y> <R> : "\024" Yhook +<dead_y> : "y" y +<dead_Y> : "Y" Y + +# End of Sequence Definition --- xc/nls/Compose/Imakefile.aclark Wed Oct 21 01:40:41 1998 +++ xc/nls/Compose/Imakefile Thu Dec 23 20:55:45 1999 @@ -34,3 +34,5 @@ ComposeTarget(iso8859-2) ComposeTarget(iso8859-4) ComposeTarget(iso8859-15) +ComposeTarget(vi_VN.tcvn) +ComposeTarget(vi_VN.viscii) --- xc/nls/Compose/vi_VN.tcvn.aclark Thu Dec 23 21:11:07 1999 +++ xc/nls/Compose/vi_VN.tcvn Thu Dec 23 21:13:34 1999 @@ -0,0 +1,508 @@ +# $TOG: vi_VN.viscii /main/7 1998/05/20 15:33:23 kaleb $ +# +# VISCII 1.1 Compose Sequence +# +# Sequence Definition +# +# <Multi_key> Means <Compose> +# Special Character +<Multi_key> <plus> <plus> : "#" numbersign +<Multi_key> <apostrophe> <space> : "'" apostrophe +<Multi_key> <space> <apostrophe> : "'" apostrophe +<Multi_key> <A> <T> : "@" at +<Multi_key> <parenleft> <parenleft> : "[" bracketleft +<Multi_key> <slash> <slash> : "\\" backslash +<Multi_key> <slash> <less> : "\\" backslash +<Multi_key> <less> <slash> : "\\" backslash +<Multi_key> <parenright> <parenright> : "]" bracketright +<Multi_key> <asciicircum> <space> : "^" asciicircum +<Multi_key> <space> <asciicircum> : "^" asciicircum +<Multi_key> <greater> <space> : "^" asciicircum +<Multi_key> <space> <greater> : "^" asciicircum +<Multi_key> <grave> <space> : "`" grave +<Multi_key> <space> <grave> : "`" grave +<Multi_key> <parenleft> <minus> : "{" braceleft +<Multi_key> <minus> <parenleft> : "{" braceleft +<Multi_key> <slash> <asciicircum> : "|" bar +<Multi_key> <asciicircum> <slash> : "|" bar +<Multi_key> <V> <L> : "|" bar +<Multi_key> <L> <V> : "|" bar +<Multi_key> <v> <l> : "|" bar +<Multi_key> <l> <v> : "|" bar +<Multi_key> <parenright> <minus> : "}" braceright +<Multi_key> <minus> <parenright> : "}" braceright +<Multi_key> <asciitilde> <space> : "~" asciitilde +<Multi_key> <space> <asciitilde> : "~" asciitilde +<Multi_key> <minus> <space> : "~" asciitilde +<Multi_key> <space> <minus> : "~" asciitilde +# Accented Alphabet +<Multi_key> <A> <grave> : "\300" Agrave +<Multi_key> <grave> <A> : "\300" Agrave +<Multi_key> <A> <acute> : "\301" Aacute +<Multi_key> <acute> <A> : "\301" Aacute +<Multi_key> <A> <apostrophe> : "\301" Aacute +<Multi_key> <apostrophe> <A> : "\301" Aacute +<Multi_key> <A> <asciicircum> : "\302" Acircumflex +<Multi_key> <asciicircum> <A> : "\302" Acircumflex +<Multi_key> <A> <greater> : "\302" Acircumflex +<Multi_key> <greater> <A> : "\302" Acircumflex +<Multi_key> <A> <asciitilde> : "\303" Atilde +<Multi_key> <asciitilde> <A> : "\303" Atilde +<Multi_key> <A> <parenleft> : "\304" Abreve +<Multi_key> <A> <period> : "\304" Abelowdot +<Multi_key> <A> <question> : "\305" Ahook + +<Multi_key> <a> <grave> : "\340" agrave +<Multi_key> <grave> <a> : "\340" agrave +<Multi_key> <a> <acute> : "\341" aacute +<Multi_key> <acute> <a> : "\341" aacute +<Multi_key> <a> <apostrophe> : "\341" aacute +<Multi_key> <apostrophe> <a> : "\341" aacute +<Multi_key> <a> <asciicircum> : "\342" acircumflex +<Multi_key> <asciicircum> <a> : "\342" acircumflex +<Multi_key> <a> <greater> : "\342" acircumflex +<Multi_key> <greater> <a> : "\342" acircumflex +<Multi_key> <a> <asciitilde> : "\343" atilde +<Multi_key> <asciitilde> <a> : "\343" atilde +<Multi_key> <a> <pareleft> : "\343" abreve +<Multi_key> <a> <period> : "\343" abelowdot +<Multi_key> <a> <question> : "\344" ahook +<Multi_key> <minus> <D> : "\320" Dstroke +<Multi_key> <D> <minus> : "\320" Dstroke +<Multi_key> <D> <D> : "\320" Dstroke +<Multi_key> <minus> <d> : "\360" dstroke +<Multi_key> <d> <minus> : "\360" dstroke +<Multi_key> <d> <d> : "\360" dstroke +<Multi_key> <E> <grave> : "\310" Egrave +<Multi_key> <grave> <E> : "\310" Egrave +<Multi_key> <E> <acute> : "\311" Eacute +<Multi_key> <acute> <E> : "\311" Eacute +<Multi_key> <E> <apostrophe> : "\311" Eacute +<Multi_key> <apostrophe> <E> : "\311" Eacute +<Multi_key> <E> <asciicircum> : "\312" Ecircumflex +<Multi_key> <asciicircum> <E> : "\312" Ecircumflex +<Multi_key> <E> <greater> : "\312" Ecircumflex +<Multi_key> <greater> <E> : "\312" Ecircumflex +<Multi_key> <E> <asciitilde> : "\313" Etilde +<Multi_key> <asciitilde> <E> : "\313" Etilde +<Multi_key> <E> <period> : "\313" Ebelowdot +<Multi_key> <E> <question> : "\313" Ehook +<Multi_key> <e> <grave> : "\350" egrave +<Multi_key> <grave> <e> : "\350" egrave +<Multi_key> <e> <acute> : "\351" eacute +<Multi_key> <acute> <e> : "\351" eacute +<Multi_key> <e> <apostrophe> : "\351" eacute +<Multi_key> <apostrophe> <e> : "\351" eacute +<Multi_key> <e> <asciicircum> : "\352" ecircumflex +<Multi_key> <asciicircum> <e> : "\352" ecircumflex +<Multi_key> <e> <greater> : "\352" ecircumflex +<Multi_key> <greater> <e> : "\352" ecircumflex +<Multi_key> <e> <asciitilde> : "\353" etilde +<Multi_key> <asciitilde> <e> : "\353" etilde +<Multi_key> <e> <period> : "\353" ebelowdot +<Multi_key> <e> <question> : "\353" ehook +<Multi_key> <I> <grave> : "\314" Igrave +<Multi_key> <grave> <I> : "\314" Igrave +<Multi_key> <I> <acute> : "\315" Iacute +<Multi_key> <acute> <I> : "\315" Iacute +<Multi_key> <I> <apostrophe> : "\315" Iacute +<Multi_key> <apostrophe> <I> : "\315" Iacute +<Multi_key> <I> <asciitilde> : "\316" Itilde +<Multi_key> <asciitilde> <I> : "\316" Itilde +<Multi_key> <I> <period> : "\316" Ibelowdot +<Multi_key> <I> <question> : "\317" Ihook +<Multi_key> <i> <grave> : "\354" igrave +<Multi_key> <grave> <i> : "\354" igrave +<Multi_key> <i> <acute> : "\355" iacute +<Multi_key> <acute> <i> : "\355" iacute +<Multi_key> <i> <apostrophe> : "\355" iacute +<Multi_key> <apostrophe> <i> : "\355" iacute +<Multi_key> <i> <asciitilde> : "\356" itilde +<Multi_key> <asciitilde> <i> : "\356" itilde +<Multi_key> <i> <period> : "\356" ibelowdot +<Multi_key> <i> <question> : "\357" ihook +<Multi_key> <O> <grave> : "\322" Ograve +<Multi_key> <grave> <O> : "\322" Ograve +<Multi_key> <O> <acute> : "\323" Oacute +<Multi_key> <acute> <O> : "\323" Oacute +<Multi_key> <O> <apostrophe> : "\323" Oacute +<Multi_key> <apostrophe> <O> : "\323" Oacute +<Multi_key> <O> <asciicircum> : "\324" Ocircumflex +<Multi_key> <asciicircum> <O> : "\324" Ocircumflex +<Multi_key> <O> <greater> : "\324" Ocircumflex +<Multi_key> <greater> <O> : "\324" Ocircumflex +<Multi_key> <O> <asciitilde> : "\325" Otilde +<Multi_key> <asciitilde> <O> : "\325" Otilde +<Multi_key> <O> <plus> : "\325" Ohorn +<Multi_key> <O> <period> : "\326" Obelowdot +<Multi_key> <O> <question> : "\326" Ohook +<Multi_key> <o> <grave> : "\362" ograve +<Multi_key> <grave> <o> : "\362" ograve +<Multi_key> <o> <acute> : "\363" oacute +<Multi_key> <acute> <o> : "\363" oacute +<Multi_key> <o> <apostrophe> : "\363" oacute +<Multi_key> <apostrophe> <o> : "\363" oacute +<Multi_key> <o> <asciicircum> : "\364" ocircumflex +<Multi_key> <asciicircum> <o> : "\364" ocircumflex +<Multi_key> <o> <greater> : "\364" ocircumflex +<Multi_key> <greater> <o> : "\364" ocircumflex +<Multi_key> <o> <asciitilde> : "\365" otilde +<Multi_key> <asciitilde> <o> : "\365" otilde +<Multi_key> <o> <plus> : "\366" ohorn +<Multi_key> <o> <period> : "\366" obelowdot +<Multi_key> <o> <question> : "\366" ohook +<Multi_key> <U> <grave> : "\331" Ugrave +<Multi_key> <grave> <U> : "\331" Ugrave +<Multi_key> <U> <acute> : "\332" Uacute +<Multi_key> <acute> <U> : "\332" Uacute +<Multi_key> <U> <apostrophe> : "\332" Uacute +<Multi_key> <apostrophe> <U> : "\332" Uacute +<Multi_key> <U> <plus> : "\333" Uhorn +<Multi_key> <U> <period> : "\333" Ubelowdot +<Multi_key> <U> <question> : "\334" Uhook +<Multi_key> <u> <grave> : "\371" ugrave +<Multi_key> <grave> <u> : "\371" ugrave +<Multi_key> <u> <acute> : "\372" uacute +<Multi_key> <acute> <u> : "\372" uacute +<Multi_key> <u> <apostrophe> : "\372" uacute +<Multi_key> <apostrophe> <u> : "\372" uacute +<Multi_key> <u> <plus> : "\373" uhorn +<Multi_key> <u> <period> : "\373" ubelowdot +<Multi_key> <u> <question> : "\374" uhook +<Multi_key> <Y> <acute> : "\335" Yacute +<Multi_key> <acute> <Y> : "\335" Yacute +<Multi_key> <Y> <apostrophe> : "\335" Yacute +<Multi_key> <apostrophe> <Y> : "\335" Yacute +<Multi_key> <Y> <grave> : "\375" Ygrave +<Multi_key> <grave> <Y> : "\375" Ygrave +<Multi_key> <Y> <asciitilde> : "\375" Ytilde +<Multi_key> <asciitilde> <Y> : "\375" Ytilde +<Multi_key> <Y> <period> : "\375" Ybelowdot +<Multi_key> <Y> <question> : "\375" Yhook +<Multi_key> <y> <acute> : "\375" yacute +<Multi_key> <acute> <y> : "\375" yacute +<Multi_key> <y> <apostrophe> : "\375" yacute +<Multi_key> <apostrophe> <y> : "\375" yacute +<Multi_key> <y> <grave> : "\375" ygrave +<Multi_key> <grave> <y> : "\375" ygrave +<Multi_key> <Y> <asciitilde> : "\375" ytilde +<Multi_key> <asciitilde> <y> : "\375" ytilde +<Multi_key> <y> <period> : "\375" ybelowdot +<Multi_key> <y> <question> : "\375" yhook +# +# multiple diacritics +# + +# +# +# dead key accent keysyms +# Special Character +<dead_circumflex> <slash> : "|" bar +<dead_grave> <space> : "`" grave +<dead_acute> <space> : "'" apostrophe +<dead_diaeresis> <space> : "\250" diaeresis +<dead_circumflex> <space> : "^" asciicircum +<dead_tilde> <space> : "~" asciitilde +<dead_grave> <space> : "`" grave +<dead_acute> <space> : "'" apostrophe +<dead_doubleacute> <space> : "\"" quotedbl +<dead_abovering> <space> : "\260" degree +<dead_abovering> <dead_abovering> : "\260" degree +<dead_circumflex> <0> : "\260" degree +<dead_circumflex> <1> : "\271" onesuperior +<dead_circumflex> <2> : "\262" twosuperior +<dead_circumflex> <3> : "\263" threesuperior +<dead_circumflex> <period> : "\267" periodcentered +<dead_circumflex> <exclam> : "\246" brokenbar +<dead_cedilla> <minus> : "\254" notsign +<dead_circumflex> <minus> : "\257" macron +<dead_circumflex> <underscore> : "\257" macron +<dead_acute> <apostrophe> : "\264" acute +<dead_cedilla> <comma> : "\270" cedilla +<dead_diaeresis> <quotedbl> : "\250" diaeresis +# Accented Alphabet +<dead_abovering> <A> : "\305" Aring +<dead_grave> <A> : "\300" Agrave +<dead_acute> <A> : "\301" Aacute +<dead_circumflex> <A> : "\302" Acircumflex +<dead_tilde> <A> : "\303" Atilde +<dead_diaeresis> <A> : "\304" Adiaeresis +<dead_abovering> <a> : "\345" aring +<dead_grave> <a> : "\340" agrave +<dead_acute> <a> : "\341" aacute +<dead_circumflex> <a> : "\342" acircumflex +<dead_tilde> <a> : "\343" atilde +<dead_diaeresis> <a> : "\344" adiaeresis +<dead_cedilla> <C> : "\307" Ccedilla +<dead_cedilla> <c> : "\347" ccedilla +<dead_grave> <E> : "\310" Egrave +<dead_acute> <E> : "\311" Eacute +<dead_circumflex> <E> : "\312" Ecircumflex +<dead_diaeresis> <E> : "\313" Ediaeresis +<dead_grave> <e> : "\350" egrave +<dead_acute> <e> : "\351" eacute +<dead_circumflex> <e> : "\352" ecircumflex +<dead_diaeresis> <e> : "\353" ediaeresis +<dead_grave> <I> : "\314" Igrave +<dead_acute> <I> : "\315" Iacute +<dead_circumflex> <I> : "\316" Icircumflex +<dead_diaeresis> <I> : "\317" Idiaeresis +<dead_grave> <i> : "\354" igrave +<dead_acute> <i> : "\355" iacute +<dead_circumflex> <i> : "\356" icircumflex +<dead_diaeresis> <i> : "\357" idiaeresis +<dead_tilde> <N> : "\321" Ntilde +<dead_tilde> <n> : "\361" ntilde +<dead_grave> <O> : "\322" Ograve +<dead_acute> <O> : "\323" Oacute +<dead_circumflex> <O> : "\324" Ocircumflex +<dead_tilde> <O> : "\325" Otilde +<dead_diaeresis> <O> : "\326" Odiaeresis +<dead_grave> <o> : "\362" ograve +<dead_acute> <o> : "\363" oacute +<dead_circumflex> <o> : "\364" ocircumflex +<dead_tilde> <o> : "\365" otilde +<dead_diaeresis> <o> : "\366" odiaeresis +<dead_grave> <U> : "\331" Ugrave +<dead_acute> <U> : "\332" Uacute +<dead_circumflex> <U> : "\333" Ucircumflex +<dead_doubleacute> <U> : "\334" Udiaeresis +<dead_diaeresis> <U> : "\334" Udiaeresis +<dead_grave> <u> : "\371" ugrave +<dead_acute> <u> : "\372" uacute +<dead_circumflex> <u> : "\373" ucircumflex +<dead_doubleacute> <u> : "\374" udiaeresis +<dead_diaeresis> <u> : "\374" udiaeresis +<dead_acute> <Y> : "\335" Yacute +<dead_acute> <y> : "\375" yacute +<dead_diaeresis> <y> : "\377" ydiaeresis + +# These are for us_intl, that does not has diaeresis, etc +<dead_acute> <dead_acute> : "'" apostrophe +<dead_grave> <dead_grave> : "`" grave +<dead_diaeresis> <space> : "\"" quotedbl +<dead_diaeresis> <dead_diaeresis> : "\"" quotedbl +<dead_tilde> <dead_tilde> : "~" asciitilde +<dead_circumflex> <dead_circumflex> : "^" asciicircum + +# dead_letters +# +# dead_a, dead_A, dead_d, dead_D, dead_e, dead_E, dead_i, dead_I, +# dead_o, dead_O, dead_u, dead_U, dead_y, dead_Y +# + +<dead_a> <f> : "\317" agrave +<dead_A> <f> : "\237" Agrave +<dead_A> <F> : "\237" Agrave +<dead_a> <s> : "\375" aacute +<dead_A> <s> : "\335" Aacute +<dead_A> <S> : "\335" Aacute +<dead_a> <a> : "\334" acircumflex +<dead_A> <a> : "\036" Acircumflex +<dead_A> <A> : "\036" Acircumflex +<dead_a> <x> : "\333" atilde +<dead_A> <x> : "\031" Atilde +<dead_A> <X> : "\031" Atilde +<dead_a> <w> : "\333" abreve +<dead_A> <w> : "\031" Abreve +<dead_A> <W> : "\031" Abreve +<dead_a> <j> : "\333" abelowdot +<dead_A> <j> : "\031" Abelowdot +<dead_A> <J> : "\031" Abelowdot +<dead_a> <r> : "\333" ahook +<dead_A> <r> : "\031" Ahook +<dead_A> <R> : "\031" Ahook +<dead_a> <a> <s> : "\334" acircumflexacute +<dead_A> <a> <s> : "\036" Acircumflexacute +<dead_A> <A> <S> : "\036" Acircumflexacute +<dead_a> <a> <f> : "\334" acircumflexgrave +<dead_A> <a> <f> : "\036" Acircumflexgrave +<dead_A> <A> <F> : "\036" Acircumflexgrave +<dead_a> <a> <r> : "\334" acircumflexhook +<dead_A> <a> <r> : "\036" Acircumflexhook +<dead_A> <A> <R> : "\036" Acircumflexhook +<dead_a> <a> <x> : "\334" acircumflextilde +<dead_A> <a> <x> : "\036" Acircumflextilde +<dead_A> <A> <X> : "\036" Acircumflextilde +<dead_a> <a> <j> : "\334" acircumflexdotbelow +<dead_A> <a> <j> : "\036" Acircumflexdotbelow +<dead_A> <A> <J> : "\036" Acircumflexdotbelow +<dead_a> <w> <s> : "\334" abreveacute +<dead_A> <w> <s> : "\036" Abreveacute +<dead_A> <W> <S> : "\036" Abreveacute +<dead_a> <w> <f> : "\334" abrevegrave +<dead_A> <w> <f> : "\036" Abrevegrave +<dead_A> <W> <F> : "\036" Abrevegrave +<dead_a> <w> <r> : "\334" abrevehook +<dead_A> <w> <r> : "\036" Abrevehook +<dead_A> <W> <R> : "\036" Abrevehook +<dead_a> <w> <x> : "\334" abrevetilde +<dead_A> <w> <x> : "\036" Abrevetilde +<dead_A> <W> <X> : "\036" Abrevetilde +<dead_a> <w> <j> : "\334" abrevedotbelow +<dead_A> <w> <j> : "\036" Abrevedotbelow +<dead_A> <W> <J> : "\036" Abrevedotbelow +<dead_a> : "a" a +<dead_A> : "A" A +<dead_d> <dead_d> : "\360" dstroke +<dead_D> <dead_D> : "\320" Dstroke +<dead_d> : "d" d +<dead_D> : "D" D +<dead_e> <f> : "\317" egrave +<dead_E> <f> : "\237" Egrave +<dead_E> <F> : "\237" Egrave +<dead_e> <s> : "\375" eacute +<dead_E> <s> : "\335" Eacute +<dead_E> <S> : "\335" Eacute +<dead_e> <e> : "\334" ecircumflex +<dead_E> <e> : "\036" Ecircumflex +<dead_E> <E> : "\036" Ecircumflex +<dead_e> <x> : "\333" etilde +<dead_E> <x> : "\031" Etilde +<dead_E> <X> : "\031" Etilde +<dead_e> <j> : "\333" ebelowdot +<dead_E> <j> : "\031" Ebelowdot +<dead_E> <J> : "\031" Ebelowdot +<dead_e> <r> : "\333" ehook +<dead_E> <r> : "\031" Ehook +<dead_E> <R> : "\031" Ehook +<dead_e> <e> <f> : "\317" ecircumflexgrave +<dead_E> <e> <f> : "\237" Ecircumflexgrave +<dead_E> <E> <F> : "\237" Ecircumflexgrave +<dead_e> <e> <s> : "\375" ecircumflexacute +<dead_E> <e> <s> : "\335" Ecircumflexacute +<dead_E> <E> <S> : "\335" Ecircumflexacute +<dead_e> <e> <x> : "\333" ecircumflextilde +<dead_E> <e> <x> : "\031" Ecircumflextilde +<dead_E> <E> <X> : "\031" Ecircumflextilde +<dead_e> <e> <j> : "\333" ecircumflexbelowdot +<dead_E> <e> <j> : "\031" Ecircumflexbelowdot +<dead_E> <E> <J> : "\031" Ecircumflexbelowdot +<dead_e> <e> <r> : "\333" ecircumflexhook +<dead_E> <e> <r> : "\031" Ecircumflexhook +<dead_E> <E> <R> : "\031" Ecircumflexhook +<dead_e> : "e" e +<dead_E> : "E" E +<dead_i> <f> : "\317" igrave +<dead_I> <f> : "\237" Igrave +<dead_I> <F> : "\237" Igrave +<dead_i> <s> : "\375" iacute +<dead_I> <s> : "\335" Iacute +<dead_I> <S> : "\335" Iacute +<dead_i> <x> : "\333" itilde +<dead_I> <x> : "\031" Itilde +<dead_I> <X> : "\031" Itilde +<dead_i> <j> : "\333" ibelowdot +<dead_I> <j> : "\031" Ibelowdot +<dead_I> <J> : "\031" Ibelowdot +<dead_i> <r> : "\333" ihook +<dead_I> <r> : "\031" Ihook +<dead_I> <R> : "\031" Ihook +<dead_i> : "i" i +<dead_I> : "I" I +<dead_o> <f> : "\317" ograve +<dead_O> <f> : "\237" Ograve +<dead_O> <F> : "\237" Ograve +<dead_o> <s> : "\375" oacute +<dead_O> <s> : "\335" Oacute +<dead_O> <S> : "\335" Oacute +<dead_o> <o> : "\334" ocircumflex +<dead_O> <o> : "\036" Ocircumflex +<dead_O> <O> : "\036" Ocircumflex +<dead_o> <x> : "\333" otilde +<dead_O> <x> : "\031" Otilde +<dead_O> <X> : "\031" Otilde +<dead_o> <w> : "\333" ohorn +<dead_O> <w> : "\031" Ohorn +<dead_O> <W> : "\031" Ohorn +<dead_o> <j> : "\333" obelowdot +<dead_O> <j> : "\031" Obelowdot +<dead_O> <J> : "\031" Obelowdot +<dead_o> <r> : "\333" ohook +<dead_O> <r> : "\031" Ohook +<dead_O> <R> : "\031" Ohook +<dead_o> <o> <s> : "\334" ocircumflexacute +<dead_O> <o> <s> : "\036" Ocircumflexacute +<dead_O> <O> <S> : "\036" Ocircumflexacute +<dead_o> <o> <f> : "\334" ocircumflexgrave +<dead_O> <o> <f> : "\036" Ocircumflexgrave +<dead_O> <O> <F> : "\036" Ocircumflexgrave +<dead_o> <o> <r> : "\334" ocircumflexhook +<dead_O> <o> <r> : "\036" Ocircumflexhook +<dead_O> <O> <R> : "\036" Ocircumflexhook +<dead_o> <o> <x> : "\334" ocircumflextilde +<dead_O> <o> <x> : "\036" Ocircumflextilde +<dead_O> <O> <X> : "\036" Ocircumflextilde +<dead_o> <o> <j> : "\334" ocircumflexdotbelow +<dead_O> <o> <j> : "\036" Ocircumflexdotbelow +<dead_O> <O> <J> : "\036" Ocircumflexdotbelow +<dead_o> <w> <s> : "\334" ohornacute +<dead_O> <w> <s> : "\036" Ohornacute +<dead_O> <W> <S> : "\036" Ohornacute +<dead_o> <w> <f> : "\334" ohorngrave +<dead_O> <w> <f> : "\036" Ohorngrave +<dead_O> <W> <F> : "\036" Ohorngrave +<dead_o> <w> <r> : "\334" ohornhook +<dead_O> <w> <r> : "\036" Ohornhook +<dead_O> <W> <R> : "\036" Ohornhook +<dead_o> <w> <x> : "\334" ohorntilde +<dead_O> <w> <x> : "\036" Ohorntilde +<dead_O> <W> <X> : "\036" Ohorntilde +<dead_o> <w> <j> : "\334" ohorndotbelow +<dead_O> <w> <j> : "\036" Ohorndotbelow +<dead_O> <W> <J> : "\036" Ohorndotbelow +<dead_o> : "o" o +<dead_O> : "O" O +<dead_u> <f> : "\317" ugrave +<dead_U> <f> : "\237" Ugrave +<dead_U> <F> : "\237" Ugrave +<dead_u> <s> : "\375" uacute +<dead_U> <s> : "\335" Uacute +<dead_U> <S> : "\335" Uacute +<dead_u> <x> : "\333" utilde +<dead_U> <x> : "\031" Utilde +<dead_U> <X> : "\031" Utilde +<dead_u> <w> : "\333" uhorn +<dead_U> <w> : "\031" Uhorn +<dead_U> <W> : "\031" Uhorn +<dead_u> <j> : "\333" ubelowdot +<dead_U> <j> : "\031" Ubelowdot +<dead_U> <J> : "\031" Ubelowdot +<dead_u> <r> : "\333" uhook +<dead_U> <r> : "\031" Uhook +<dead_U> <R> : "\031" Uhook +<dead_u> <w> <s> : "\334" uhornacute +<dead_U> <w> <s> : "\036" Uhornacute +<dead_U> <W> <S> : "\036" Uhornacute +<dead_u> <w> <f> : "\334" uhorngrave +<dead_U> <w> <f> : "\036" Uhorngrave +<dead_U> <W> <F> : "\036" Uhorngrave +<dead_u> <w> <r> : "\334" uhornhook +<dead_U> <w> <r> : "\036" Uhornhook +<dead_U> <W> <R> : "\036" Uhornhook +<dead_u> <w> <x> : "\334" uhorntilde +<dead_U> <w> <x> : "\036" Uhorntilde +<dead_U> <W> <X> : "\036" Uhorntilde +<dead_u> <w> <j> : "\334" uhorndotbelow +<dead_U> <w> <j> : "\036" Uhorndotbelow +<dead_U> <W> <J> : "\036" Uhorndotbelow +<dead_u> : "u" u +<dead_U> : "U" U + +<dead_y> <f> : "\317" ygrave +<dead_Y> <f> : "\237" Ygrave +<dead_Y> <F> : "\237" Ygrave +<dead_y> <s> : "\375" yacute +<dead_Y> <s> : "\335" Yacute +<dead_Y> <S> : "\335" Yacute +<dead_y> <x> : "\333" ytilde +<dead_Y> <x> : "\031" Ytilde +<dead_Y> <X> : "\031" Ytilde +<dead_y> <j> : "\334" ybelowdot +<dead_Y> <j> : "\036" Ybelowdot +<dead_Y> <J> : "\036" Ybelowdot +<dead_y> <r> : "\326" yhook +<dead_Y> <r> : "\024" Yhook +<dead_Y> <R> : "\024" Yhook +<dead_y> : "y" y +<dead_Y> : "Y" Y --- xc/nls/XLC_LOCALE/Imakefile.aclark Thu Dec 23 20:57:47 1999 +++ xc/nls/XLC_LOCALE/Imakefile Thu Dec 23 20:58:48 1999 @@ -65,6 +65,8 @@ LTarget(ja.SJIS) LTarget(ko) LTarget(koi8-r) +LTarget(vi_VN.tcvn) +LTarget(vi_VN.viscii) LTarget(zh) LTarget(zh_TW) LTarget(zh_TW.Big5) @@ -91,3 +93,5 @@ InstallNonExecFile(gb2312,$(TBLDIR)) InstallNonExecFile(jis0201,$(TBLDIR)) InstallNonExecFile(tabkoi8_r,$(TBLDIR)) +InstallNonExecFile(tabtcvn,$(TBLDIR)) +InstallNonExecFile(tabviscii,$(TBLDIR)) --- xc/nls/XLC_LOCALE/tabtcvn.aclark Thu Dec 23 20:59:17 1999 +++ xc/nls/XLC_LOCALE/tabtcvn Thu Dec 23 21:00:16 1999 @@ -0,0 +1,26 @@ + 00 00da 1eea 03 1eea 1eec 1eee 07 + 08 09 0a 0b 0c 0d 0e 0f + 10 1ee8 1ef0 1ef2 1ef6 1ef8 00dd 1ef4 + 18 19 1a 1b 1c 1d 1e 1f +20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f +30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f +40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f +50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f +60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f +70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f +00c0 1ea2 00c3 00c1 1ea0 1eb6 1eac 00c8 +1eba 1ebc 00c9 1eb8 1ec6 00cc 1ec8 0128 +00cd 1eca 00d2 1ece 00d5 00d3 1ecc 1ed8 +1edc 1ede 1ee0 1eda 1ee2 00d9 1ee6 0168 +00a0 0102 00c2 00ca 00d4 01a0 01af 0110 +0103 00e2 00ea 00f4 01a1 01b0 0111 1eb0 +0300 0309 0303 0301 0323 00e0 1ea3 00e3 +00e1 1ea1 1eb2 1eb1 1eb3 1eb5 1eaf 1eb4 +1eae 1ea6 1ea8 1eaa 1ea4 1ec0 1eb7 1ea7 +1ea9 1eab 1ea5 1ead 00e8 1ec2 1ebb 1ebd +00e9 1eb9 1ec1 1ec3 1ec5 1ebf 1ec7 00ec +1ec9 1ec4 1ebe 1ed2 0129 00ed 1ecb 00f2 +1ed4 1ecf 00f5 00f3 1ecd 1ed3 1ed5 1ed7 +1ed1 1ed9 1edd 1edf 1ee1 1edb 1ee3 00f9 +1ed6 1ee7 0169 00fa 1ee5 1eeb 1eed 1eef +1ee9 1ef1 1ef3 1ef7 1ef9 00fd 1ef5 1ed0 --- xc/nls/XLC_LOCALE/tabviscii.aclark Thu Dec 23 21:00:27 1999 +++ xc/nls/XLC_LOCALE/tabviscii Thu Dec 23 21:00:53 1999 @@ -0,0 +1,24 @@ +00 01 1eb2 03 04 1eb4 1eaa 07 08 09 0a 0b 0c 0d 0e 0f +10 11 12 13 1ef6 15 16 17 18 1ef8 1a 1b 1c 1d 1ef4 1f +20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f +30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f +40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f +50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f +60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f +70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f +1ea0 1aae 1eb0 1eb6 1ea4 1ea6 1ea8 1eac +1ebc 1eb8 1ebe 1ec0 1ec2 1ec4 1ec6 1ed0 +1ed2 1ed4 1ed6 1ed8 1ee2 1eda 1edc 1ede +1eca 1ece 1ecc 1ec8 1ee6 0168 1ee4 1ef2 +00d5 1eaf 1eb1 1eb7 1ea5 1ea7 1ea9 1ead +1ebd 1eb9 1ebf 1ec1 1ec3 1ec5 1ec7 1ed1 +1ed3 1ed5 1ed7 1ee0 01a0 1ed9 1edd 1edf +1ecb 1ef0 1ee8 1eea 1eec 01a1 1edb 01af +00c0 00c1 00c2 00c3 1ea2 0102 1eb3 1eb5 +00c8 00c9 00ca 1eba 00cc 00cd 0128 1ef3 +0110 1ee9 00d2 00d3 00d4 1ea1 1ef7 1eeb +1eed 00d9 00da 1ef9 1ef5 00dd 1ee1 01b0 +00e0 00e1 00e2 00e3 1ea3 0103 1eef 1eab +00e8 00e9 00ea 1ebb 00ec 00ed 0129 1ec9 +0111 1ef1 00f2 00f3 00f4 00f5 1ecf 1ecd +1ee5 00f9 00fa 0169 1ee7 00fd 1ee3 1eee --- xc/nls/XLC_LOCALE/vi_VN.tcvn.aclark Thu Dec 23 21:01:07 1999 +++ xc/nls/XLC_LOCALE/vi_VN.tcvn Thu Dec 23 21:02:00 1999 @@ -0,0 +1,57 @@ +XCOMM XLocale Database Sample for vi_VN.TCVN +XCOMM + +XCOMM +XCOMM XLC_FONTSET category +XCOMM +XLC_FONTSET +XCOMM fs0 class (7 bit ASCII) +fs0 { + charset ISO8859-1:GL + font TCVN-5712:GL; ISO8859-1:GL +} +XCOMM fs1 class +fs1 { + charset TCVN-5712:GR + font TCVN-5712:GR +} +END XLC_FONTSET + +XCOMM +XCOMM XLC_XLOCALE category +XCOMM +XLC_XLOCALE + +encoding_name TCVN-5712 +mb_cur_max 1 +state_depend_encoding False +#if WCHAR32 +wc_encoding_mask \x30000000 +wc_shift_bits 7 +#else +wc_encoding_mask \x00008080 +wc_shift_bits 8 +#endif + +XCOMM cs0 class +cs0 { + side GL:Default + length 1 + wc_encoding \x00000000 + ct_encoding TCVN-5712:GL; ISO8859-1:GL +} + + +XCOMM cs1 class +cs1 { + side GR:Default + length 1 +#if WCHAR32 + wc_encoding \x30000000 +#else + wc_encoding \x00008080 +#endif + ct_encoding TCVN-5712:GR; ISO8859-1:GR +} + +END XLC_XLOCALE --- xc/nls/XLC_LOCALE/vi_VN.viscii.aclark Thu Dec 23 21:02:16 1999 +++ xc/nls/XLC_LOCALE/vi_VN.viscii Thu Dec 23 21:02:56 1999 @@ -0,0 +1,57 @@ +XCOMM XLocale Database Sample for vi_VN.VISCII +XCOMM + +XCOMM +XCOMM XLC_FONTSET category +XCOMM +XLC_FONTSET +XCOMM fs0 class (7 bit ASCII) +fs0 { + charset ISO8859-1:GL + font VISCII1.1-1:GL; ISO8859-1:GL +} +XCOMM fs1 class +fs1 { + charset VISCII1.1-1:GR + font VISCII1.1-1:GR +} +END XLC_FONTSET + +XCOMM +XCOMM XLC_XLOCALE category +XCOMM +XLC_XLOCALE + +encoding_name VISCII1.1-1 +mb_cur_max 1 +state_depend_encoding False +#if WCHAR32 +wc_encoding_mask \x30000000 +wc_shift_bits 7 +#else +wc_encoding_mask \x00008080 +wc_shift_bits 8 +#endif + +XCOMM cs0 class +cs0 { + side GL:Default + length 1 + wc_encoding \x00000000 + ct_encoding VISCII1.1-1:GL; ISO8859-1:GL +} + + +XCOMM cs1 class +cs1 { + side GR:Default + length 1 +#if WCHAR32 + wc_encoding \x30000000 +#else + wc_encoding \x00008080 +#endif + ct_encoding VISCII1.1-1:GR; ISO8859-1:GR +} + +END XLC_XLOCALE --- xc/nls/compose.dir.aclark Thu Dec 23 21:03:24 1999 +++ xc/nls/compose.dir Thu Dec 23 21:04:51 1999 @@ -15,6 +15,8 @@ iso8859-1/Compose de_DE.ISO8859-1 iso8859-1/Compose de_LI.ISO8859-1 iso8859-1/Compose de_LU.ISO8859-1 +vi_VN.tcvn/Compose vi_VN.TCVN +vi_VN.viscii/Compose vi_VN.VISCII iso8859-1/Compose en_AU.ISO8859-1 iso8859-1/Compose en_BZ.ISO8859-1 iso8859-1/Compose en_CA.ISO8859-1 --- xc/nls/locale.alias.aclark Thu Dec 23 21:05:08 1999 +++ xc/nls/locale.alias Thu Dec 23 21:06:36 1999 @@ -315,6 +315,12 @@ tr tr_TR.ISO8859-9 tr_TR tr_TR.ISO8859-9 tr_TR.iso88599 tr_TR.ISO8859-9 +vi vi_VN.TCVN +vi_VN vi_VN.TCVN +vi_VN.tcvn vi_VN.TCVN +vi_VN.tcvn5712 vi_VN.TCVN +vi_VN.viscii vi_VN.VISCII +vi_VN.viscii111 vi_VN.VISCII zh zh_CN.eucCN zh_CN zh_CN.eucCN zh_CN.EUC zh_CN.eucCN --- xc/nls/locale.dir.aclark Thu Dec 23 21:06:52 1999 +++ xc/nls/locale.dir Thu Dec 23 21:07:24 1999 @@ -169,6 +169,8 @@ th_TH/XLC_LOCALE th_TH.TACTIS iso8859-9/XLC_LOCALE tr_TR.ISO8859-9 iso8859-5/XLC_LOCALE uk_UA.ISO8859-5 +vi_VN.tcvn/XLC_LOCALE vi_VN.TCVN +vi_VN.viscii/XLC_LOCALE vi_VN.VISCII zh/XLC_LOCALE zh_CN.eucCN zh_TW/XLC_LOCALE zh_TW.eucTW zh_TW.Big5/XLC_LOCALE zh_TW.Big5 --- xc/include/keysym.h.aclark Thu Dec 23 22:44:40 1999 +++ xc/include/keysym.h Thu Dec 23 22:44:46 1999 @@ -56,6 +56,7 @@ #define XK_LATIN3 #define XK_LATIN4 #define XK_GREEK +#define XK_VIETNAMESE #define XK_CURRENCY #include <X11/keysymdef.h> --------------------------------------- Received: (at 53752-done) by bugs.debian.org; 19 Sep 2004 06:59:25 +0000 >From [EMAIL PROTECTED] Sat Sep 18 23:59:25 2004 Return-path: <[EMAIL PROTECTED]> Received: from postfix4-2.free.fr [213.228.0.176] by spohr.debian.org with esmtp (Exim 3.35 1 (Debian)) id 1C8vfR-0007xX-00; Sat, 18 Sep 2004 23:59:25 -0700 Received: from localhost.localdomain (lns-vlq-27-82-254-99-56.adsl.proxad.net [82.254.99.56]) by postfix4-2.free.fr (Postfix) with ESMTP id 5D6BA1EB920 for <[EMAIL PROTECTED]>; Sun, 19 Sep 2004 08:59:23 +0200 (CEST) Received: by localhost.localdomain (Postfix, from userid 1000) id 2E47E241DB; Sun, 19 Sep 2004 09:02:53 +0200 (CEST) Date: Sun, 19 Sep 2004 09:02:52 +0200 To: [EMAIL PROTECTED] Subject: Re: Bug#53752: xlibs: Vietnamese (vi_VN) localization Message-ID: <[EMAIL PROTECTED]> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6+20040818i From: [EMAIL PROTECTED] (Denis Barbier) Delivered-To: [EMAIL PROTECTED] X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2004_03_25 (1.212-2003-09-23-exp) on spohr.debian.org X-Spam-Status: No, hits=-6.0 required=4.0 tests=BAYES_00,HAS_BUG_NUMBER autolearn=no version=2.60-bugs.debian.org_2004_03_25 X-Spam-Level: Hi, this bug was fixed in XFree86 4.0.2, so I am closing it. Thanks for your bugreport. Denis