[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: kterm problem?
In message <20040404.002728.100291970.oshimaya@sc.starcat.ne.jp>
on Sun, 04 Apr 2004 00:27:28 +0900 (JST),
Yasushi Oshima <oshimaya@sc.starcat.ne.jp> wrote:
> daemon(3)の方は再現してないのでわからないのですが、perlの方は
daemon(3)で入るのは制御端末の切り離しも1つの仕事ですから、以後のtty
絡みの話は十分に関係あります。
> % stty min 1
>
> と設定してやると動くようになるようです。ktermでの初期値はうちの場合
> はmin = 0になってます。このktermからxtermを起動すると引き継がれて
> min = 0のまま。xtermからktermを起動するとやっぱり引き継がれてmin = 1
> で正しく動く模様。なんだかよくわかんない…
うぅむ、確かにソースファイルを改めてチェックすると、ktermの方はしてま
せんねぇ。defined(macII) || defined(ATT) || defined(CRAY) の中ではきっ
ちり設定しているのですが。
xinit(1)を使ってる場合は、ログインした時点で min = 1 となって、それを
引き継いでいくので問題ないのでしょう。xdm(1)の.xsessionから起動される
場合は未確認ですが、daemon(3)で引き継ぐ端末がない場合はkterm(1)や
xterm(1)が初期化するときの値となってしまうのでしょう。
Term::Completeモジュールの方でもケアすべきところなのかもしれませんが、
kterm(1)のベースはxterm(1)であり、その挙動に合わせるべきと思います。
また、ソース上も「入れ忘れ」がxtermの方では直ってるというような気もし
ます。以下のようなパッチを加えて解決としたいと思います。
たいへん助かりました。ありがとうございます。
--
神戸 隆博 / Takahiro Kambe
$NetBSD$
--- main.c.orig 2004-04-03 11:26:03.000000000 +0900
+++ main.c
@@ -1247,6 +1247,8 @@ char **argv;
d_tio.c_cc[VQUIT] = CQUIT; /* '^\' */
d_tio.c_cc[VEOF] = CEOF; /* '^D' */
d_tio.c_cc[VEOL] = CEOL; /* '^@' */
+ d_tio.c_cc[VMIN] = 1;
+ d_tio.c_cc[VTIME] = 0;
#ifdef VSWTCH
d_tio.c_cc[VSWTCH] = CSWTCH; /* usually '^Z' */
#endif