猿丸です。

On Sat, Mar 04, 2006 at 07:52:30PM JST, Tsurutani Naoki wrote:

> FreeBSD/amd64 5-STABLEから6.1-PRERELEASEにアップデートしたマシンがあるのですが、
> どうもtcshの補完がおかしい気がしています。
> コマンド補完で、途中まで入力して候補を表示させた際、中途半端に改行された
> ような表示が行われます。こんな感じです。
> 
> % set(ここでタブ)
> set         setextattr  setfmac     seticons    setpmac     settc       
> setxkbma
> p
> setenv      setfacl     setfsmac    setkey      setstyle    setty

  tcsh 6.14.0 のバグっぽいですね。コマンド補完だけでなく、内蔵
ls (ls-F) も同様です。

  下記のパッチを試してみてください。

  そもそもコマンド名ではファイル名とは違って末尾の / とか * とか
は関係ないと思うんですが、そんな処理をやっていること自体がおかし
いのかもしれません。というかファイル名表示でも no_file_suffix が
true になって同じ処理をしているみたいなんですけど…。

--- src/contrib/tcsh/tw.parse.c.orig    Wed Sep 14 01:27:38 2005
+++ src/contrib/tcsh/tw.parse.c Thu Mar 16 11:18:02 2006
@@ -2086,10 +2086,11 @@ print_by_column(dir, items, count, no_fi
                if (no_file_suffix) {
                    /* Print the command name */
                    Char f = items[i][w - 1];
                    items[i][w - 1] = 0;
                    print_with_color(items[i], w - 1, f);
+                   wx++;
                }
                else {
                    /* Print filename followed by '/' or '*' or ' ' */
                    print_with_color(items[i], w, filetype(dir, items[i]));
                    wx++;

--
sarumaru

メールによる返信