Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: zsh-3.0.3: another problem in Src/jobs.c



> >> 	% 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)) {



Messages sorted by: Reverse Date, Date, Thread, Author