From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 19160 invoked from network); 20 Apr 2021 21:31:24 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 20 Apr 2021 21:31:24 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1618954284; b=syISM4GWH6i2Ah3Cs3XP05746gHu2xiYLj7okxKrBg979YOwP4VqB8htl+dXfwZz0J2pZ7u2AG xEYcdoLHsYiAqkoi/bkBJ1ReMZoEUK28SNJq+Pzm1TB4EjoME/sM4OkDsMPepassNYXjGTWTyM qWoyP48+M8QE+dYvB+f9rk0PiPLu+/6nyrKPWeTyNenfHvGHwjQWJEk74eMwuYoNw4y+duy6rC jn+XWLlhOb+ISmx5TwE9u/VfUO3IFw4pZ1ny8tcZf+/Xn4E2oYDWv+tRcxm5X/fFagyeMIfdqr pJZDABEOonEStkEp3xr67GHiTRblxXySeJZisXqkYPWupQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (out4-smtp.messagingengine.com) smtp.remote-ip=66.111.4.28; dkim=pass header.d=daniel.shahaf.name header.s=fm3 header.a=rsa-sha256; dkim=pass header.d=messagingengine.com header.s=fm2 header.a=rsa-sha256; dmarc=none header.from=daniel.shahaf.name; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1618954284; bh=/jJ7PLRNYKBHFZ7Ngjl7GsLNH9XoWkXY3LrONEGDpcg=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:In-Reply-To:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:DKIM-Signature:DKIM-Signature:DKIM-Signature; b=xBRHYdJaW4JYifPcWfi5/zwQttXl+P7KUEv7CiybVVSOde+3Cpe86Z3AWxj39XMnaXhevYAitA 8yN2OCk3+PnRPPu0kdjZABN47ImKzq0cpGj8TWbYhLdaxv6kmfL+g0+EWtQLCyE/Rh2UUkmYWh VcUN/ZD2IgYRtOqnw//Y6lI0YWoDMDHERIuhnn2GoKfAAlg46VtSDMjnIcL+CVt+TUIvGd8MC0 kDaYBTjOSvgkp3Lj4S8cd2ackkYX2pU48HVJlkRN2SxPwxj8wopndmnkUp/ZmCNBMuyh7gDq1/ H5hWf9qX6SRlFSFiqBZvUOFWnwC5OZTIEm3Wk9ZaxIy5XQ==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=Z6h1BQOqPgdI79C9JhBUkGLdVx8BhkhMjchjhou5Nmo=; b=RcgWcLRrXu2PzSC+0+WaYLt1ZS 7ILlT4VIjL6uW8Mvn8Er5+v5UEN2aXePbCIgBVRVTgeDm385NY/aCBinKkL9nWPRjhuJO0/fIV0f1 iVVTiL7pDj/25URvLfQIs68AXF62ROIVNiQc5Nyv+SpzO1DKWn552Sey/Lui6GwORNMRRsrSjjHht TeYWjYt4cCr4qa9hvi0laPeK096A7eyxQk/twvMkQe4NQrfPjQpPPqqacZdi64xfJRULpDOrMtWIz zefnGFTAyvWrWVJ9NKLgAhHDcuA1wtJlYsU3kXnp4UUvbLVNcdNapEYojzjWhW6TyQ4XRyjiW2Y65 YTKSzlTQ==; Received: from authenticated user by zero.zsh.org with local id 1lYxxr-000KEW-Rw; Tue, 20 Apr 2021 21:31:23 +0000 Authentication-Results: zsh.org; iprev=pass (out4-smtp.messagingengine.com) smtp.remote-ip=66.111.4.28; dkim=pass header.d=daniel.shahaf.name header.s=fm3 header.a=rsa-sha256; dkim=pass header.d=messagingengine.com header.s=fm2 header.a=rsa-sha256; dmarc=none header.from=daniel.shahaf.name; arc=none Received: from out4-smtp.messagingengine.com ([66.111.4.28]:32893) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_256_GCM_SHA384:256) id 1lYxxb-000JyG-7p; Tue, 20 Apr 2021 21:31:08 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 88C3B5C0059; Tue, 20 Apr 2021 17:31:06 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Tue, 20 Apr 2021 17:31:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= daniel.shahaf.name; h=date:from:to:cc:subject:message-id :references:mime-version:content-type:in-reply-to; s=fm3; bh=Z6h 1BQOqPgdI79C9JhBUkGLdVx8BhkhMjchjhou5Nmo=; b=GDA6fpqQvlj4EpdvEty RHJ59mvUaaa6O6kkOtDDfJ2EqjTUf6o6zjkgLbMRApwgQ9/hAU/xe7MsBrGM8zEH tKTlvWpWjHEANeeCzI3elOEfeucvFkSvapdMhq2iM5sekHXTZRvKVdyZPujZo8gR kso1pq45Vknj7NC2YxJUKaXs3ZxnM2/lWGHF/As5MOykjDMyn2w3dWkcy38ocygz uYCpbYhXdRBjqz0DOASLW4XK6js1CeFNPHiagnZpAccP6xYQ2Z/mUcjASoflff06 KwF2ND5pyTTUFzzzRR3pjaICDTjSnhdu24xPe/a9Bob8/3fupzF4t9sf+9s+xvKv gJg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=Z6h1BQ OqPgdI79C9JhBUkGLdVx8BhkhMjchjhou5Nmo=; b=vo13QpBAvy4s8NMD2EssKD brAKLNgTE46Pqmtq2+yeLCIR5s4wsal2Nu9LO4jpa/fT+7vXNzAVNxPv5zHa3SZu 9xVZzudgzPGAp3/3+EnBJ7BNn0NlKnwbSkwZEQnk09YAtX26/Svxkdi1Zpt4/NVB XSxUM66JUDpC9+4ypVOev1K9uCx5TYqh/HwwuSAd/PQdT/P27KDjMlvi4Wc5d2vo GLeN938x7Zx2JEDol9m3X33zAnhnwhfHnBKJwXFXb90UBwb0/e7EdgdTz+aqDOCT ntKAM7+pmM4ejcNNV50klYTvvZLCXWd2j7BBRVBPP7WOfreW4xUxSDJ3/QlCzNdg == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrvddtiedgudeihecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepfffhvffukfhfgggtuggjfgesth dttddttdervdenucfhrhhomhepffgrnhhivghlucfuhhgrhhgrfhcuoegurdhssegurghn ihgvlhdrshhhrghhrghfrdhnrghmvgeqnecuggftrfgrthhtvghrnhepueevkeefffeufe ehfefhgefffedviedthedtgeeljeelvdeihfevjeefteegvdeknecukfhppedutdelrdei iedrieefrddvfedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilh hfrhhomhepugdrshesuggrnhhivghlrdhshhgrhhgrfhdrnhgrmhgv X-ME-Proxy: Received: from tarpaulin.shahaf.local2 (bzq-109-66-63-230.red.bezeqint.net [109.66.63.230]) by mail.messagingengine.com (Postfix) with ESMTPA id CA6E81080063; Tue, 20 Apr 2021 17:31:05 -0400 (EDT) Received: by tarpaulin.shahaf.local2 (Postfix, from userid 1000) id 4FPxgr3yPdz36k; Tue, 20 Apr 2021 21:31:04 +0000 (UTC) Date: Tue, 20 Apr 2021 21:31:04 +0000 From: Daniel Shahaf To: dana Cc: Zsh hackers list , franciscodezuviria@gmail.com Subject: Re: [BUG] getopts OPTIND Message-ID: <20210420213104.GB1035@tarpaulin.shahaf.local2> References: <0877C4E8-4CA3-453F-A16B-99E576F60E8D@dana.is> <20210414130802.GF3882@tarpaulin.shahaf.local2> <1EB88C27-FA4E-4B1F-AEBD-15C2FFC21F95@dana.is> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1EB88C27-FA4E-4B1F-AEBD-15C2FFC21F95@dana.is> User-Agent: Mutt/1.10.1 (2018-07-13) X-Seq: 48630 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: dana wrote on Sun, Apr 18, 2021 at 00:16:52 -0500: > On 14 Apr 2021, at 08:08, Daniel Shahaf wrote: > > Some more cases to test: > > . > > t 0 > > t 1 foo > > t 1 -- foo > > t 1 -b > > . > > where -b doesn't take an argument. > > `t 0` doesn't test anything, the loop is just skipped. Yeah, but OPTIND still gets printed, so it does test *something*. > `t 1 -b` tests the same thing as `t 1 -w`, but i guess it's confusing > that i picked -a -w -e -r as the options; i've changed them to -a -b > -c -d. I've also added the two foo ones you suggested, as well as just > `t 1`. (All three behaved the same as other shells already) *nod* > +upon exit. (The tt(POSIX_BUILTINS) option disables this, and also changes > +the way the value is calculated to match other shells). tt(OPTARG) s/)./.)/ Cheers, Daniel > +++ b/Test/B10getopts.ztst > @@ -96,3 +96,32 @@ > done > 0:missing option-argument (quiet mode) > >:,x > + > + # This function is written so it can be easily referenced against other shells > + t() { > + local o i=0 n=$1 > + shift > + while [ $i -lt $n ]; do > + i=$(( i + 1 )) > + getopts a: o "$@" 2> /dev/null > + done > + printf '<%d>' "$OPTIND" > + } > + # Try all these the native way, then the POSIX_BUILTINS way > + for 1 in no_posix_builtins posix_builtins; do ( > + setopt $1 > + print -rn - "$1: " > + t 1 > + t 1 foo > + t 1 -- foo > + t 1 -a > + t 1 -b > + t 2 -a -b > + t 4 -a -b -c -d -a > + t 5 -a -b -c -a -b -c > + t 5 -a -b -c -d -ax -a > + print > + ); done > +0:OPTIND calculation with and without POSIX_BUILTINS (workers/42248) > +>no_posix_builtins: <1><1><2><1><1><3><5><7><6> > +>posix_builtins: <1><1><2><2><2><3><6><7><7> > >