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.0 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,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 874d49ca for ; Mon, 3 Dec 2018 00:44:26 +0000 (UTC) Received: (qmail 13905 invoked by alias); 3 Dec 2018 00:44:13 -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: 23778 Received: (qmail 14373 invoked by uid 1010); 3 Dec 2018 00:44:13 -0000 X-Qmail-Scanner-Diagnostics: from mail-it1-f170.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.170):SA:0(-1.9/5.0):. Processed in 0.739434 secs); 03 Dec 2018 00:44:13 -0000 X-Envelope-From: dana@dana.is X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dana-is.20150623.gappssmtp.com; s=20150623; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=eEbsiMhMiU11BeUszxASTGMdPk+olezXCWbd91ukH50=; b=NADgVLqz+RygMyWMMzJ8E+sGZdkQRyE4bu2ZPBL1+7duiWvb+0qnTJsEiZISoJ6O5j QK5Xx5GrHIn/FD3SZVErjmHbv9DbKB5Tvke2PwW7v659Np6rU/jLFYFMUs/AID3RMQr0 biUaRuqID1rQWYDs5TWiId8G4sLmnKCEW7tpNJkrEv41lBQpo2VqZVC+180QlH9ZNi7O 4e00HMvYJLqaVH4uPqDENEmzWgfsKWFXhlrhSftTLfAvy2Ed9yW3OC+mVmKciIyQWWNV +AGIdqu+cLgET1x03j9OvJVxEQjuS0xOSFwCoLnYgZ8TMLOXclk+Ho2gmgYxzOEfnkLJ /g9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=eEbsiMhMiU11BeUszxASTGMdPk+olezXCWbd91ukH50=; b=nRbd7g/b+A52kic4rOHnH6LExtbqXW0C6hBSll7hVYS7iil3jt3aDO7ZKZOcC7QiwC QwmGWjswHEDj6J9r4F7IfseKHrMfJoPFNxfaxCMv8e9bYMELnmmTmcg4x6AuObsMJzCC 6VIj+566Onc+Am8xT0BBdjDomEOM2KEe1R7KK2p4RDyD9sgogN1yJUoijBiwlkcq79G4 QxQNOXU71aAun4XUsbJGkz3cf5CgbW92SBXvcBXrZrMKxBaGMWXEUftX/wHIs9M6Owkm M9Nq2E8aTh2EvyhE9SHyFwVD4Kb7YWIQnyqbeeSBjImqdjUzu9sZ9NJQLZstA1V1sPrX A3jA== X-Gm-Message-State: AA+aEWb/jKcpkSKUlhP2tDVi/0d0MiaEYp+ltvovc8FEEm0EQHqnVD8e V66JkN8q/vVrTA4zeZ3pegSTMftYYs8= X-Google-Smtp-Source: AFSGD/Vn9+RNpEPLQKvHMlwdhkX8R6i1QS1f+86BbsP6hSn2plmOVyT8BuvquEngx8fFSZFx5FmI+A== X-Received: by 2002:a24:220c:: with SMTP id o12-v6mr5508574ito.2.1543797850410; Sun, 02 Dec 2018 16:44:10 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.0 \(3445.100.39\)) Subject: Re: How to yield an error with zparseopts when non-matching options are seen? From: dana In-Reply-To: <632A7107-E065-4C04-B3F1-6362245F1518@dana.is> Date: Sun, 2 Dec 2018 18:44:09 -0600 Cc: zsh-users Content-Transfer-Encoding: quoted-printable Message-Id: <37DC5076-9D9D-4FC2-AB3D-9691CBF70899@dana.is> References: <632A7107-E065-4C04-B3F1-6362245F1518@dana.is> To: Peng Yu X-Mailer: Apple Mail (2.3445.100.39) On 2 Dec 2018, at 18:13, dana wrote: >Not that i know of. If it didn't swallow up `--` you could check to see = if the >first element remaining in argv is any other string beginning with a = hyphen After i hit send it occurred to me that you can deal with this if you = use -E, but you'll have to do a second pass yourself to catch any bad options = that it leaves behind: myfunc() { local i local -a opts zparseopts -D -E -a opts a b: c print -r "options: $opts" for (( i =3D 1; i <=3D $#; i++ )); do [[ $argv[i] =3D=3D (-|--) ]] && { argv[i]=3D() break } [[ $argv[i] =3D=3D -* ]] && { print -ru2 "bad option: $argv[i]" return 1 } done print -r "operands: $*" } I *think* that handles everything...? dana