Date: Thu, 18 Jul 1996 11:56:07 +0900 From: =?ISO-2022-JP?B?GyRCRURDZkh+SmY7UhsoQg==?= <mihoko@pa.yokogawa.co.jp> To: ache@nagual.ru Cc: freebsd-hackers@FreeBSD.org, XFree86@XFree86.Org, kimura@pa.yokogawa.co.jp Subject: Re: LC_CTYPE & XwcDrawString() trouble in FreeBSD-2.1.0R Message-ID: <199607180256.LAA02254@sapphire.pa.yokogawa.co.jp> In-Reply-To: Your message of "Thu, 18 Jul 1996 00:40:04 %2B0400 (MSD)" References: <199607172040.AAA02479@nagual.ru>
index | next in thread | previous in thread | raw e-mail
ache> > The 'XwcDrawString()' function of X library can not draw strings
ache> > under LANG=lt_LN.ISO_8859-1 environment.
ache>
ache> Wide characters not needed to represent 8859-1, it seems that your
ache> problem is that XFree86-3.1.2 not have aliases for FreeBSD locale names,
ache> i.e., FreeBSD locale name is:
ache>
ache> lt_LN.ISO_8859-1
ache> ^
ache> while XFree86 locale name is
ache>
ache> lt_LN.ISO8859-1
ache>
I'm sorry for my poor description.
Perhaps you can not understand what I mean.
The trouble is that I can't draw text by using the drawing function for
*wide* caracters, 'XwcDrawString()'.
I can draw text by using the drawing function for *multi-bytes*
characters, 'XmbDrawString()'.
Of course, I add 'lt_LN.ISO_8859-1'as an alias data to the locale
database file of X, '/usr/X11R6/lib/X11/locale/locale.alias'.
The locale database of XFree86 ,exactly X Consortium,
hopes that it is the EUC code for ISO 8859-1.
That is :
$ cat XF86312E/xc/nls/X11/locale/XLC_LOCALE/iso8859-1
XCOMM $XConsortium: iso8859-1,v 1.3 94/01/22 14:06:36 rws Exp $
XCOMM XLocale Database Sample for iso8859-1.
XCOMM
XCOMM
XCOMM XLC_FONTSET category
XCOMM
XLC_FONTSET
XCOMM fs0 class
fs0 {
charset ISO8859-1:GL
font ISO8859-1:GL
}
XCOMM fs1 class
fs1 {
charset ISO8859-1:GR
font ISO8859-1:GR
}
END XLC_FONTSET
XCOMM
XCOMM XLC_XLOCALE category
XCOMM
XLC_XLOCALE
encoding_name ISO8859-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 ISO8859-1:GL
}
XCOMM cs1 class
cs1 {
side GR:Default
length 1
#if WCHAR32
wc_encoding \x30000000
#else
wc_encoding \x00008080
#endif
ct_encoding ISO8859-1:GR
}
END XLC_XLOCALE
Of course, I know that it does not need to use X{mb|wc}DrawString()
and that it does not need to handle text as wide characters because
we can draw text of ISO 8859-1 charactor set by using XDrawString().
I'm developping some applications which run in the multi-lingual
environment.
I use the EUC code as all charactor code for handling all
languages in common with Japanese. So I use XwcDrawString().
The X locale Database of X Consortium is a sample all right, but
I guess that it is the general implementation of the operating
system that using wide characters as EUC code in ISO 8859-1.
Is my idea wrong ? Please advice me.
Thank you in advance,
--
Mihoko Tanaka
<mihoko@pa.yokogawa.co.jp>
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199607180256.LAA02254>
