Bug 23489

Summary: tcsh fails to do file completion on non-English characters
Product: Base System Reporter: Jin Guojun[VFF] <jin>
Component: binAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.2-RELEASE   
Hardware: Any   
OS: Any   

Description Jin Guojun[VFF] 2000-12-12 03:00:00 UTC
	tcsh fails to do the file completion on Chinese characters.
	This is discovered in the cxterm.
	It also fails to accept the cut and paste in cxterm, so there
	is no way to input Chinese command in cxterm/xterm.

Fix: 

A temp solution is to compile a real csh from 3.5.1-RELEASE, and
	to replace the fake csh (move it back to tcsh) for work-around.
How-To-Repeat: 
	open cxterm and try to type any Chinese charater, or cut and paste
	any Chinese character.
Comment 1 jon 2002-07-06 08:56:43 UTC
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I cannot reproduce this on my 4.6 -STABLE system:

cxterm

setenv LANG zh_TW.Big5
setenv LC_ALL zh_TW.Big5

touch aa<chinese><chinese>  <-- works
touch aa<tab>		    <-- works
touch <paste>		    <-- works

Let me know if this is still a problem for you.

- -Jon
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (FreeBSD)
Comment: For info see http://www.gnupg.org

iEUEARECAAYFAj0moroACgkQwvyGqiU5RosGjQCY+fO4sqv+4Zv0dm8qwy2xG6r0
EgCfW8VuyFr6Bmam48UZzYZygfk5yBI=
=HOyH
-----END PGP SIGNATURE-----
Comment 2 Mark Peek freebsd_committer freebsd_triage 2002-07-07 17:28:42 UTC
State Changed
From-To: open->closed

This was fixed in the 4.6 release.
Comment 3 Jin Guojun 2002-07-10 20:11:27 UTC
Jonathan Chen wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I cannot reproduce this on my 4.6 -STABLE system:
>
> cxterm
>
> setenv LANG zh_TW.Big5
> setenv LC_ALL zh_TW.Big5
>
> touch aa<chinese><chinese>  <-- works
> touch aa<tab>               <-- works
> touch <paste>               <-- works
>
> Let me know if this is still a problem for you.

It is still a problem under 4.6. At prompt 115, what I did here is copy and
paste.
The tcsh does not know how to interpret the unicode. It decodes the first
byte as some help flag, and put "." for rest characters.
Notice that the file is in chinese, which is not shown properly on the screen.
There is nothing shown on the first line of [115], but what happened here was
pasting, which failed.

-rw-------  1 html  advdev  26547 Dec 19  1998 ºÎÈÕ¾ýÔÙÀ´.mid

[115] : cat

No help file for cat
[115] : cat ....mid
cat: ....mid: No such file or directory
[116] : uname -sr
FreeBSD 4.6-RELEASE


--
------------ Jin Guojun ----------- v --- j_guojun@lbl.gov ---
Distributed Systems Department          http://www.itg.lbl.gov/~jin
M/S 50B-2239                            Ph#:(510) 486-7531 Fax: 486-6363
Lawrence Berkeley National Laboratory,  Berkeley, CA 94720
Comment 4 jon 2002-07-10 20:44:59 UTC
On Wed, Jul 10, 2002 at 12:11:27PM -0700, Jin Guojun [DSD] wrote:
> It is still a problem under 4.6. At prompt 115, what I did here is copy and
> paste.
> The tcsh does not know how to interpret the unicode. It decodes the first
> byte as some help flag, and put "." for rest characters.
> Notice that the file is in chinese, which is not shown properly on the screen.
> There is nothing shown on the first line of [115], but what happened here was
> pasting, which failed.

Could you let me know:
 - the value of your LANG environment variable
 - the value of your LC_ALL environment variable
 - the value of your LC_CTYPE environment variable
 - what program you were doing the cutting from
 - what version of cxterm you were using, and
 - what version of XFree86 you were using.

