From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 422 invoked from network); 24 Jun 1997 02:55:45 -0000 Received: from euclid.skiles.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 24 Jun 1997 02:55:45 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id WAA18539; Mon, 23 Jun 1997 22:48:50 -0400 (EDT) Resent-Date: Mon, 23 Jun 1997 22:48:50 -0400 (EDT) From: Zoltan Hidvegi Message-Id: <199706240252.WAA04438@hzoli.home> Subject: Re: zsh-3.0.3: another problem in Src/jobs.c In-Reply-To: <9706240205.AA02610@oz.fantasy.otsl.oki.co.jp> from SUZUKI Hisao at "Jun 24, 97 11:05:37 am" To: suzuki@otsl.oki.co.jp (SUZUKI Hisao) Date: Mon, 23 Jun 1997 22:52:42 -0400 (EDT) Cc: zsh-workers@math.gatech.edu (Zsh hacking and development) X-Mailer: ELM [version 2.4ME+ PL31 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Resent-Message-ID: <"vH7qD2.0.cX4.HMphp"@euclid> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/3297 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu > >> % emacs -nw & > >> % fg > >> [type ^X^C to terminate the emacs] > >> % stty > >> > >> [Note: this is not artificial. When you forget to set > >> DISPLAY, you will be put in the same situation.] OK, here is an other patch. When a process started in the background in the first place, zsh will ignore the tty settings it leaves after it exits, even if it is brought to the foreground afterwards. This should fix the emacs problem, and even the suspend/fg workaround will be unnecessary. Zoltan *** Src/zsh.h 1997/06/05 04:44:57 3.1.3.0 --- Src/zsh.h 1997/05/04 05:18:36 *************** *** 592,597 **** --- 592,599 ---- #define STAT_SUPERJOB (1<<7) /* job has a subjob */ #define STAT_SUBJOB (1<<8) /* job is a subjob */ #define STAT_CURSH (1<<9) /* last command is in current shell */ + #define STAT_NOSTTY (1<<10) /* the tty settings are not inherited */ + /* from this job when it exits. */ #define SP_RUNNING -1 /* fake status for jobs currently running */ *** Src/exec.c 1997/06/05 04:44:57 3.1.3.0 --- Src/exec.c 1997/06/24 02:42:47 *************** *** 654,659 **** --- 654,660 ---- pline_level--; if (how & Z_ASYNC) { lastwj = newjob; + jobtab[thisjob].stat |= STAT_NOSTTY; if (l->flags & PFLAG_COPROC) zclose(ipipe[1]); if (how & Z_DISOWN) { *** Src/jobs.c 1997/06/22 23:08:08 3.1.3.4 --- Src/jobs.c 1997/06/24 02:44:11 *************** *** 157,163 **** } if (shout && !ttyfrozen && !jn->stty_in_env && ! job == thisjob && !somestopped) gettyinfo(&shttyinfo); if (isset(MONITOR)) { --- 157,163 ---- } if (shout && !ttyfrozen && !jn->stty_in_env && ! job == thisjob && !somestopped && !(jn->stat & STAT_NOSTTY)) gettyinfo(&shttyinfo); if (isset(MONITOR)) {