Path: csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail From: Chet Ramey Newsgroups: gnu.bash.bug Subject: Re: Incorrect option processing in builtin printf(1) Date: Mon, 22 Jul 2019 16:16:55 -0400 Lines: 50 Approved: bug-bash@gnu.org Message-ID: References: <201907221756.x6MHuxaR019063@jinx.noi.kre.to> Reply-To: chet.ramey@case.edu NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Trace: usenet.stanford.edu 1563826640 10591 209.51.188.17 (22 Jul 2019 20:17:20 GMT) X-Complaints-To: action@cs.stanford.edu Cc: chet.ramey@case.edu To: kre@munnari.OZ.AU, bug-bash@gnu.org Envelope-to: bug-bash@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=case.edu; s=smtp-primary; t=1563826632; bh=y+tackX5/4dPC98okvUxesKbTyA6mOnpZKr5BPrYFLo=; h=Reply-To:Cc:Subject:To:References:From:Message-ID:Date: MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=y6j33nXC44pzehexj4Lg5EnfuL8FwLL7PCEurgdJHhrtBvXkthzeausqu9pjn7Rzml RAfT6ecYYVCnSZXxyXxIZw+kqV+xADJHmvLK5f/wx9jPWxZLqasqQA/uHpkK8WcPNj6 c0GCq28X9xp3oo5fieQjXVNoZg4holK/l9lwjBTThx2i01ojptZzXWwz7/qoDVax4yZ 8XmYB+bg4KwJHaCgUIJLvMOWwJe+4btNXjbxzmHvAtzrwnUW+jFvpooOdUaF1hx1kRL ipnnrf/P6Ez2RrrfA65bBWOL4y5UZlKqTaLIImx/NCxyTGjVOHqRPDVFqpUI3M+BLgh RuyLQZCA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=case.edu; s=smtp-primary; t=1563826625; bh=EvfP4svre1M5O/WKw3MqpqaE3MXKHo9euiDMRbN0Rv4=; h=Reply-To:Cc:Subject:To:References:From:Message-ID:Date: MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=hvldUzf+488DJALyAO0MvfSUKtWHXaO7AkBbPbkLuHQMtJdVUbKBUUb4gOu1N0fL3u GHbUecI5ob6UmWs57ymoQnEGYIWjyZNiXtbnMNTI72RwVGxXMpdV3XANOCTw2b40SBn aso9gQby14u/wUpocNtRanlDiCX1jfCdgD7XQUQL50A0u3YSZiiugOjHeFq9YqMwL8D PzJWEl81hvmWHwNYqYMyrSJgvP9nGfAYvyfp7X1uDth6obIo9ILgtmBPPlOSZEJuX4Q 5iQvZ48RmFB1HFWFo1kTru+IdK4y+QsUpFy9SvdQmXpALHFOf4tP3lvSeS3E4Asa5+g 1aIAFxsg== Openpgp: preference=signencrypt Autocrypt: addr=chet.ramey@case.edu; prefer-encrypt=mutual; keydata= xsDiBEEOsGwRBACFa0A1oa71HSZLWxAx0svXzhOZNQZOzqHmSuGOG92jIpQpr8DpvgRh40Yp AwdcXb8QG1J5yGAKeevNE1zCFaA725vGSdHUyypHouV0xoWwukYO6qlyyX+2BZU+okBUqoWQ koWxiYaCSfzB2Ln7pmdys1fJhcgBKf3VjWCjd2XJTwCgoFJOwyBFJdugjfwjSoRSwDOIMf0D /iQKqlWhIO1LGpMrGX0il0/x4zj0NAcSwAk7LaPZbN4UPjn5pqGEHBlf1+xDDQCkAoZ/VqES GZragl4VqJfxBr29Ag0UDvNbUbXoxQsARdero1M8GiAIRc50hj7HXFoERwenbNDJL86GPLAQ OTGOCa4W2o29nFfFjQrsrrYHzVtyA/9oyKvTeEMJ7NA3VJdWcmn7gOu0FxEmSNhSoV1T4vP2 1Wf7f5niCCRKQLNyUy0wEApQi4tSysdz+AbgAc0b/bHYVzIf2uO2lIEZQNNt+3g2bmXgloWm W5fsm/di50Gm1l1Na63d3RZ00SeFQos6WEwLUHEB0yp6KXluXLLIZitEJM0gQ2hldCBSYW1l eSA8Y2hldC5yYW1leUBjYXNlLmVkdT7CYQQTEQIAIQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIX gAUCRX3FIgIZAQAKCRC7WGnwZOp0q069AKCNDRn+zzN/AHbaynls/Lvq1kH/RQCgkLvF8bDs maUHSxSIPqzlGuKWDxbOwE0EQQ6wbxAEAJCukwDigRDPhAuI+lf+6P64lWanIFOXIndqhvU1 3cDbQ/Wt5LwPzm2QTvd7F+fcHOgZ8KOFScbDpjJaRqwIybMTcIN0B2pBLX/C10W1aY+cUrXZ gXUGVISEMmpaP9v02auToo7XXVEHC+XLO9IU7/xaU98FL69l6/K4xeNSBRM/AAMHA/wNAmRB pcyK0+VggZ5esQaIP/LyolAm2qwcmrd3dZi+g24s7yjV0EUwvRP7xHRDQFgkAo6++QbuecU/ J90lxrVnQwucZmfz9zgWDkT/MpfB/CNRSKLFjhYq2yHmHWT6vEjw9Ry/hF6Pc0oh1a62USdf aKAiim0nVxxQmPmiRvtCmcJJBBgRAgAJBQJBDrBvAhsMAAoJELtYafBk6nSr43AAn2ZZFQg8 Gs/zUzvXMt7evaFqVTzcAJ0cHtKpP1i/4H4R9+OsYeQdxxWxTQ== User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 In-Reply-To: <201907221756.x6MHuxaR019063@jinx.noi.kre.to> Content-Language: en-US X-Junkmail-Status: score=7/90, host=mpv1-2015.case.edu X-Junkmail-PrAS-Raw: score=7/90, refid=2.7.2:2019.7.22.193016:17:7.944, ip=, rules=DKIM_SIGNATURE, __HAS_REPLYTO, __HAS_CC_HDR, __SUBJ_REPLY, __BOUNCE_CHALLENGE_SUBJ, __BOUNCE_NDR_SUBJ_EXEMPT, __TO_MALFORMED_2, __TO_NO_NAME, __HAS_REFERENCES, __REFERENCES, __HAS_FROM, FROM_EDU_TLD, __HAS_MSGID, __SANE_MSGID, DATE_TZ_NA, __USER_AGENT, __MOZILLA_USER_AGENT, __MIME_VERSION, __IN_REP_TO, __CT, __CT_TEXT_PLAIN, __CTE, __REPLYTO_SAMEAS_FROM_ADDY, __REPLYTO_SAMEAS_FROM_ACC, __FROM_DOMAIN_IN_ANY_CC1, __FROM_DOMAIN_IN_ANY_CC2, __REPLYTO_SAMEAS_FROM_DOMAIN, __DKIM_ALIGNS_1, __DKIM_ALIGNS_2, __ANY_URI, __URI_WITH_PATH, __URI_NO_WWW, __CP_URI_IN_BODY, __SUBJ_ALPHA_NEGATE, __MULTIPLE_URI_TEXT, __URI_IN_BODY, __URI_NOT_IMG, __FORWARDED_MSG, __BODY_NO_MAILTO, __NO_HTML_TAG_RAW, BODYTEXTP_SIZE_3000_LESS, BODY_SIZE_2000_2999, __MIME_TEXT_P1, __MIME_TEXT_ONLY, __URI_NS, HTML_00_01, HTML_00_10, DKIM_ALIGNS, BODY_SIZE_5000_LESS, IN_REP_TO, [TRUNCATED], so=2010-03-03 19:42:08, dmn=2016-08-03-0138 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 129.22.103.226 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: <201907221756.x6MHuxaR019063@jinx.noi.kre.to> Xref: csiph.com gnu.bash.bug:15204 On 7/22/19 1:56 PM, kre@munnari.OZ.AU wrote: > Configuration Information [Automatically generated, do not change]: > Machine: x86_64 > OS: netbsd > Compiler: gcc > Compilation CFLAGS: -O2 -D_FORTIFY_SOURCE=2 -I/usr/include -Wno-parentheses -Wno-format-security > uname output: NetBSD jinx.noi.kre.to 8.99.30 NetBSD 8.99.30 (1.1-20190114) #9: Mon Jan 14 13:29:08 ICT 2019 kre@onyx.coe.psu.ac.th:/usr/obj/testing/kernels/amd64/JINX amd64 > Machine Type: x86_64--netbsd > > Bash Version: 5.0 > Patch Level: 7 > Release Status: release > > Description: > POSIX specifies that printf(1) has no options, and by not > specifying that it is intended to comply with XBD 12.2 effectivly > says that it is not. That is, in printf, the first arg is > always the format string, whatever it contains. > > So > printf --- should print three - chars to stdout > printf -%d 3 should print -3 to stdout > those do not work in bash (nor do any similar cases), even when bash > is in posix mode. No. POSIX allows additional options as extensions, even when the syntax description OPTIONS section says "None." ("need not" is not the same as "must not"). Conforming applications are required to use `--' before any operands that begin with a dash: "The requirement for recognizing "--" is because conforming applications need a way to shield their operands from any arbitrary options that the implementation may provide as an extension. For example, if the standard utility foo is listed as taking no options, and the application needed to give it a pathname with a leading , it could safely do it as: foo -- -myfile and avoid any problems with -m used as an extension." http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap01.html#tag_17_04 Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/