From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 5857 invoked from network); 5 Nov 2022 00:10:13 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 5 Nov 2022 00:10:13 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1667607013; b=ggZBpYOeUc/bhDeZYC3flngISN2Ghil2ZWFn91XQvWwiiQRjqI7RsKrFv1WSeHXfYr8+5H+cRZ pCo/AncQuqFc9nccl/3zDnR6g58u80XdxFcf+4CVMffPEer7gXiHDVpi6ExhJoCMtzM8QUxPQe emEYi7e93gf2eiaqfaFWpTXRMR1gb+eubLjMi7rFH3bFctliMrzsuBqc04fM1wxHsEGxfwgzJE UIJKwDERq9w0s+31VVFylRKcXhAuiVk3H3/OVHXUhlKqEpxfdHhPBqQkRVCxsUpiPOG3244wP+ Cp9l6mQrbMB+BKjdngE4W2rtAf1HLz+DN/MD+orKWuW+cg==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ed1-f43.google.com) smtp.remote-ip=209.85.208.43; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1667607013; bh=23CMH9mWpsWwZLZCG6gK2AuAo9xFpOKsBECd3ec1jcA=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=HFPltJaSibe4/LymszjM3iwsCo7Z0mU+3MIuTg6gzjqUJ9S1cZSWZGoJxV+0Gi3YgJmzN57OtL IQQdAbiBHHdSk/BIm+yP8sTm9I6e/ACM8an9YSXAC3kNO51ULxSW2F8p83y979IktzgxhCdEo8 knDVQ47LUlFvAi0LQqffgWgREyCnhmY1tWsGU4ZN9FXL5ZhumfVrzuEywqqy1u107YBSWqv9xn pqJ4kPn9ltDy6xtNHfVaHytkwJtkrHKyfnJtUjCwhFs4/Wl6vfjl0e6vSQxVeFQlmj1HIuPun6 6kpgZrUbOBFbOwuvZlRNMonMPhPnaCN6axl6ktCl/AJWuQ==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID :Date:From:In-Reply-To:References:MIME-Version:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=Hy3mKe3EXLNoengNspCNlzLZlEjH3qT2mk36ljnGyQs=; b=f1Rg6LOSjolOnZ32ro05Y/pXt2 QDnjrzut3echj9EDuIX5TzDIBlH6KLrdLl7tLrFsLwx6/dJPv4n7MfwAdJaKhc1XRlKp/zIhB3Iqg oUfmdt0wczvJ7CPICO0CCU6SRPaxOsSc/Isg6fTfZG7rQGCWCuyQciIbH0vF+D21i6JYJaQ14qgGE lan9QLhhJq+mty6uGPvrTgaKGf/7phozDFWzGsIViCe9J5NDhmQVnUw6qYeX3AUNn2fJEJ6sCxXdC yW0iy9fUqKg05IdNI2KIO86mPBP4xqHfjhl5MLvribI2nBbvcdi7hUq69yEUCkzsXImpl9U1OvUsi 4kWbunuA==; Received: by zero.zsh.org with local id 1or6lH-000Eld-Me; Sat, 05 Nov 2022 00:10:11 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ed1-f43.google.com) smtp.remote-ip=209.85.208.43; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ed1-f43.google.com ([209.85.208.43]:45823) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1or6kv-000EQ0-Mu; Sat, 05 Nov 2022 00:09:50 +0000 Received: by mail-ed1-f43.google.com with SMTP id a67so9794294edf.12 for ; Fri, 04 Nov 2022 17:09:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Hy3mKe3EXLNoengNspCNlzLZlEjH3qT2mk36ljnGyQs=; b=qb6a39YINuUgvZPbMJSdJe2OmZbh16IPNh9c+H8rCsJAUZSdqwx5OCOnAUomW/yHFC Hh8hf2GVuzH+Kdhzpjf270lTN1z/hQkSe7IwtLnCSRRJZCWeINtS0ZCHExHTx4DcHdGO ydOmC1FH6gQ+icYD8mz1jvIAiXLCl8Q/PzldtLmJylgZVMcGNRitHVJ/A/94YltbNONF tr9qgJ6whr1NICAdLFXhf+R2X5tG4Ac1YyWj/YeMk5eSZD+G0Y9VO9vXbvQ5W2YcjWdu QahYwgYFoeC0iPFu6zP2XE5sDvGhXWsLpQS+TeH9B7rw8zhrt8uZF/7732uGAEKkM/fA f5wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Hy3mKe3EXLNoengNspCNlzLZlEjH3qT2mk36ljnGyQs=; b=ekqZQleM0a29exT03zixp75cv+1X4buxRc6mg370wfCKjmN014kS/CleTR3wLZ15rf UxOc4EsGrxW7qgynJWaNCiolZGvllFJqHUW+wc4wJvOP7VAPFvnv3INnawR8Pm+Q+sRD XdZcxtwwVGC54rNfIlTSfkzjAwcacJJ8nn2A2hUutBkm0c2C5gA9+oMLE91+W+ZiOlte vOTr2/AIeGHt18n+d5AgKMMaYC188W3P1I3i9tsYMWdA0BqCEoaTtOQzBHSYI23ZYJTj HatvU2e3I+7t7nGxwn41KVFvMN80qLCHst4+4CK05UUaQtJD+YtvOjN0qdXCdgCa2hgr iPvA== X-Gm-Message-State: ACrzQf2eY/6ee2ZpUaHEl0cEnkN351ZEabrXdlY/xXKoY84Kn2vW9A1E NqhKhWRBmpBd9Cbuq1ruqgwIlP4k3owAbOV4NJasVQ== X-Google-Smtp-Source: AMsMyM5QJrBl1icUk6PHoGD3XkeQSlvdgFmcpyWQkjZ1P/KENty0lC+68bCLlCLDIV5NsBRxYvlDKe9rOYAq366X1z8= X-Received: by 2002:a05:6402:a46:b0:461:ed76:cb56 with SMTP id bt6-20020a0564020a4600b00461ed76cb56mr40199245edb.264.1667606987571; Fri, 04 Nov 2022 17:09:47 -0700 (PDT) MIME-Version: 1.0 References: <2FE96386-2D04-434F-AD2F-F08356B1AE04@kba.biglobe.ne.jp> <7BB37CE7-16A2-4079-956B-802E3FB4DC82@kba.biglobe.ne.jp> In-Reply-To: <7BB37CE7-16A2-4079-956B-802E3FB4DC82@kba.biglobe.ne.jp> From: Bart Schaefer Date: Fri, 4 Nov 2022 17:09:36 -0700 Message-ID: Subject: Re: [PATCH] problem with 'ls | less' shell function To: Jun T Cc: zsh-workers@zsh.org Content-Type: multipart/mixed; boundary="0000000000001ec0a705ecae02f7" X-Seq: 50874 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: --0000000000001ec0a705ecae02f7 Content-Type: text/plain; charset="UTF-8" On Fri, Nov 4, 2022 at 8:12 AM Jun T wrote: > > 548 /* is this job in the foreground of an interactive shell? */ > 549 if (mypgrp != pgrp && inforeground && > 550 (jn->gleader == pgrp || > 551 (pgrp > 1 && > 552 (kill(-pgrp, 0) == -1 && errno == ESRCH)))) { > > But why just "jn->gleader == pgrp" is enough to assume that the foreground > job has finished? > [...] > Another code that looks suspicious to me is (also in jobs.c) > > 478 if (pn->pid == jn->gleader) /* if this process is process group leader */ > 479 status = pn->status; > 480 } > > [...] > If the line 478 is replaced by > > 478 if (WIFSIGNALED(pn->status) || pn->pid == jn->gleader) > > then [2] can be killed by a single ^C. Thank you! This is the clue I needed. On line 476 is 476 signalled = WIFSIGNALED(pn->status); If we change line 550 to be 550 ((jn->gleader == pgrp && signalled) || then all three examples start working. Second patch attached, replaces the one from workers/50862. Tests pass, which is not surprising since all of this depends on signaling interactive shells, but I have no idea how to write a regression test for that. --0000000000001ec0a705ecae02f7 Content-Type: text/plain; charset="US-ASCII"; name="pipejobs2.txt" Content-Disposition: attachment; filename="pipejobs2.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_la35wep50 ZGlmZiAtLWdpdCBhL1NyYy9qb2JzLmMgYi9TcmMvam9icy5jCmluZGV4IDcwNzM3NDI5Ny4uNzZj NzYyZWU1IDEwMDY0NAotLS0gYS9TcmMvam9icy5jCisrKyBiL1NyYy9qb2JzLmMKQEAgLTU0NCwx NiArNTQ0LDE0IEBAIHVwZGF0ZV9qb2IoSm9iIGpuKQogCiAgICAgaWYgKGlzc2V0KE1PTklUT1Ip KSB7CiAJcGlkX3QgcGdycCA9IGdldHR5Z3JwKCk7ICAgICAgICAgICAvKiBnZXQgcHJvY2VzcyBn cm91cCBvZiB0dHkgICAgICAqLworCWludCBkZWFkcGdycCA9IChteXBncnAgIT0gcGdycCAmJiBp bmZvcmVncm91bmQgJiYgcGdycCA+IDEgJiYKKwkJCWtpbGwoLXBncnAsIDApID09IC0xICYmIGVy cm5vID09IEVTUkNIKTsKIAogCS8qIGlzIHRoaXMgam9iIGluIHRoZSBmb3JlZ3JvdW5kIG9mIGFu IGludGVyYWN0aXZlIHNoZWxsPyAqLwogCWlmIChteXBncnAgIT0gcGdycCAmJiBpbmZvcmVncm91 bmQgJiYKLQkgICAgKGpuLT5nbGVhZGVyID09IHBncnAgfHwKLQkgICAgIChwZ3JwID4gMSAmJgot CSAgICAgIChraWxsKC1wZ3JwLCAwKSA9PSAtMSAmJiBlcnJubyA9PSBFU1JDSCkpKSkgeworCSAg ICAoKGpuLT5nbGVhZGVyID09IHBncnAgJiYgc2lnbmFsbGVkKSB8fCBkZWFkcGdycCkpIHsKIAkg ICAgaWYgKGxpc3RfcGlwZSkgewotCQlpZiAoc29tZXN0b3BwZWQgfHwgKHBncnAgPiAxICYmCi0J CQkJICAgIGtpbGwoLXBncnAsIDApID09IC0xICYmCi0JCQkJICAgIGVycm5vID09IEVTUkNIKSkg eworCQlpZiAoc29tZXN0b3BwZWQgfHwgZGVhZHBncnApIHsKIAkJICAgIGF0dGFjaHR0eShteXBn cnApOwogCQkgICAgLyogY2hlY2sgd2luZG93IHNpemUgYW5kIGFkanVzdCBpZiBuZWNlc3Nhcnkg Ki8KIAkJICAgIGFkanVzdHdpbnNpemUoMCk7CkBAIC01NjYsNiArNTY0LDEyIEBAIHVwZGF0ZV9q b2IoSm9iIGpuKQogCQkgICAgICogd2hlbiB0aGUgam9iIGlzIGZpbmFsbHkgZGVsZXRlZC4KIAkJ ICAgICAqLwogCQkgICAgam4tPnN0YXQgfD0gU1RBVF9BVFRBQ0g7CisJCSAgICAvKgorCQkgICAg ICogSWYgd2UncmUgaW4gc2hlbGwgam9icyBvbiB0aGUgcmlnaHQgc2lkZSBvZiBhIHBpcGVsaW5l CisJCSAgICAgKiB3ZSBzaG91bGQgdHJlYXQgaXQgbGlrZSBhIGpvYiBpbiB0aGUgY3VycmVudCBz aGVsbC4KKwkJICAgICAqLworCQkgICAgaWYgKGluZm9yZWdyb3VuZCA9PSAyKQorCQkJaW5mb3Jl Z3JvdW5kID0gMTsKIAkJfQogCQkvKiBJZiB3ZSBoYXZlIGBmb298d2hpbGUgdHJ1ZTsgKCggeCsr ICkpOyBkb25lJywgYW5kIGhpdAogCQkgKiBeQywgd2UgaGF2ZSB0byBzdG9wIHRoZSBsb29wLCB0 b28uICovCkBAIC0xNDg4LDEwICsxNDkyLDcgQEAgYWRkcHJvYyhwaWRfdCBwaWQsIGNoYXIgKnRl eHQsIGludCBhdXgsIHN0cnVjdCB0aW1ldmFsICpiZ3RpbWUsCiAJICogc2V0IGl0IGZvciB0aGF0 LCB0b28uCiAJICovCiAJaWYgKGdsZWFkZXIgIT0gLTEpIHsKLQkgICAgaWYgKGpvYnRhYlt0aGlz am9iXS5zdGF0ICYgU1RBVF9DVVJTSCkKLQkJam9idGFiW3RoaXNqb2JdLmdsZWFkZXIgPSBnbGVh ZGVyOwotCSAgICBlbHNlCi0JCWpvYnRhYlt0aGlzam9iXS5nbGVhZGVyID0gcGlkOworCSAgICBq b2J0YWJbdGhpc2pvYl0uZ2xlYWRlciA9IGdsZWFkZXI7CiAJICAgIGlmIChsaXN0X3BpcGVfam9i X3VzZWQgIT0gLTEpCiAJCWpvYnRhYltsaXN0X3BpcGVfam9iX3VzZWRdLmdsZWFkZXIgPSBnbGVh ZGVyOwogCSAgICAvKgpAQCAtMTUwMCw3ICsxNTAxLDcgQEAgYWRkcHJvYyhwaWRfdCBwaWQsIGNo YXIgKnRleHQsIGludCBhdXgsIHN0cnVjdCB0aW1ldmFsICpiZ3RpbWUsCiAJICAgICAqLwogCSAg ICBsYXN0X2F0dGFjaGVkX3BncnAgPSBnbGVhZGVyOwogCX0gZWxzZSBpZiAoIWpvYnRhYlt0aGlz am9iXS5nbGVhZGVyKQotCQlqb2J0YWJbdGhpc2pvYl0uZ2xlYWRlciA9IHBpZDsKKwkgICAgam9i dGFiW3RoaXNqb2JdLmdsZWFkZXIgPSBwaWQ7CiAJLyogYXR0YWNoIHRoaXMgcHJvY2VzcyB0byBl bmQgb2YgcHJvY2VzcyBsaXN0IG9mIGN1cnJlbnQgam9iICovCiAJcG5saXN0ID0gJmpvYnRhYlt0 aGlzam9iXS5wcm9jczsKICAgICB9CkBAIC0yNTA2LDYgKzI1MDcsNyBAQCBiaW5fZmcoY2hhciAq bmFtZSwgY2hhciAqKmFyZ3YsIE9wdGlvbnMgb3BzLCBpbnQgZnVuYykKIAkJam9idGFiW2pvYl0u c3RhdCAmPSB+U1RBVF9DVVJTSDsKIAkgICAgfQogCSAgICBpZiAoKHN0b3BwZWQgPSAoam9idGFi W2pvYl0uc3RhdCAmIFNUQVRfU1RPUFBFRCkpKSB7CisJCS8qIFdJRkNPTlRJTlVFRCB3aWxsIG1h a2VydW5uaW5nKCkgYWdhaW4gYXQga2lsbGpiKCkgKi8KIAkJbWFrZXJ1bm5pbmcoam9idGFiICsg am9iKTsKIAkJaWYgKGZ1bmMgPT0gQklOX0JHKSB7CiAJCSAgICAvKiBTZXQgJCEgdG8gaW5kaWNh dGUgdGhpcyB3YXMgYmFja2dyb3VuZGVkICovCg== --0000000000001ec0a705ecae02f7--