[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00743] Re: FDclone 3.0 beta test has been started
- Subject: [FDclone-users:00743] Re: FDclone 3.0 beta test has been started
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Sat, 08 Mar 2008 03:40:06 +0900
しらいです。
In Message-Id <20080307093024.9789d4e0.yasushi_imao@imao.jp>
Yasushi Imao <yasushi_imao@imao.jp>さんwrites:
> お世話になります。今尾といいます。
> FD-sh をテストしていて、今頃気がついてしまったんですが、
> "Solaris10 X86 + FD-2.09g の fdsh をログインシェルとして使用"
> という環境で、scp の受け取り側として使用した場合
>
> "fdsh: dumb: invalid terminal for FDclone"
>
> というエラー(?)メッセージが表示されます。
端末 DB に「dumb」エントリが存在しないんでしょうね。うちの
Solaris 10 の /etc/termcap にはあるんですが。
FDclone は端末名を元に key map や escape sequence を設定す
るので、環境変数 TERM の値が端末 DB に存在しなかった場合にこ
のエラーになるんです。
「dumb」というのはダム端末のことで、環境変数 TERM が未定義
だった場合に FDclone が取り敢えず代わりに代入する値です。こ
の時に、そんなの知らないと言ってエラーを吐いてるんでしょう。
尤も、この部分は UI として動いている時にエラー扱いにすれば
十分なんで、shell として動いている時はスルーしておいて UI を
起動しようとした時点で初めてエラーを吐けば済む話です。
その shell として動いているかどうかの判断が甘くて、TERM に
「dumb」を代入している初期化段階は UI かも知れないと判断して
エラーに落ちていました。
初期化の冒頭部で UI か shell かを判断すればこのエラーは回
避出来ると思います。
という訳でこんな patch では如何でしょうか?
# FD-2.09h に反映させたいので週明けくらいまでに結果報告を
#くれると助かります。
---- Cut Here ----
diff -u ../old/FD-2.09g/system.c ./system.c
--- ../old/FD-2.09g/system.c Sat Jan 26 00:00:00 2008
+++ ./system.c Sat Mar 8 03:06:51 2008
@@ -10785,7 +10785,10 @@
#endif
isstdin = forcedstdin;
- if (n > 2) interactive = interactive_io;
+ if (n > 2) {
+ shellmode = 1;
+ interactive = interactive_io;
+ }
else if (n >= argc || isstdin) isstdin = 1;
else {
definput = newdup(Xopen(argv[n], O_BINARY | O_RDONLY, 0666));
@@ -11031,7 +11034,6 @@
#endif
fflush(stderr);
}
- shellmode = 1;
#if defined (FD) && !defined (_NOPTY)
if (isshptymode()) {
shellpid = (p_id_t)-1;
@@ -11175,6 +11177,7 @@
int argc;
char *CONST *argv, *CONST *envp;
{
+ shellmode = 1;
setshellvar(envp);
if (initshell(argc, argv) < 0) return(RET_FAIL);
#ifdef FD
---- Cut Here ----
> ちなみに、FD-sh-080306 では再現しませんでした。
fdnsh は UI 機能を持たないのでそもそも TERM の内容なんか全
く関知していないんですよ。なのでもっと以前の実装でもこの症状
は現れないと思います。
しらい たかし