[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