From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id ab325a20 for ; Sun, 2 Dec 2018 22:28:49 +0000 (UTC) Received: (qmail 18482 invoked by alias); 2 Dec 2018 22:28:35 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: List-Unsubscribe: X-Seq: 23776 Received: (qmail 4199 invoked by uid 1010); 2 Dec 2018 22:28:35 -0000 X-Qmail-Scanner-Diagnostics: from mail-it1-f180.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.100.2/25112. spamassassin: 3.4.2. Clear:RC:0(209.85.166.180):SA:0(-2.0/5.0):. Processed in 2.396876 secs); 02 Dec 2018 22:28:35 -0000 X-Envelope-From: pengyu.ut@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=i6ZpkEu1dOzyGq/B1nYJzuxAfrKwXSivVT+A2eNI0Fo=; b=qyWeJju064JsuQOr82qvdr/bB8gms1EGiQ0oVAQMmlpQ7kzuoz7WhJhlME1f0oWN6e RCOeSBseZpv4GzdSc17CeP+8exMK9IA7u0vzKNRpbQ/AtNJj80bS7JXyfN1yu65Ue9kf +N/5Dcb/UwGEBqlHcW/N2F+oo5jObGHEBTEgkKS1EmW/cOV5gTV1X8snvLlnZyy1OQRt WP8eAwgTJVxzxsRTgxffVt6O5c3J4xXA0qt09IziyxZ0lbfUGgb4nPl8+As23vbERoBS U2XHOcBwbWt1JHBTWvD52lXSHpd3ZpJ4fv5IGv1ZyTAvpO0qpCd58Qb4tAKSmfqgnQXU YWoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=i6ZpkEu1dOzyGq/B1nYJzuxAfrKwXSivVT+A2eNI0Fo=; b=GS/ZuWh18AWo0vpUt/wY2wMmKFC7PJq/XQl1U3QFeaWASILG38/QGCw6qKkl64vJpp yN7r/qXWHWyvuOyw7F8eNJ8ccGOBtSVt1XMIPJnuUF8Vi0rS9HbAMU+MrNLvKlMAjyX3 8qnJvgmcBaD6qBV11x9yp36m5F7U1I1LMprZ5NmxYoEi0ntUG7bSioIUD2UnAB5iqNbB yAA47Uz3QlpwMp7St8zDbmQiGcgpyLHolRSRn3aNPpIsflWJSKJw8kbsDTmlugFbJ4qx TEtSElBU0iY1brNKRm19AAsYwTUdOnsz96B0vIsaB9L2452QzuwZgp2tUSA8D/yZvH0o QKlQ== X-Gm-Message-State: AA+aEWYJ40snAxSOi0bFQ4nCJUI64HeDblOP0mF5JmrGTAT1pA2ZqWlC 9Cr6qaBKuxSiJMGWNuoOTJtw6J8NQ4TXUGnRxPl++w== X-Google-Smtp-Source: AFSGD/UN8TVgYhlvDQwWzWs/kMFCY9qGGk++5rUpc+R8MvPTeoECr41bGHtHx5XGeJKN0v4DkwJ3Wnm9YQShO2xNd7k= X-Received: by 2002:a24:ce45:: with SMTP id v66-v6mr5659534itg.26.1543789709856; Sun, 02 Dec 2018 14:28:29 -0800 (PST) MIME-Version: 1.0 From: Peng Yu Date: Sun, 2 Dec 2018 16:28:29 -0600 Message-ID: Subject: How to yield an error with zparseopts when non-matching options are seen? To: zsh-users Content-Type: text/plain; charset="UTF-8" In the following example, -b has not been defined as an option, but `zparseopts` return successfully. Is there a way to let it yield an error when it sees such a case? $ ./main.sh set -- -b -a x -a y zparseopts -D a:=bar echo $? 0 declare -p bar typeset -a bar=( ) declare -p argv typeset -a argv=( -b -a x -a y ) set -- -b -a x -a y zparseopts -D -E a:=bar declare -p bar typeset -a bar=( -a y ) declare -p argv typeset -a argv=( -b ) $ cat ./main.sh #!/usr/bin/env zsh # vim: set noexpandtab tabstop=2: set -v set -- -b -a x -a y zparseopts -D a:=bar echo $? declare -p bar declare -p argv set -- -b -a x -a y zparseopts -D -E a:=bar declare -p bar declare -p argv -- Regards, Peng