Date: Mon, 24 Mar 1997 21:30:42 +0900 (KST) From: junker@jazz.snu.ac.kr To: FreeBSD-gnats-submit@freebsd.org Subject: misc/3079: locale update for ko_KR.EUC Message-ID: <199703241230.VAA29459@moderato.snu.ac.kr> Resent-Message-ID: <199703241240.EAA05971@freefall.freebsd.org>
index | next in thread | raw e-mail
>Number: 3079
>Category: misc
>Synopsis: ko_KR.EUC not work
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Mon Mar 24 04:40:01 PST 1997
>Last-Modified:
>Originator: Choi Jun Ho
>Organization:
NARAE, CS Dept, Seoul National Univ, Korea
>Release: FreeBSD 2.2-RELEASE i386
>Environment:
FreeBSD moderato.snu.ac.kr 2.2-RELEASE FreeBSD 2.2-RELEASE #0: Wed Mar 19 21:51:45 KST 1997 junker@moderato.snu.ac.kr:/usr/src/sys/compile/MODERATO i386
>Description:
There is a bug for LC_CTYPE definition of ko_KR.EUC. It reports NULL in
return from setlocale(). It lacks the definition of codeset 3 and 4.
In addition, to work the locale correctly, there need two things more:
LC_TIME and LC_COLLATE
It is some kind of same problem for ja_JP.EUC.
>How-To-Repeat:
Run this program:(like send-pr(2283))
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
main()
{
char *p;
p = setlocale(LC_ALL, "ko_KR.EUC");
if (p == NULL) {
printf("setlocale() returns NULL\n");
} else {
printf("setlocale() returns \"%s\"\n", p);
}
exit(0);
}
cc -o localetest locale.c -lxpg4
$ env LANG=ko_KR.EUC localetest
setlocale() returns NULL
>Fix:
1. Change /usr/src/usr.bin/mklocale/data/ko_KR.EUC.src to the following:
-----------------CUT HERE-----------------------------------
*** ../../ko_KR.EUC.src Mon Mar 24 21:20:28 1997
--- ko_KR.EUC.src Mon Mar 24 21:18:03 1997
***************
*** 1,9 ****
/*
! * Korean LOCALE_CTYPE definitions using EUC-KR character sets
*
* Choi Jun Ho, junker@jazz.snu.ac.kr
* NARAE, Seoul National Univ., CS Dept.
! * Mar 11 1997
*
* It is based on manpage mklocale(1), euc(4), ja_JP.EUC.src.
*
--- 1,10 ----
/*
! * Korean LC_CTYPE definitions using EUC-KR character sets
! * (ko_KR.EUC.src)
*
* Choi Jun Ho, junker@jazz.snu.ac.kr
* NARAE, Seoul National Univ., CS Dept.
! * Last Updated on Mar 24 1997
*
* It is based on manpage mklocale(1), euc(4), ja_JP.EUC.src.
*
***************
*** 11,24 ****
ENCODING "EUC"
! /* EUC-KR
* 0xa1a1-0xfefe
* byte 1: 0xa1-0xfe
* byte 2: 0xa1-0xfe
*/
! /* we have codeset 1 and 2 */
! VARIABLE 1 0x0000 2 0x8080 0x8080
/*
* Code Set 1, US-ASCII equivalent
--- 12,27 ----
ENCODING "EUC"
! /* EUC-KR(KS C 5601.1992)
* 0xa1a1-0xfefe
* byte 1: 0xa1-0xfe
* byte 2: 0xa1-0xfe
*/
! /* We have only codeset 1 and 2, so others are dummy.
! But it must be defined to work in 2.2 xpg4 locale routine...
! */
! VARIABLE 1 0x0000 2 0x8080 2 0x0080 3 0x8000 0x8080
/*
* Code Set 1, US-ASCII equivalent
***************
*** 70,82 ****
MAPLOWER < 0xaca1 - 0xacc1 : 0xacd1 > < 0xacd1 - 0xacf1 : 0xacd1 >
MAPUPPER < 0xaca1 - 0xacc1 : 0xaca1 > < 0xacd1 - 0xacf1 : 0xaca1 >
! DIGIT 0xa5a1 - 0xa5aa 0xa5b0 - 0xa5b9 /* greek digit */
! SPECIAL 0xa6a1 - 0xa6e4 0xa7a1 - 0xa7ef /* symbols */
! SPECIAL 0xa8a1 - 0xa8fe 0xa9a1 - 0xa9fe /* circle symbols */
!
! PHONOGRAM 0xa4a1 - 0xa4fe /* full-width hangul glyph */
! PHONOGRAM 0xaaa1 - 0xaaf3 /* full-width hirakana */
! PHONOGRAM 0xaba1 - 0xabf6 /* full-width katakana */
PHONOGRAM 0xb0a1 - 0xb0fe 0xb1a1 - 0xb1fe 0xb2a1 - 0xb2fe
PHONOGRAM 0xb3a1 - 0xb3fe 0xb4a1 - 0xb4fe 0xb5a1 - 0xb5fe
--- 73,85 ----
MAPLOWER < 0xaca1 - 0xacc1 : 0xacd1 > < 0xacd1 - 0xacf1 : 0xacd1 >
MAPUPPER < 0xaca1 - 0xacc1 : 0xaca1 > < 0xacd1 - 0xacf1 : 0xaca1 >
! DIGIT 0xa5a1 - 0xa5aa 0xa5b0 - 0xa5b9 /* Greek Digit */
! SPECIAL 0xa6a1 - 0xa6e4 0xa7a1 - 0xa7ef /* Symbols */
! SPECIAL 0xa8a1 - 0xa8fe 0xa9a1 - 0xa9fe /* Circle Symbols */
!
! PHONOGRAM 0xa4a1 - 0xa4fe /* Full-width Hangul glyph */
! PHONOGRAM 0xaaa1 - 0xaaf3 /* Full-width Hirakana */
! PHONOGRAM 0xaba1 - 0xabf6 /* Full-width Katakana */
PHONOGRAM 0xb0a1 - 0xb0fe 0xb1a1 - 0xb1fe 0xb2a1 - 0xb2fe
PHONOGRAM 0xb3a1 - 0xb3fe 0xb4a1 - 0xb4fe 0xb5a1 - 0xb5fe
***************
*** 86,92 ****
PHONOGRAM 0xbfa1 - 0xbffe 0xc0a1 - 0xc0fe 0xc1a1 - 0xc1fe
PHONOGRAM 0xc2a1 - 0xc2fe 0xc3a1 - 0xc3fe 0xc4a1 - 0xc4fe
PHONOGRAM 0xc5a1 - 0xc5fe 0xc6a1 - 0xc6fe 0xc7a1 - 0xc7fe
! PHONOGRAM 0xc8a1 - 0xc8fe /* hangul composed */
IDEOGRAM 0xcaa1 - 0xcafe 0xcba1 - 0xcbfe 0xcca1 - 0xccfe
IDEOGRAM 0xcda1 - 0xcdfe 0xcea1 - 0xcefe 0xcfa1 - 0xcffe
--- 89,95 ----
PHONOGRAM 0xbfa1 - 0xbffe 0xc0a1 - 0xc0fe 0xc1a1 - 0xc1fe
PHONOGRAM 0xc2a1 - 0xc2fe 0xc3a1 - 0xc3fe 0xc4a1 - 0xc4fe
PHONOGRAM 0xc5a1 - 0xc5fe 0xc6a1 - 0xc6fe 0xc7a1 - 0xc7fe
! PHONOGRAM 0xc8a1 - 0xc8fe /* Hangul composed */
IDEOGRAM 0xcaa1 - 0xcafe 0xcba1 - 0xcbfe 0xcca1 - 0xccfe
IDEOGRAM 0xcda1 - 0xcdfe 0xcea1 - 0xcefe 0xcfa1 - 0xcffe
***************
*** 105,111 ****
IDEOGRAM 0xf4a1 - 0xf4fe 0xf5a1 - 0xf5fe 0xf6a1 - 0xf6fe
IDEOGRAM 0xf7a1 - 0xf7fe 0xf8a1 - 0xf8fe 0xf9a1 - 0xf9fe
IDEOGRAM 0xfaa1 - 0xfafe 0xfba1 - 0xfbfe 0xfca1 - 0xfcfe
! IDEOGRAM 0xfda1 - 0xfdfe /* hanja */
! /* we don't have codeset 3 and 4 */
! /* end of LC_CTYPE definition */
--- 108,119 ----
IDEOGRAM 0xf4a1 - 0xf4fe 0xf5a1 - 0xf5fe 0xf6a1 - 0xf6fe
IDEOGRAM 0xf7a1 - 0xf7fe 0xf8a1 - 0xf8fe 0xf9a1 - 0xf9fe
IDEOGRAM 0xfaa1 - 0xfafe 0xfba1 - 0xfbfe 0xfca1 - 0xfcfe
! IDEOGRAM 0xfda1 - 0xfdfe /* Hanja */
!
! /* We don't have codeset 3 and 4.
! So codeset 3 is only dummy definition
! */
! PRINT 0xa1 - 0xfe
! SPECIAL 0xa1 - 0xfe
! /* End of LC_CTYPE definition */
-----------------CUT HERE-----------------------------------
2. make and install new LC_CTYPE
$ mklocale ko_KR.EUC.src > /usr/share/locale/ko_KR.EUC/LC_CTYPE
3. make new LC_TIME
This is LC_TIME definition for ko_KR.EUC:
begin 644 LC_TIME
M(#&_^0H@,K_Y"B`SO_D*(#2_^0H@-;_Y"B`VO_D*(#>_^0H@.+_Y"B`YO_D*
M,3"_^0HQ,;_Y"C$RO_D*,;_Y"C*_^0HSO_D*-+_Y"C6_^0HVO_D*-[_Y"CB_
M^0HYO_D*,3"_^0HQ,;_Y"C$RO_D*P,\*O_D*R*T*O/8*N/$*L=T*Q>0*P,^_
MY,#/"K_YO^3`SPK(K;_DP,\*O/:_Y,#/"KCQO^3`SPJQW;_DP,\*Q>2_Y,#/
M"B5(O<,@)4VZT"`E4\/*"B5Y+R5M+R5D"B59L^(@)6(@)67`SR`E8;_DP,\@
G)5@*O\#`_`J_P,C$"B59L^(@)6(@)67`SR`E8;_DP,\@)5@@)5H*
`
end
(it must be protected from possible charset conversion or 7-bit strip
for mail transfer because it contain 8-bit EUC-KR characters)
4. install LC_TIME
$ cp LC_TIME /usr/share/locale/ko_KR.EUC/LC_TIME
5. make dummy LC_COLLATE
$ cp /usr/share/locale/lt_LN.ISO_8859-1/LC_COLLATE \
/usr/share/locale/ko_KR.EUC/LC_COLLATE
It is something not standard way, but I didn't define LC_COLLATE for now...
(it is difficult for define this in our charset. so many chars!)
6. complete.
>Audit-Trail:
>Unformatted:
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703241230.VAA29459>
