Path: csiph.com!fu-berlin.de!usenet.stanford.edu!not-for-mail From: Eli Schwartz Newsgroups: gnu.bash.bug Subject: Re: echo builtin doesn't handle end-of-options flag Date: Sun, 16 Aug 2020 12:26:06 -0400 Lines: 107 Approved: bug-bash@gnu.org Message-ID: References: <737d2184-8b59-0eee-4c56-41f7a67d8f88@redhat.com> NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="xDHwhRsVP7GBwkD33sTX9Tc2BDmOZJ0NA" X-Trace: usenet.stanford.edu 1597595182 6190 209.51.188.17 (16 Aug 2020 16:26:22 GMT) X-Complaints-To: action@cs.stanford.edu To: bug-bash@gnu.org Envelope-to: bug-bash@gnu.org X-Spam-BL-Results: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=archlinux.org; s=orion; t=1597595169; bh=wjHtnQeLjSXmbp+0S+t9UagIkTQi64VTq+5ZQYSjNTk=; h=Subject:To:References:From:Date:In-Reply-To; b=P5S1JqKXx0IIxKqKzeveSVcSPiA0hwmwT/Jo+5Fr8SZqPM8FMzUvmxH9FrNce4zg9 rdwfIyrF+GjyKy5rh1PeqBhxTOyoxASL5YSX4lK7/zwD9+GOZnkO+6f7Vg0y0Pl2WM rf1/FPyxGiySypCFSLxpUMXdXkQIfq9TL7K3sm2sC9PH89z35nh9p3XGvYWRoA4QYn m7Lxpy/nBwbjbYI+hNW0St5fVCC0WDlXEGOwrT8vVe/RcoAM9tUFtOpPqM45eMvkAc NPKq/sLio8CBEQLrpsb6ol6Q8j3wgDdWGInMw2ps0F/E3CdLLpLZAXIJni/lQHcOHU wRwC8U7LetJ22FfjBC92x48uU4/7GgU4I8B0muDRqUPlSQKtX3LlO94m7WxWbfJu+t MKguTZE4mukxNAVylL1IUBS57xMD4MDkONkxfxIgRplAtI6ACHR1eGP252u3blYVyd 2KvoQU6SWsTBUJ9OdK1EBui1EUDgCburbyXDXvxTi1LN6v4S4x5Fx753x7bOBbTbBc oFJ1SDE5NeOhqlqdd7h9W6cGS8YFeAgF5s2JOewcJruIBlDWCaBikot1+915K7G7tB c8RyOKzqOY8GS/n8QZZI759GzrUHaUUiw83U2cBlhg6bASRzWcSnjMyHYwiI2dtHzc n3FW8LE6N56gAEIjiqsXPr5Y= X-Clacks-Overhead: GNU Terry Pratchett In-Reply-To: <737d2184-8b59-0eee-4c56-41f7a67d8f88@redhat.com> Received-SPF: pass client-ip=2a01:4f8:160:6087::1; envelope-from=eschwartz@archlinux.org; helo=orion.archlinux.org X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -53 X-Spam_score: -5.4 X-Spam_bar: ----- X-Spam_report: (-5.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bash@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Bug reports for the GNU Bourne Again SHell List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: X-Mailman-Original-References: <737d2184-8b59-0eee-4c56-41f7a67d8f88@redhat.com> Xref: csiph.com gnu.bash.bug:16759 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --xDHwhRsVP7GBwkD33sTX9Tc2BDmOZJ0NA Content-Type: multipart/mixed; boundary="UZMN0GDopboqDTiu5PweXl0YRnW70G68E" --UZMN0GDopboqDTiu5PweXl0YRnW70G68E Content-Type: text/plain; charset=utf-8 Content-Language: en-US-large Content-Transfer-Encoding: quoted-printable On 8/16/20 12:21 PM, Eric Blake wrote: > On 8/16/20 10:47 AM, Todd A. Jacobs wrote: >=20 >> Description: >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 The echo builtin acce= pts options, but does not seem to handle >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 `--` correctly as the= end of options. >=20 > The correct behavior for echo is described here: > https://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html > "The echo utility shall not recognize the "--" argument in the manner > specified by Guideline 10 of XBD Utility Syntax Guidelines; "--" shall > be recognized as a string operand." >=20 >> The expected behavior >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 would be for -- to be= removed, and any following flag-like >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 substrings printed as= -is. >=20 > Your expectations are wrong, they contradict what POSIX says. >=20 >> >> Repeat-By: >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo "-n"=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 # "" but expecting "-n" >=20 > POSIX says this one is implementation-defined; so whether -n is treated= > as an option or as a string to echo has to be documented by the > implementation (bash documents treating it as an option). Err... "Implementations shall not support any options." >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo -- -n foo=C2=A0=C2= =A0=C2=A0 # -- -n foo >=20 > POSIX says this has to output '-- -n foo' and a newline. -n wasn't > first, so you no longer have the implementation-defined behavior, but > well-defined. >=20 >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo -- "-n foo"=C2=A0= # -- -n foo >=20 > Also well-defined. >=20 > I see nothing in your report about bash disobeying POSIX, but rather > confusion on your part about what POSIX actually requires. bash does disobey POSIX, but not in the manner which the report specifies= =2E --=20 Eli Schwartz Arch Linux Bug Wrangler and Trusted User --UZMN0GDopboqDTiu5PweXl0YRnW70G68E-- --xDHwhRsVP7GBwkD33sTX9Tc2BDmOZJ0NA Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEvSewel70XCra9w4EhIGKaBmvSpsFAl85Xh4ACgkQhIGKaBmv SpuKVw/+NUzculgMYHC6+UnKQYamD3Yw8h/5NumoTDBeqLxiJvgbWCoeh+Isf1bA 3uRpbTd9pG8f3gn0X5fmR346j0nOe4miqF/efge4ZOfqebkqpl04koyXRrVIongX aZG+ncpExRHMLrtdjAfIrCWTBqg0ZLJHex7WEMhbjETR4053kKKbjbi1jdxsKSKo 9u6enz/7+yDblbi9YRBs7ZcTg7CfBnkSoC0y9qhkZZC/6Xzfl2ooPh29b4NgaOjf hB+yf8Hk0udbVY5p8DWHiV/jTJ2epSh1kOXxdu7ky0vpXPHuJAL5bQ2ZHxQngFzW z9TXFrI8ru6f2v1rEP8q8CqOCEVG6+VVqyz1EhQKFq1OXFyHULRELPk0Mt+ksMIx YeJ8Z/0aTtTc4LLZSposEEUJtISNwIea1rEXHUgQhOke6k3qDpChk1nvfoJBNMgH yzZTdTl5CV5ym1GYTsokKa+nsiDghjoPOIirNytdMpgJFQYjDUJWl31UFs8KtTqu Us0lG9JhDNm5O0aNd9PuZtpGSkstL8mclPN0dzoSFqtimeN4vvCv+LUDXoK8cyMW 6OxCQYRIzWFiuZhpR4G3k72V+nA5elaLdDkGIudkLeMnIGkNF/RzvgihFPKv1TdE cnFl7nGlZRXmcrTjDrkiXtBaTniIynTfXlghzpRKNoprpyOUQdCJAjMEAQEKAB0W IQRgQRMEwJ02YoNA7v/OsWfvtXIr1gUCXzleHgAKCRDOsWfvtXIr1o6uEAC9Le+D Xg8tsp+qsEfCwdd8M9DfGNGOxlLYSVysYYbI7oxKIV7SJLcxwhRAmdR/sHF2uX4p zP9sAueouKAF4lkJ6D2BrjsXmTyh+h74ECdDvOAZH2XuJaI7WsQYrh61heZCfZ0X bl0ZIliV/LxuzM7J/ttHwA4NundkW1j59Im2rSSEUBNkPMKR8hLcVxgRlQrEPAaX L1qC09xXxUY+FfSR3Eh9qMZ3ys6jTaTYA1COFM9Av5gZJwtz6Cic2S6gY1hY/wiv 2W1JIvKMXF6Deygq3/p+OfzeuOBonBJmecqg6CWTPqe7y3nk8+lcV8o5KjakKyZc K2PhSx39r6gnxpQCXOcdfyQndC6gFV/E18879uQRnKIS1CSElzc/oqo0nz5CtE1W l1FSgH1PK6BBAYDbwVDVIlQ6554KbJ/zHNHRUEguO5Jr+2BZwzJTZJzQYS8vpBTx HjqtEYqSGlj14gPFDmF46j6NdSxVkyWP2rDpH34i45UgKTDXPzzFFhONu3wWPhta JYDFjl3Yf3T63CR5JFCpUgG4L/52PunJlmIUvs7Uk3/mu35Y/+LWuG01M3wVc0Bb 9WwsaCuIpTCnq4J0F5hTNDZIiqoTITKpSi6mWGS+sj4LcSY+0iz4hLJUz5lLeZs+ x3z8US0ufeynCjieDyEWvmfd3HZVRnsvSn6AMg== =e7R5 -----END PGP SIGNATURE----- --xDHwhRsVP7GBwkD33sTX9Tc2BDmOZJ0NA--