Minutes of the 6th January 2022 Teleconference Austin-1188 Page 1 of 1 Submitted by Andrew Josey, The Open Group. 7th January 2022 Attendees: Nick Stoughton, Logitech/USENIX, ISO/IEC JTC 1/SC 22 OR Don Cragun, IEEE PASC OR Mark Ziegast, SHware Systems Dev. Andrew Josey, The Open Group Eric Ackermann, HPI, University of Potsdam Eric Blake, Red Hat, The Open Group OR Tom Thompson, IEEE Rob Landley Geoff Clare, The Open Group * General news This was the first call of 2022. This was a call dedicated to general bugs. Andrew noted he had fixed an issue with the download bundles which for some formats had been empty. * Outstanding actions None * Current Business Bug 1521: here document processing is underspecified Dup of 1036 https://austingroupbugs.net/view.php?id=1521 Bug 1036: Errors/Omissions in specification of here document redirection Accepted as Marked https://austingroupbugs.net/view.php?id=1036 This item is tagged for TC3-2008 This resolves this bug and the related bugs 0001043 and 0001521. On 2018 edition page 2347 line 74748 section 2.3, change: When an io_here token has been recognized by the grammar (see [xref to 2.10]), one or more of the subsequent lines immediately following the next NEWLINE token form the body of one or more here-documents and shall be parsed according to the rules of [xref to 2.7.4]. to: When an io_here token has been recognized by the grammar (see [xref to 2.10]), one or more of the subsequent lines immediately following the next NEWLINE token form the body of a here-document and shall be parsed according to the rules of [xref to 2.7.4]. Any non-NEWLINE tokens (including more io_here tokens) that are recognized while searching for the next NEWLINE token shall be saved for processing after the here-document has been parsed. If a saved token is an io_here token, the corresponding here-document shall start on the line immediately following the line containing the trailing delimiter of the previous here-document. If any saved token includes a character, the behavior is unspecified. On 2018 edition page 2348 line 74774 section 2.3, after: While processing the characters, if instances of expansions or quoting are found nested within the substitution, the shell shall recursively process them in the manner specified for the construct that is found. append: For "$(" and '`' only, if instances of io_here tokens are found nested within the substitution, they shall be parsed according to the rules of [xref to 2.7.4]; if the terminating ')' or '`' of the substitution occurs before the NEWLINE token marking the start of the here-document, the behavior is unspecified. On 2018 edition page 2362 line 75355 section 2.7.4, change: The here-document shall be treated as a single word that begins after the next and continues until there is a line containing only the delimiter and a , with no characters in between. Then the next here-document starts, if there is one. to: The here-document shall be treated as a single word that begins after the next NEWLINE token and continues until there is a line containing only the delimiter and a , with no characters in between. Then the next here-document starts, if there is one. For the purposes of locating this terminating line, the end of a command_string operand (see [xref to sh]) shall be treated as a character, and the end of the commands string in $(commands) and `commands` may be treated as a . If the end of input is reached without finding the terminating line, the shell should, but need not, treat this as a redirection error. On 2018 edition page 2362 line 75363 section 2.7.4, change: It is unspecified whether the file descriptor is opened as a regular file, a special file, or a pipe. to: It is unspecified whether the file descriptor is opened as a regular file or some other type of file. On 2018 edition page 2362 line 75366 section 2.7.4, change: If any part of word is quoted, the delimiter shall be formed by performing quote removal on word, and the here-document lines shall not be expanded. Otherwise, the delimiter shall be the word itself. If no part of word is quoted, all lines of the here-document shall be expanded for parameter expansion, command substitution, and arithmetic expansion. In this case, the in the input behaves ... to: If any part of word is quoted, not counting double-quotes outside a command substitution if the here-document is inside one, the delimiter shall be formed by performing quote removal on word, and the here-document lines shall not be expanded. Otherwise: The delimiter shall be the word itself. The removal of for line continuation (see [xref to 2.2.1]) shall be performed during the search for the trailing delimiter. (As a consequence, the trailing delimiter is not recognized immediately after a that was removed by line continuation.) It is unspecified whether the line containing the trailing delimiter is itself subject to this line continuation. All lines of the here-document shall be expanded, when the redirection operator is evaluated but after the trailing delimiter for the here-document has been located, for parameter expansion, command substitution, and arithmetic expansion. If the redirection operator is never evaluated (because the command it is part of is not executed), the here-document shall be read without performing any expansions. Any characters in the input shall behave ... (As per Note: 0003097, no special mention of \" needs to be made here because 2.2.3 says "that would otherwise be considered special".) On 2018 edition page 2362 line 75374 section 2.7.4, change: all leading characters shall be stripped from input lines and the line containing the trailing delimiter. to: all leading characters shall be stripped from input lines after line continuation (when it applies) has been performed, and from the line containing the trailing delimiter. Stripping of leading characters shall occur as the here-document is read from the shell input (and consequently does not affect any characters that result from expansions). Cross-volume changes to XRAT ... On 2018 edition page 3736 line 128241 section C.2.7.4, insert a new paragraph: Historical shell behavior was to treat the end of input as being equivalent to the delimiter of a here-document, terminating the here-document, usually without any indication, and continuing as if the delimiter had been recognized. This can cause problems where the delimiter had been intended to occur much earlier in the script, but was incorrectly entered - a mistake which for many other errors would have resulted in a syntax error, and an aborted script, instead simply generates incorrect results. Because of this some shell implementations have changed to reporting an undelimited here-document as a syntax error. Other implementations are encouraged to do the same. Bug 1043: Which newline starts collection of here document data? Dup of 1036 https://austingroupbugs.net/view.php?id=1043 Bug 1522: mkdir() and S_ISVTX Accepted https://austingroupbugs.net/view.php?id=1522 This issue is tagged for TC3-2008. Next Steps ---------- The next calls are on: Thu 2022-01-10 (gettext) Thu 2022-01-13 (general bugs) The calls are for 90 minutes Calls are anchored on US time. (8am Pacific) Please check the calendar invites for dial in details. Bugs are at: https://austingroupbugs.net An etherpad is usually up for the meeting, with a URL using the date format as below: https://posix.rhansen.org/p/20xx-mm-dd (For write access this uses The Open Group single sign on, for those individuals with gitlab.opengroup.org accounts. Please contact Andrew if you need to be setup)