[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:18900] Bug#JP/1101: nvi-m17n on long-one-line with kanji
始めまして, 森岡と申します.
#この件は m17n パッチのバグ報告窓口 nvi-m17n@xxxxxxxxx に
#既に報告済みです.
私は Slackware 3.x/4.0 において, Debian のソースパッケージから
拝借した nvi-1.79 + m17n-19990331.diff をコンパイルして使わせ
ていただいているのですが, 以下の現象が出ています.
私は Debian ユーザでは無いのですが, パッケージを利用させて頂い
ていますし, おそらく同じバグが再現すると思われるので, ここにも
報告させていただきます.
画面の横幅に収まり切れないような、漢字を含む長い行を入力する時,
以下のように一行目に英数字が奇数文字あって, 右端で wrap する時
に自動的にひと桁分空白が入って次の行に行って, 二行目でちょうど
画面の右端まであるような行を入力すると, vi が応答しなくなってし
まいます. top で見ると CPU を使い切っているので, 無限ループして
いるのだと思います.
絵で描くと以下のようになります.
+----------------------------+
|ABC漢字漢字漢漢字漢字字漢字 |<- ここに空白が入って wrap される
|漢字漢字漢字漢字漢字漢字漢字|
| |
| |
| |
+----------------------------+
以下は発生条件です.
・二行目の文字は漢字でも英数字でも発生します.
・文字を挿入する時に, nvi に組み込んだ Canna でかな漢字変換しな
がら入力していて, 変換した単語が二行目の右端をまたぐ場合は再現
しません. 挿入した時にちょうど右端に揃えば発生します.
・文字を挿入するときに, 行末に挿入するのではなく, 行の途中に挿入
していると発生しない事がありますが, 必ずうまくいくわけではなく,
条件は不明です.
・文字を挿入するのではなく, 画面上で三行に渡る行を, コマンド 'x'
で文字を削除していって上の図の状態にすると, その時点では発生し
ません. そこで "A" コマンドで行末に挿入しようとすると発生します.
・最初から上図の状態になったファイルを読み込んでも発生しませんが,
そこから "A" コマンドで行末に挿入しようとするとやはり発生します.
・応答が無くなった状態でしばらく放置すると Segmentation fault が
発生する事があります.
・手元の環境 Slackware 4.0 + Linux 2.2.13 + libc5 + XFree86 3.3.5
+ KTerm では必ず再現します. 他にも以下の環境で再現しています.
- Plamo Linux 1.4 でも再現.
- Slackware 3.4/3.5 でも再現.
- Linux カーネル 2.0 系でも再現.
- XFree86 3.3.3〜3.3.4 でも再現.
- KTerm でなく linux の VGA コンソールでも再現.
・linux-users ML で質問した所, Vine Linux の nvi-m17n でも同じ現象
が発生するそうです.
以下は ldd /usr/bin/vi の結果です.
libtermcap.so.2 => /lib/libtermcap.so.2 (0x4000a000)
libcanna.so.1.0 => /usr/lib/libcanna.so.1.0 (0x4000e000)
libc.so.5 => /lib/libc.so.5 (0x4005a000)
configure は以下のオプションを付けました.
--prefix=/usr --enable-multibyte --enable-canna
gcc 等バージョンは以下の通りです.
gcc 2.7.2.3
libc libc.so.5.4.46
termcap libtermcap.so.2.0.8
canna Version 3.5 b2
**************************************************
* 森岡和才 - メールアドレスにエイリアス付けました*
* Kazutoshi Morioka <k-morioka@xxxxxxxxxxxxxxx> *
* 福岡県遠賀郡 http://k-pup.zoma.co.jp/~morioka/ *
**************************************************