A NOTE has been added to this issue. ====================================================================== https://austingroupbugs.net/view.php?id=1785 ====================================================================== Reported By: kre Assigned To: ====================================================================== Project: Issue 8 drafts Issue ID: 1785 Category: Shell and Utilities Type: Error Severity: Objection Priority: normal Status: New Name: Robert Elz Organization: User Reference: Section: XCU 2.9.1.1 Page Number: 2483 Line Number: 80766-80778, 80790-80792 Final Accepted Text: ====================================================================== Date Submitted: 2023-10-28 04:09 UTC Last Modified: 2024-01-04 16:54 UTC ====================================================================== Summary: Conflict in specification of processing of declaration utilities ====================================================================== Relationships ID Summary ---------------------------------------------------------------------- related to 0001535 Poor description of declaration (all re... related to 0001393 'command' should not be treated as a de... related to 0000351 certain shell special built-ins should ... ======================================================================
---------------------------------------------------------------------- (0006614) geoffclare (manager) - 2024-01-04 16:54 https://austingroupbugs.net/view.php?id=1785#c6614 ---------------------------------------------------------------------- On page 2483 line 80766 section 2.9.1.1, change:<blockquote>The first word (if any) that is not a variable assignment or redirection shall be expanded. If any fields remain following its expansion, the first field shall be considered the command name. If no fields remain, the next word (if any) shall be expanded, and so on, until a command name is found or no words remain. If there is a command name and it is recognized as a declaration utility, then any remaining words after the word that expanded to produce the command name, that would be recognized as a variable assignment in isolation, shall be expanded as a variable assignment (tilde expansion after the first <equals-sign> and after any unquoted <colon>, parameter expansion, command substitution, arithmetic expansion, and quote removal, but no field splitting or pathname expansion); while remaining words that would not be a variable assignment in isolation shall be subject to regular expansion (tilde expansion for only a leading <tilde>, parameter expansion, command substitution, arithmetic expansion, field splitting, pathname expansion, and quote removal). For all other command names, words after the word that produced the command name shall be subject only to regular expansion. All fields resulting from the expansion of the word that produced the command name and the subsequent words, except for the field containing the command name, shall be the arguments for the command.</blockquote>to:<blockquote>The first word (if any) that is not a variable assignment or redirection, and any subsequent words, shall be processed as follows:<ol> <li>The first word may be matched lexically against the names of declaration utilities.</li> <li>The first word shall be expanded.</li> <li>If any fields remain following expansion of the first word, the first field shall be considered the command name. If no fields remain, the next word (if any) shall be expanded, and so on, until a command name is found or no words remain.</li> <li>If the above optional matching against the names of declaration utilities was not performed and there is a command name, the command name shall be matched lexically against the names of declaration utilities.</li> <li>If whichever of the matching operations that was performed produced a successful match, any remaining words after the word that expanded to produce the command name, that would be recognized as a variable assignment in isolation, shall be expanded as a variable assignment (tilde expansion after the first <equals-sign> and after any unquoted <colon>, parameter expansion, command substitution, arithmetic expansion, and quote removal, but no field splitting or pathname expansion); while remaining words that would not be a variable assignment in isolation shall be subject to regular expansion (tilde expansion for only a leading <tilde>, parameter expansion, command substitution, arithmetic expansion, field splitting, pathname expansion, and quote removal). If the matching operation did not produce a successful match, words after the word that produced the command name shall be subject only to regular expansion.</li> <li>All fields resulting from the expansion of the word that produced the command name and the subsequent words, except for the field containing the command name, shall be the arguments for the command.</li> </ol>[Note to the editor: use letters a, b, c, etc. for the above list.]</blockquote> On page 2483 line 80790 section 2.9.1.1, delete:<blockquote>When determining whether a command name is a declaration utility, an implementation may use only lexical analysis. It is unspecified whether assignment context will be used if the command name would only become recognized as a declaration utility after word expansions.</blockquote> Issue History Date Modified Username Field Change ====================================================================== 2023-10-28 04:09 kre New Issue 2023-10-28 04:09 kre Name => Robert Elz 2023-10-28 04:09 kre Section => XCU 2.9.1.1 2023-10-28 04:09 kre Page Number => 2483 2023-10-28 04:09 kre Line Number => 80766-80778, 80790-80792 2023-10-28 05:48 kre Note Added: 0006557 2023-10-28 06:27 Don Cragun Relationship added related to 0001535 2023-10-28 06:28 Don Cragun Relationship added related to 0001393 2023-10-28 06:30 Don Cragun Relationship added related to 0000351 2023-10-30 14:07 chet_ramey Note Added: 0006559 2023-12-11 15:37 geoffclare Note Added: 0006597 2023-12-11 23:19 kre Note Added: 0006601 2023-12-18 16:54 shware_systems Note Added: 0006612 2024-01-04 16:54 geoffclare Note Added: 0006614 ======================================================================
