[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00402] Re: FIND_FILE で存在しないファイルを指定した後の挙動
- Subject: [FDclone-users:00402] Re: FIND_FILE で存在しないファイルを指定した後の挙動
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Tue, 07 Jun 2005 21:37:10 +0900
しらいです。
In Message-Id <050607203804.M0304487@mix.syd.odn.ne.jp>
hma@syd.odn.ne.jpさんwrites:
> 濱崎です。
> FIND_FILE で検索したファイルが存在しなかった場合、
> 最下行に しばらくお待ちください. と表示されたままになり、
> ファイルがありません
> の表示に進みません。
むむむ。2.07 をいきなり出すと大量に em-bug してそうだった
んで、まずは 2.06d で様子見と思ったんですが、2.06d は余り使
い倒されていなかったようですね。
> 2.06c では発生しません。
> 記憶が曖昧ですが、2.06d では発生していたように思います。
> 端末周りの変更の副作用でしょうか?
そうではなくて単に安全装置が必要以上に効き過ぎてしまったみ
たいですね。
カーソル位置を表す index 値が、ファイル総数を越えた数を指
してしまうことがままあって、この場合カーソル位置のファイルを
表示しようとするとセグメント違反が生じます。
なのでカーソル位置が総数を越えないことを確認してから表示さ
せるように改めたのですが、総数がゼロの時だけはどっちの値もゼ
ロになってしまうので「カーソル位置が総数を越えた」と見なされ
てしまっていました。
という訳でこういう patch でどうでしょう。
---- Cut Here ----
diff -u ../old/FD-2.07/browse.c ./browse.c
--- ../old/FD-2.07/browse.c Thu May 26 00:00:00 2005
+++ ./browse.c Tue Jun 7 21:23:14 2005
@@ -1175,12 +1175,14 @@
if (custno >= 0) rewritecust();
else
# endif
- if (filelist && filepos < maxfile)
+ if (filelist
+ && (filepos < maxfile || (!filepos && !maxfile)))
n = listupfile(filelist, maxfile, def, 1);
x = win_x;
y = win_y;
}
- else if (filelist && filepos < maxfile)
+ else if (filelist
+ && (filepos < maxfile || (!filepos && !maxfile)))
listupfile(filelist, maxfile,
filelist[filepos].name, 0);
}
---- Cut Here ----
しらい たかし