[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00410] Re: Re: [FDclone-users:00408] Re: Invalid argument ? (Re: MacOSX 10.4.1 での、 v2.07 の install について。)
- Subject: [FDclone-users:00410] Re: Re: [FDclone-users:00408] Re: Invalid argument ? (Re: MacOSX 10.4.1 での、 v2.07 の install について。)
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Wed, 08 Jun 2005 21:34:41 +0900
しらいです。
In Message-Id <20050607232553.8A7C540C392@yuka.unixusers.net>
Takashi SHIRAI <shirai@unixusers.net>writes:
> しらいです。
> なるほど。Darwin 用の SELECTRWONLY が効いてるんですね。多
> 分 machine.h からこの記述を削除すると動くようにはなると思い
> ますが、今度はキー入力が効かなくなると思います。
この修正もまずは試してみて下さい。Tiger で select(2) の挙
動がどう変わっているかは結構気になるところなので。
machine.h を書換える代わりに、「#undef SELECTRWONLY」とい
う一行を config.h に加えても同じ効果が得られるので、どちらか
やり易い方で確認してみて下さい。
で、上の変更を元に戻した上で以下の patch を試してみて下さ
い。こっちは select(2) の妙な癖を考慮した上で尚且つ起動に失
敗する件にも対処出来ている筈です。
なので Tiger で select(2) の妙な癖が修正されていなくても大
丈夫ですし、Puma 以前の Mac OS X でも大丈夫です。恒久的な対
処としてはこの patch を採用しようと考えています。
Tiger でも Puma でも、-PTYMODE=1 での動作も確認してみて下
さいね。pty 環境でも動くように対処してみましたので、疑似端末
モードで子プロセスを起動しても大丈夫だと思います。
---- Cut Here ----
diff -u ../old/FD-2.07/termemu.c ./termemu.c
--- ../old/FD-2.07/termemu.c Thu May 26 00:00:00 2005
+++ ./termemu.c Wed Jun 8 21:23:55 2005
@@ -761,7 +761,14 @@
emupid = (p_id_t)0;
safeclose(emufd);
emufd = -1;
- dup2(STDIN_FILENO, ttyio);
+ if (fileno(ttyout) == ttyio) dup2(STDIN_FILENO, ttyio);
+ else {
+ fd = fileno(ttyout);
+ closetty(&fd, &ttyout);
+ opentty(&fd, &ttyout);
+ dup2(fd, ttyio);
+ safeclose(fd);
+ }
maxfile = -1;
setdefterment();
diff -u ../old/FD-2.07/termio.c ./termio.c
--- ../old/FD-2.07/termio.c Thu May 26 00:00:00 2005
+++ ./termio.c Wed Jun 8 21:26:22 2005
@@ -346,7 +346,8 @@
if (*fdp >= 0) fd = *fdp;
else if ((fd = newdup(open(_PATH_TTY, flags, 0600))) < 0) return(-1);
if (*fpp) fp = *fpp;
- else if (!(fp = fdopen(fd, "w+b"))) return(-1);
+ else if (!(fp = fdopen(fd, "w+b")) && !(fp = fopen(_PATH_TTY, "w+b")))
+ return(-1);
*fdp = fd;
*fpp = fp;
---- Cut Here ----
しらい たかし