[FreeBSD-users-jp 96339] Re: FreeBSD-11.2 の ja_JP.eucJP 環境

内藤 祐一郎 naito.yuichiro @ gmail.com
2018年 10月 14日 (日) 23:44:00 UTC


内藤です。

平林さんの言う通りログインシェルを /bin/sh にしたユーザで
.profile に LC_ALL=ja_JP.eucJP を設定してからログインし、
startx から xterm を起動し、その上で alt-a を押すと
xterm が何もせずに終了します。

この時 xterm の exit code は 0 で正常終了していたため、
平林さんの言う crush に当たるのかどうかはよく分かりません。

コピーペーストの方も同様の現象を確認できました。
上記の通りに作成したユーザで、startx から xterm を二つ開きます。
以下、xterm-A 、xterm-B とします。

1. xterm-A で date コマンドを実行すると現在時刻が日本語で表示されます。
2. xterm-A で表示された日本語文字列をコピーします。
3. xterm-B にその文字列をペーストします。
4. xterm-B が何もせずに終了します。xterm-B の exit code も 0 でした。

1. で日本語文字列が表示されているのは xterm が eucJP を解釈しているから
だろうと思います。
printenv の表示には XTERM_LOCALE=ja_jp.eucJP がありました。

eucJP の文字列をペーストすると、恐らく /bin/sh が解釈できない文字を
見つけたことにより終了しているんだろうと思います。

試しに xterm-B で /bin/csh を起動してからペーストしたところ、
問題なく表示されました。/usr/local/bin/bash でも問題ありません。

そのため 10.4 から 11.2 の間で
/bin/sh に入った変更により引き起こされたのではないかと思います。

> 2018/10/14 14:18、Kouichi Hirabayashi <kh @ mogami.com>のメール:
> 
> やっと、問題の核心に近付いたようです。xorg などを ports から
> compile するか pkg install するかは関係ないようです。
> 
> この問題は
> 
> 1) FreeBSD 11.2-RELEASE #0 r335510 を ISO-IMAGES の CD-ROM
>   から(クリーン)インストール
> 2) login 時に LC_ALL を ja_JP.eucJP にする設定のみ追加
>   (例えば /root/.profile に内容に追加) 
> 3) login して startx を実行
> 4) xterm で Alt-A とか Alt-B などをキー入力すると crush
> 5) xterm で date コマンドを実行し、その中の「日曜日」など
>   を他の xterm に paste すると crush
> 
> というものですが、『login sh を /bin/sh にしたとき』発生し、
> /bin/csh なら発生しないのでした。
> 
> まだ、調べていないのですが、他の sh (例えば bash とか)でも
> 発生しないかもしれません。
> 
> これで、他の方々も再現できると思います。
> 
> 問題は「何故?」ですが。
> 
> 平林 浩一
> _______________________________________________
> freebsd-users-jp @ freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe @ freebsd.org"

-- 
内藤 祐一郎
naito.yuichiro @ gmail.com





freebsd-users-jp メーリングリストの案内