From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11615 invoked by alias); 25 Dec 2015 08:12:04 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 37434 Received: (qmail 27860 invoked from network); 25 Dec 2015 08:12:02 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:date:in-reply-to:comments:references:to:subject :mime-version:content-type; bh=EeGiqwijUlA+mAd38DWiqPLansvxBYVUHKQ59dUkRjs=; b=prZ7M+9dia7R8TZGeFKgL04dfhgIxQSwW1VxoD1Wz49ptrnPSTaohEAoS+UBAw8NNJ 8mwRfs+4scraAnAHtXccTYw+zV6LYjjggeN2+ZqNqVPR0RMMR7RF1baE3JHlXiEz+7+a 5zf7gZ9xXZbcOZhHKvpFWtWxJtuqPnJImvIrUcFTuadatQaZ4iclfJmxAZrW3a0z1aAM OohqJgXJgd2juY7pqst8okg1OzDCPB0DorZggQ7OXWpmgF2b7OaXNARp6pVQfoFHo2WD 1FwAxV4hFPf6Z5WiO7Ti1E36i3pYAxgtW7kHLLlRonteGANhyhOMIbIKjNA9sxH8d+AH tXuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:message-id:date:in-reply-to:comments :references:to:subject:mime-version:content-type; bh=EeGiqwijUlA+mAd38DWiqPLansvxBYVUHKQ59dUkRjs=; b=MT1vJBTHEJEC7CYWfW2LStFJPxk4rQuSRmZetyJ3d+fIC1odxueuFYjv/G/y3i7cxr 3b+RqS0x0zIn1VrD2LdxIYDHGRe+m3S8GbmsO/idTBy07PFbB5XOBebB36QlgqJ+hNDU IzAgjbf2DenEuLbbWEFfZ3UXQwZRPSjWh3iUlxj7vLYeWD050w+E7LpdHb8jsSuSmyEU XdlEhhtfj7GF3tK0zTmE3tsIZqPIjqiRgPCyzv8x0K8rSVbtB22VkJLJrCUdD4Ved2kD wpg6f/yvUoa/E/TdS9PMHMsMkg2LeKPTn2jVWxt1WDZykntZKdnRfdjMkMF1nURXirvS XcXw== X-Gm-Message-State: ALoCoQmOkzKYLsQprui1IFB9oIWsNhldErBUo941dwtXQUYgDnwBL3JKf6KzBHHOUT/OCc2YaAO8lS7Ozu9z/zRj5CsL4FeN2g== X-Received: by 10.66.222.101 with SMTP id ql5mr57781535pac.144.1451031118484; Fri, 25 Dec 2015 00:11:58 -0800 (PST) From: Bart Schaefer Message-Id: <151225001240.ZM32247@torch.brasslantern.com> Date: Fri, 25 Dec 2015 00:12:40 -0800 In-Reply-To: <567A8B32.9030300@inlv.org> Comments: In reply to Martijn Dekker "[BUG] 'command' + special built-in exits shell on error" (Dec 23, 11:53am) References: <567A8B32.9030300@inlv.org> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: zsh-workers@zsh.org Subject: Re: [BUG] 'command' + special built-in exits shell on error MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Dec 23, 11:53am, Martijn Dekker wrote: } } My bug report is that zsh still exits even when 'command' is used, and } even when emulating sh. When not emulating sh, "command" can't be used in front of a special builtin at all -- in zsh mode it always forces the command to be NOT built-in, i.e., it's implicitly "command -p". Consequently we only care about POSIXBUILTINS mode. diff --git a/Src/exec.c b/Src/exec.c index acc867c..f14fc27 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -3475,10 +3475,10 @@ execcmd(Estate state, int input, int output, int how, int last1) restore_queue_signals(q); } else if (is_builtin || is_shfunc) { LinkList restorelist = 0, removelist = 0; + int do_save = 0; /* builtin or shell function */ - if (!forked && varspc) { - int do_save = 0; + if (!forked) { if (isset(POSIXBUILTINS)) { /* * If it's a function or special builtin --- save @@ -3497,7 +3497,7 @@ execcmd(Estate state, int input, int output, int how, int last1) if ((cflags & BINF_COMMAND) || !assign) do_save = 1; } - if (do_save) + if (do_save && varspc) save_params(state, varspc, &restorelist, &removelist); } if (varspc) { @@ -3643,6 +3643,8 @@ execcmd(Estate state, int input, int output, int how, int last1) } dont_queue_signals(); lastval = execbuiltin(args, assigns, (Builtin) hn); + if (do_save & BINF_COMMAND) + errflag &= ~ERRFLAG_ERROR; restore_queue_signals(q); fflush(stdout); if (save[1] == -2) {