A NOTE has been added to this issue. ====================================================================== http://austingroupbugs.net/view.php?id=1128 ====================================================================== Reported By: kre Assigned To: ====================================================================== Project: 1003.1(2013)/Issue7+TC1 Issue ID: 1128 Category: Shell and Utilities Type: Omission Severity: Objection Priority: normal Status: New Name: Robert Elz Organization: User Reference: Section: 1.1.2.1, 2.6.4 Page Number: 2331-3, 2358-9 Line Number: 74118-74162, 75225-75250 Interp Status: --- Final Accepted Text: ====================================================================== Date Submitted: 2017-03-17 01:08 UTC Last Modified: 2017-03-17 11:31 UTC ====================================================================== Summary: Where is the ',' (comma) operator ? ======================================================================
---------------------------------------------------------------------- (0003628) kre (reporter) - 2017-03-17 11:31 http://austingroupbugs.net/view.php?id=1128#c3628 ---------------------------------------------------------------------- Sorry, but ... With the current text, it is very clear that $((1,2)) is not specified, I disagree. Table 1-2 lists just about everything that is valid C (even the statements, that are not C expressions by any definition - it even includes goto) and, aside from ',', lists every plausible C expression operator that exists - sure unary '*' is missing, and if it is considered an operator binary '.' (personally I wouldn't consider it as such), and '[' (with its ']' companion (which is just a derivation of '*') but none of those are really applicable in any obvious way to sh (at least for shells that don't implement arrays, which are definitely an extension.) The only conclusion that I can draw from that is that ',' was just forgotten. Since it is not mentioned at all, it is hard to believe that it was deliberately omitted, were that the case, there would be an explanation in the rationale. Note that I did not ask that support for ',' be mandated, nor that it be forbidden (whether for locale issues or anything else) - specifying that, like ++ and --, support for it is unspecified would be just fine. But that statement should be explicit, as it is for ++ -- (and the, would be absurd, sizeof). Note that ** and a binary ~ operator, and various other possible extensions are quite different - none of those are standard C operators. Certainly it is not possible to list every possible newly invented character sequence which someone might implement as an operator, and state that support for that is undefined, but the standard should really list all the standard C expression operators (it could just omit the C statements though, they aren't expressions in (normal) C, and there's no reason to assume anyone would assume that sh $(( )) which defines itself as using C expressions, would for some bizarre reason permit "while..." or goto (where, labels are not in the list...) inside a $(( )). I don't think this is really the place for any extensive discussion of locale issues, so I will just avoid that here, though I will note as an aside that by "typical non-english based locale" Joerg really means "non-English European locale". kre Issue History Date Modified Username Field Change ====================================================================== 2017-03-17 01:08 kre New Issue 2017-03-17 01:08 kre Name => Robert Elz 2017-03-17 01:08 kre Section => 1.1.2.1, 2.6.4 2017-03-17 01:08 kre Page Number => 2331-3, 2358-9 2017-03-17 01:08 kre Line Number => 74118-74162, 75225-75250 2017-03-17 10:32 stephane Note Added: 0003623 2017-03-17 10:32 stephane Note Edited: 0003623 2017-03-17 10:59 joerg Note Added: 0003626 2017-03-17 11:30 stephane Note Added: 0003627 2017-03-17 11:31 kre Note Added: 0003628 ======================================================================