From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29036 invoked by alias); 30 Mar 2017 22:42:31 -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: 40920 Received: (qmail 11272 invoked from network); 30 Mar 2017 22:42:31 -0000 X-Qmail-Scanner-Diagnostics: from mail-qt0-f171.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(209.85.216.171):SA:0(0.5/5.0):. Processed in 1.204213 secs); 30 Mar 2017 22:42:31 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=0.5 required=5.0 tests=RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RCVD_IN_SORBS_SPAM,SPF_PASS, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.1 X-Envelope-From: schaefer@brasslantern.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 209.85.216.171 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=L7h/zgn/wqr8kP8fySY5t/UTs0psSlUSZCXCe8+SjFU=; b=CkNllnfIRXHaeRzbkk2tKoUcOPW3jUa3qKpvoY9Uxo3ybef+NIAcNF4APFBLrygSsm Bf9jtLcIppzjDUpO/SD2N5K5KwbwRTCYO1eenz2TQgHqxBEiflO8RcQ7mPCDzmVZHskz R9W8psY7P6KmaOz+Wf7VMBY70EmBngERHZWMoeeVtrA086eNTCvZC3yN+Ed/QG0asyuq ZO1JUvcFodwISGJbPSbQ4DDwZBHIt/Ed5H6BdhL7iOaWQ9sVXss/vn54i6vcBzb54M2i Y3WawapbO29TSs28i/og8Bx1T/KizE6FcKq9kB793uiJES8dYeLJ2fcMWBhfM6sF6GO6 gEPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=L7h/zgn/wqr8kP8fySY5t/UTs0psSlUSZCXCe8+SjFU=; b=p/96c7Zp1SxLsAoNTN+gvdJw/s2tzKXnx6WXXkxWm9KjddPXn53U+wYAqgbIbMHFum jWV78+2NGYm7WrK76krabNxK5JGf6TfHAgEuiz2WvfIkgn2+hOUlb0t688d6uD8ORPtW 7xk4guonl4RspSsMbwdnWKgCoYSJonhUZTzG7uo15kaR3PiNWxOWZw/5xdJYCfkjdrvp 6eJLitHFj7Xrp2WURe769CbnP5SrhkBGHVPXJoPTvln3o/GNNVVNGT0KRKeGu/gfYLBK N7IikrZKuJGWj8RZC1YtVMmWdmLdNO07uFAIlrMqTng1J21g3gGr2K1aL3KoUCMGep0D wsWA== X-Gm-Message-State: AFeK/H0upvDvdYgA1H2Lu9zqfgr2oEUR2gqlgkGNpnbq2TtfcjQPiYdTPjh+XKYGJy8L8Y71TB+SyzIVBDJIdg== X-Received: by 10.200.39.56 with SMTP id g53mr2412806qtg.134.1490913743906; Thu, 30 Mar 2017 15:42:23 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: From: Bart Schaefer Date: Thu, 30 Mar 2017 15:42:23 -0700 Message-ID: Subject: Re: zsh precommand modifiers stop accepting argument if quoted To: Zsh hackers list Content-Type: text/plain; charset=UTF-8 On Wed, Mar 29, 2017 at 11:00 PM, Cuong Manh Le wrote: > > $ zsh -c '\exec -a foo zsh -c "print -- \$0"' > zsh:1: command not found: -a > $ zsh -c '\command -v ls' > zsh:1: command not found: -v > > Is this behavior a feature or a bug? it it documented somewhere? There's no promise that precommand modifiers will work at all when quoted. They're syntactic tokens, so if you quote them they become different tokens. It just happens that "exec" and "command" are both implemented as builtins, so the quoted forms can still be looked up and run that way, but if you have changed the token then the corresponding syntax rules do not apply. This is similar to the way that "typeset" as a reserved word differs from "typeset" as a builtin command. The typeset dichotomy was introduced a lot more recently and so is more carefully documented -- there's probably a doc clarification that could be made for the precommand modifiers.