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

[FDclone-users:00748] Re: 補完候補一覧表示時の問題



 しらいです。

In Message-Id <200803110717.m2B7H1Ye082963@www.fubako.com>
        hironao@fubako.comさんwrites:
> 小松です。

> fnameofsが0でないときに補完候補を一覧表示すると(例えば、"h"でプロン
> プトを出した後、ファイル名の補完を要求する)、表示が乱れます。

 乱れると言うか、カーソル位置のファイルをシフト表示させてい
たカラム数分だけ、補完候補もシフト表示されてしまうということ
ですよね?
 補完候補表示時に、通常の一覧表示用変数を初期化し忘れている
のが原因だと思います。


> おそらくバグだと思うので、こう対処しましたが、これで問題ありませ
> んでしょうか?

 その対処法だと意図しない時にもシフト表示がリセットされてし
まうのと、更に補完候補表示から元に戻った際にシフト表示状態が
リセットされてしまうと思います。
 この patch でどうでしょう?

---- Cut Here ----
diff -u ../old/FD-2.09g/input.c ./input.c
--- ../old/FD-2.09g/input.c	Sat Jan 26 00:00:00 2008
+++ ./input.c	Tue Mar 11 23:49:00 2008
@@ -18,6 +18,7 @@
 extern short histsize[];
 extern int curcolumns;
 extern int minfilename;
+extern int fnameofs;
 extern int hideclock;
 extern CONST char *promptstr;
 #ifndef	_NOORIGSHELL
@@ -1714,14 +1715,17 @@
 char *CONST *argv;
 {
 	char *cp;
-	int i, len, maxlen, duprow, dupminfilename, dupcolumns, dupdispmode;
+	int duprow, dupminfilename, dupcolumns, dupdispmode, dupfnameofs;
+	int i, len, maxlen;
 
 	duprow = FILEPERROW;
 	dupminfilename = minfilename;
 	dupcolumns = curcolumns;
 	dupdispmode = dispmode;
+	dupfnameofs = fnameofs;
 	minfilename = n_column;
 	dispmode = F_FILETYPE;
+	fnameofs = 0;
 
 	if (argv) {
 		selectlist = (namelist *)malloc2(argc * sizeof(namelist));
@@ -1808,6 +1812,7 @@
 			minfilename = dupminfilename;
 			curcolumns = dupcolumns;
 			dispmode = dupdispmode;
+			fnameofs = dupfnameofs;
 
 			return;
 		}
@@ -1854,6 +1859,7 @@
 	minfilename = dupminfilename;
 	curcolumns = dupcolumns;
 	dispmode = dupdispmode;
+	fnameofs = dupfnameofs;
 }
 
 /*ARGSUSED*/
---- Cut Here ----


> あと、この機会に皆さんにお聞きしたいのですが、fd.hにある MAXxxxxTABLE の
> 値がデフォルトのままでは足りないという方はどれほどいるのでしょうか?
> こちらでは
> 
> #define MAXLAUNCHTABLE  96
> #define MAXARCHIVETABLE 32
> 
> として使っています。もし不足に思う方が多いときは対処をお願いします。

 この制限は 3.00 では撤廃しています。man page の「制限事項」
の項に 4 つほど上限値を設定されているものがありますが、これ
ら全てに関して、メモリの許す限り無限に登録可能になります。
 尤も、キー割当てに関しては、特殊キーをどう組合わせたところ
で押下可能なキーの数が有限数なので余り嬉しくはないと思います
が :-)

 あと拡張の余地があるとすれば、ファイルスタックの「5」と分
割ウィンドウの「5」でしょうか。
 前者はレイアウトの都合上余りいじりたくはないのと、拡張した
ところでさほど嬉しくはないと思うので、余程問題がない限りはこ
のままにしておきたいと思います。
 後者は上限値を増やすことには特に異論はありませんが無限には
したくないですね。ニーズがさほど見込めない割には実装が面倒な
ので。まぁ 5 個くらいが妥当なんじゃないでしょうか。

                                               しらい たかし