-Jon
Comment 5 Jin Guojun 2002-07-10 21:43:08 UTC
Jonathan Chen wrote:

> On Wed, Jul 10, 2002 at 12:11:27PM -0700, Jin Guojun [DSD] wrote:
> > It is still a problem under 4.6. At prompt 115, what I did here is copy and
> > paste.
> > The tcsh does not know how to interpret the unicode. It decodes the first
> > byte as some help flag, and put "." for rest characters.
> > Notice that the file is in chinese, which is not shown properly on the screen.
> > There is nothing shown on the first line of [115], but what happened here was
> > pasting, which failed.
>
> Could you let me know:
>  - the value of your LANG environment variable
>  - the value of your LC_ALL environment variable
>  - the value of your LC_CTYPE environment variable
>  - what program you were doing the cutting from
>  - what version of cxterm you were using, and
>  - what version of XFree86 you were using.
>
> -Jon

zh-cxterm-5.0.3
Information for zh-cxterm-5.0.3:
cxterm is a xterm replacement with Chinese (Simple/GB and Complex/Big5)
support.

Tried on both XFree86 4.2.0_1,1 under FreeBSD 4.6 and 3.3.6 under FreeBSD 4.5
None of these ENV was set.

Two (2) problems:
(1) Just simply use mouse to highlight the file name and paste into command line.
    This fails on both FreeBSD 4.5 and 4.6.
(2) Chinese input mode --
    (2.1) under FreeBSD 4.5, it is able to locate the word, but it fails to upload
the work onto
    command line. Uploading chinese character into a txst file opened by cvi works
fine.
    (2.2) under FreeBSD 4.6, tcsh has the same problem. Furthermore, the cxterm has

    another bug, which only has two input modes F1 (ASCII) and F2 (internal code).
    F3 and F4 (spelling mode) are not funtioning, but this is not the tcsh problem.

--
------------ Jin Guojun ----------- v --- j_guojun@lbl.gov ---
Distributed Systems Department          http://www.itg.lbl.gov/~jin
M/S 50B-2239                            Ph#:(510) 486-7531 Fax: 486-6363
Lawrence Berkeley National Laboratory,  Berkeley, CA 94720
Comment 6 jon 2002-07-11 17:54:26 UTC
On Wed, Jul 10, 2002 at 01:43:08PM -0700, Jin Guojun [DSD] wrote:
> Tried on both XFree86 4.2.0_1,1 under FreeBSD 4.6 and 3.3.6 under FreeBSD 4.5
> None of these ENV was set.

I believe your problem was that none of the environment variables are set.  
Without them set, tcsh won't know that the 8-bit half characters are valid, 
and won't allow them.  I recommend setting both LANG and LC_ALL (in your rc 
files if you like) to a chinese character set.  I use zh_TW.Big5 but you 
can find out what other values are available by looking in 
/usr/share/locale.

Please try this and let me know if it works.

-Jon
Comment 7 Jin Guojun 2002-07-11 19:10:39 UTC
Jonathan Chen wrote:
> 
> On Wed, Jul 10, 2002 at 01:43:08PM -0700, Jin Guojun [DSD] wrote:
> > Tried on both XFree86 4.2.0_1,1 under FreeBSD 4.6 and 3.3.6 under FreeBSD 4.5
> > None of these ENV was set.
> 
> I believe your problem was that none of the environment variables are set.
> Without them set, tcsh won't know that the 8-bit half characters are valid,
> and won't allow them.  I recommend setting both LANG and LC_ALL (in your rc
> files if you like) to a chinese character set.  I use zh_TW.Big5 but you
> can find out what other values are available by looking in
> /usr/share/locale.
> 
> Please try this and let me know if it works.
> 
> -Jon

"setenv LANG" works at either before or after cxterm starts.
"setenv LC_ALL" works only before cxterm starts.
Both work under FreeBSD 4.6-RELEASE. They do not work under 4.5-RELEASE.

This case can be closed, thanks.

	-Jin