[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:38238] Re: locale 絡み? 2 題



末廣と申します。

On Sat, Sep 13, 2003 at 01:40:45AM +0900,
 NAKANO Takeo wrote:

> ・tcsh-kanji のメッセージが krxvt などで化ける

安直には次の二通りの方法で解決できると思います。

  ・ set dspmbyte = euc
  ・ 一旦 setenv LANG ja_JP.ujis (して元に戻す)

tcsh-kanji 6.12.00-6 のソースを読んでみたところ、
実質的にサポートしている日本語ロケールは ja_JP.ujis だけ
のようです。

添付したパッチで、とりあえず ja_JP.eucJP, ja_JP.ujis,
ja_JP.EUC-JP で正常に動作するようになると思います。

>  tcsh-kanji + krxvt は、たとえば
> 
> % fuga
> fuga: \245\263\245\336\245\363\245\311\244\254\270\253\244\304\244\253\244\352\244\336\244\273\244\363.
> 
> のような表示になります。 kterm, gnome-terminal でも
> 同様に化けます。 なお MS-Windows から PuTTY で slogin
> して、シェルに tcsh-kanji を使っている場合は、ちゃんと
> 
> % fuga
> fuga: コマンドが見つかりません.
> 
> のように出ます。

krxvt などの場合、コマンドラインオプション -ls の あり/なし
で表示は変わりますでしょうか? もしもそうなら .login の中で
一旦 setenv LANG ja_JP.ujis されているのではないでしょうか。
-- 
    末廣雅利 E-mail: gully@xxxxxxxxxxxxx
--- tcsh-6.12.00.orig/sh.set.c
+++ tcsh-6.12.00/sh.set.c
@@ -1230,6 +1230,9 @@
 	{ STRLANGEUCJPB, STRKEUC },
 	{ STRLANGEUCKRB, STRKEUC },
 	{ STRLANGEUCZHB, STRKEUC },
+#ifdef linux
+	{ STRLANGEUCJPC, STRKEUC },
+#endif
 	{ STRLANGSJIS, STRKSJIS },
 	{ STRLANGSJISB, STRKSJIS },
 	{ STRLANGBIG5, STRKBIG5 },
--- tcsh-6.12.00.orig/tc.const.c
+++ tcsh-6.12.00/tc.const.c
@@ -129,20 +129,16 @@
 #  endif /* MBYTEMAP */
 /* PATCH IDEA FROM Issei.Suzuki VERY THANKS */
 /* dspmbyte autoset trap */
-/* STRLANGEUCJP,STRLANGEUCJPB = EUCJP Trap */
+/* STRLANGEUCJP,STRLANGEUCJPB(,STRLANGEUCJPC) = EUCJP Trap */
 /* STRLANGEUCKR,STRLANGEUCKRB = EUCKR Trap */
 /* STRLANGEUCZH,STRLANGEUCZHB = EUCZH Trap */
 /* STRLANGSJIS,STRLANGSJISB = SJIS Trap */
-#  if defined(__uxps__) || defined(sgi)  || defined(aix) || defined(__CYGWIN__) || defined(linux)
+#  if defined(__uxps__) || defined(sgi)  || defined(aix) || defined(__CYGWIN__)
 Char STRLANGEUCJP[]	= { 'j', 'a', '_', 'J', 'P', '.', 'E', 'U', 'C', '\0' };
 Char STRLANGEUCKR[]	= { 'k', 'o', '_', 'K', 'R', '.', 'E', 'U', 'C', '\0' };
 #   if defined(__uxps__)
 Char STRLANGEUCJPB[]	= { 'j', 'a', 'p', 'a', 'n', '\0' };
 Char STRLANGEUCKRB[]	= { 'k', 'o', 'r', 'e', 'a', '\0' };
-#   elif defined(linux)
-Char STRLANGEUCJPB[]	= { 'j', 'a', '_', 'J', 'P', '.', 'u', 'j', 'i', 's',
-			    '\0' };
-Char STRLANGEUCKRB[]	= { 'k', 'o', '_', 'K', 'R', '.', 'e', 'u', 'c', '\0' };
 #   elif defined(aix)
 Char STRLANGEUCJPB[]	= { 'j', 'a', '_', 'J', 'P', '\0' };
 Char STRLANGEUCKRB[]	= { 'k', 'o', '_', 'K', 'R', '\0' };
@@ -157,6 +153,22 @@
 			    '\0' };
 Char STRLANGEUCZH[]	= { '\0' };
 Char STRLANGEUCZHB[]	= { '\0' };
+#  elif defined(linux)
+Char STRLANGEUCJP[]	= { 'j', 'a', '_', 'J', 'P', '.', 'E', 'U', 'C', '-',
+			    'J', 'P', '\0' };
+Char STRLANGEUCKR[]	= { 'k', 'o', '_', 'K', 'R', '.', 'E', 'U', 'C', '\0' };
+Char STRLANGEUCJPB[]	= { 'j', 'a', '_', 'J', 'P', '.', 'e', 'u', 'c', 'J',
+			    'P', '\0' };
+Char STRLANGEUCKRB[]	= { 'k', 'o', '_', 'K', 'R', '.', 'e', 'u', 'c', '\0' };
+Char STRLANGEUCJPC[]	= { 'j', 'a', '_', 'J', 'P', '.', 'u', 'j', 'i', 's',
+			    '\0' };
+Char STRLANGSJIS[]	= { 'j', 'a', '_', 'J', 'P', '.', 'S', 'J', 'I', 'S',
+			    '\0' };
+Char STRLANGSJISB[]	= { '\0' };
+Char STRLANGBIG5[]	= { 'z', 'h', '_', 'T', 'W', '.', 'B', 'i', 'g', '5',
+			    '\0' };
+Char STRLANGEUCZH[]	= { '\0' };
+Char STRLANGEUCZHB[]	= { '\0' };
 #  elif defined(__FreeBSD__)
 Char STRLANGEUCJP[]	= { 'j', 'a', '_', 'J', 'P', '.', 'e', 'u', 'c', 'J',
 			    'P', '\0' };