zsh-workers
 help / color / mirror / code / Atom feed
From: Peter Stephenson <pws@ibmth.df.unipi.it>
To: zsh-workers@sunsite.auc.dk (Zsh hackers list)
Subject: PATCH: tty pgrp problem again
Date: Tue, 11 May 1999 13:58:21 +0200	[thread overview]
Message-ID: <9905111158.AA34596@ibmth.df.unipi.it> (raw)

The last patch I sent didn't handle this case (this is the most difficult
one I've come across, not coincidentally compinstall uses it):

% cat tst
cat /dev/null | while read; do; done
read
% . ./tst
%

where the second read again can't read from the tty.

The only thing for it seems to be to trust the STAT_CURSH flag on the job,
which says the last stage of the pipeline was run in the current shell, and
hence must be in the foreground whatever the job number, which can get
jiggled about if there are different structures like the while-loop above
running in the current shell.  This should work, since that's what it's
there for.  But maybe there are pathological cases [the whole @!$!!! shell,
if you ask me sometimes].  This goes on top of the other one.

(I can't actually swear to understanding why thisjob isn't the job that's
terminating, but it's to do with the pipeline code.)

--- Src/jobs.c.job	Tue May 11 13:28:59 1999
+++ Src/jobs.c	Tue May 11 13:41:21 1999
@@ -183,13 +183,11 @@
 	 * and let it handle its own traps, but always allow the test
 	 * for the pgrp.
 	 */
-	if (job == thisjob) {
-	    if (jn->stat & STAT_CURSH)
-		inforeground = 1;
-	    else {
-		lastval = val;
-		inforeground = 2;
-	    }
+	if (jn->stat & STAT_CURSH)
+	    inforeground = 1;
+	else if (job == thisjob) {
+	    lastval = val;
+	    inforeground = 2;
 	}
     }
 
-- 
Peter Stephenson <pws@ibmth.df.unipi.it>       Tel: +39 050 844536
WWW:  http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy


             reply	other threads:[~1999-05-11 12:23 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-05-11 11:58 Peter Stephenson [this message]
1999-05-11 13:15 ` PATCH: tty pgrp problem again: third attempt Peter Stephenson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9905111158.AA34596@ibmth.df.unipi.it \
    --to=pws@ibmth.df.unipi.it \
    --cc=zsh-workers@sunsite.auc.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).