From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12681 invoked by alias); 15 Apr 2017 23:20:07 -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: 40977 Received: (qmail 23541 invoked from network); 15 Apr 2017 23:20:07 -0000 X-Qmail-Scanner-Diagnostics: from mail-vk0-f52.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.213.52):SA:0(-0.0/5.0):. Processed in 1.480152 secs); 15 Apr 2017 23:20:07 -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.0 required=5.0 tests=RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS,T_DKIM_INVALID autolearn=unavailable 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.213.52 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:date:to:subject:mime-version; bh=ViN2fvPVPE5znI+bK4AG18AKgi+24e2yhQzDKJ3NSE8=; b=IKXo6mP/tYAYhLQek7sIK+ct+fG8Qqkt9SI9rDMbUU9P1Q+guD1YtUmwprKhImV1Ka xYHioGgP3ols1UiPRsr7N+ljFm/kD44Ug9sXKlovoI9x2TXnZRwf6U3xbTiMa+4PevqF jw/+HQhiJZ31f6Cgf1vh92606TsCm/MiGaoHzIRxER3I8v0+X/0GjYVRJcHuvc/KMOa3 4aLzK1GBXuoNYZp/83FF+yXwMHlr2NiNSorTijMSz4NMOpqU35XST1qfxlDpJJQpUcSS DBPyGXcHDEB8LxsRF+nwdk0EZBZI+yvjqk8gCsbNJV3wskRVLggDu7XdgnXWAea2FAOV Bsxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:date:to:subject:mime-version; bh=ViN2fvPVPE5znI+bK4AG18AKgi+24e2yhQzDKJ3NSE8=; b=fC6xU1T+tOnNIY1Ho7a9c1j/Fk0omk5BRpdVT/avBKbU+QqtKMpEaUHqBwgJXmXeAe zoexuTXOXv76tWHIs4l6ohz8fClLp6nM4goH5H4BJE8ADg+fVR8y7G3VXGwuD35WzZDg munsi5I7XOWHcqLNAJ6f8fk1PSeJxsdhExKULwhc3AUgPvrJ8DR+A+PArexYFsPlH9Ew cTpoACNQM0fr0vxp3kNtQEVvHDW0h3yQy9A+S3poRU4XFQRsFZmxRqD2240dzvg7Lf3b GsDxJ1oqX6sYNzt0lvZGtx+HZErWXUxSAGuDfdvsIMP9k6f1v4w9OoPMu47YfOB53rG4 +aFg== X-Gm-Message-State: AN3rC/7yCmChC695taDVfv866W0FcGL0DGToOEOdfkK6fvUcWb2RmbO5 fOS5VZEHT5hzqLfE X-Received: by 10.31.166.80 with SMTP id p77mr5853025vke.123.1492298398365; Sat, 15 Apr 2017 16:19:58 -0700 (PDT) From: Bart Schaefer Message-Id: <170415162025.ZM24293@torch.brasslantern.com> Date: Sat, 15 Apr 2017 16:20:25 -0700 X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: zsh-workers@zsh.org Subject: [PATCH] "emulate" accidentally allows "--version" and "--help" MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Because it shares option parsing code with shell startup, it is possible to run "emulate zsh --version" or "emulate ksh --help" and so on. The result is unexpected and usually inaccurate given the context, and also confuses other option parsing, so it's probably best to disallow it. diff --git a/Src/init.c b/Src/init.c index a1162b3..d8c26ac 100644 --- a/Src/init.c +++ b/Src/init.c @@ -376,12 +376,12 @@ parseopts(char *nam, char ***argvp, char *new_opts, char **cmdp, *argv = "--"; while (*++*argv) { if (**argv == '-') { - if(!argv[0][1]) { + if (!argv[0][1]) { /* The pseudo-option `--' signifies the end of options. */ argv++; goto doneoptions; } - if(*argv != args+1 || **argv != '-') + if (nam || *argv != args+1 || **argv != '-') goto badoptionstring; /* GNU-style long options */ ++*argv;