Minutes of the 27th November 2023 Teleconference Austin-1364 Page 1 of 1
Submitted by Andrew Josey, The Open Group. 28th November 2023
Attendees:
Nick Stoughton, Logitech/USENIX, ISO/IEC JTC 1/SC 22 OR
Don Cragun, IEEE PASC OR
Eric Blake, Red Hat, The Open Group OR
Eric Ackermann, HPI, University of Potsdam
Mark Ziegast, SHware Systems Dev.
Andrew Josey, The Open Group
Ahmet Acar
Apologies
Geoff Clare, The Open Group
Tom Thompson, IEEE
* General news
Andrew noted that the action below to issue a status report is still open.
We discussed the need for a general status report to be issued,
describing where we are in the draft schedule and the cutoff for
content to be considered into Issue 8.
AI:Andrew to draft status report.
* Current Business
Note for issue resolution all items are tagged for Issue 8 unless
noted otherwise or disposition is reject or duplicate.
Bug 1777: inaccuracy in find example 10 Accepted as Marked.
https://austingroupbugs.net/view.php?id=1777
This item is tagged for TC3-2008
Change on P2924 line 97768 (find EXAMPLES):
searches the file hierarchy for files of size 100 000 KiB or larger
to:
searches the file hierarchy for files of size larger than 100 000 KiB
Change on P2924, L97770 (find EXAMPLES):
find / -path /media -prune -o -size +199999 -print
to:
find / −path /media −prune −o −size +200000 −print
Bug 1778: The read utility needs field splitting updates/corrections )and a little more) Accepted as Marked
https://austingroupbugs.net/view.php?id=1778
On page 3291 line 111859 section read, change:
By default, unless the -r option is specified, shall
act as an escape character. An unescaped shall
preserve the literal value of the following character, with the
exception of ...
to:
If the -r option is not specified, shall act as an
escape character. An unescaped shall preserve the
literal value of a following and shall prevent a
following byte (if any) from being used to split fields, with
the exception of ...
On page 3291 line 111869 section read, replace the paragraph beginning
The terminating logical line delimiter
and continuing down past the three bullet points to line 11878
(inclusive) with the following:
The terminating logical line delimiter (if any) shall be removed
from the input. Then if the shell variable IFS (see [xref XCU
2.5.3]) is set, and its value is an empty string, the resulting
data shall be assigned to the variable named by the first var
operand, and the variables named by other var operands (if any)
shall be set to the empty string. No other processing shall be
performed in this case.
If IFS is unset, or is set to any non-empty value, then a
modified version of the field splitting algorithm specified in
[xref XCU 2.6.5] shall be applied, with the modifications as
follows:
The input to the algorithm shall be the logical line (minus
terminating delimiter) that was read from standard input,
and shall be considered as a single initial field, all of
which resulted from expansions, with any escaped byte and
the preceding escape character treated as if
they were the result of a quoted expansion, and all other
bytes treated as if they were the results of unquoted
expansions.
The loop over the contents of that initial field shall cease
when either the input is empty or n output fields have been
generated, where n is one less than the number of var
operands passed to the read utility. Any remaining input
in the original field being processed shall be returned to
the read utility ``unsplit''; that is, unmodified except
that any leading or trailing IFS white space, as defined
in [xref to XCU 2.6.5], shall be removed.
The specified var operands shall be processed in the order they
appear on the command line, and the output fields generated by
the field splitting algorithm shall be used in the order they
were generated, by repeating the following checks until neither
is true:
If more than one var operand is yet to be processed and one
or more output fields are yet to be used, the variable named
by the first unprocessed var operand shall be assigned the
value of the first unused output field.
If exactly one var operand is yet to be processed and there
was some remaining unsplit input returned from the modified
field splitting algorithm, the variable named by the
unprocessed var operand shall be assigned the unsplit input.
If there are still one or more unprocessed var operands, each
of the variables names by those operands shall be assigned an
empty string.
Note that in the case where just one var operand is given on
the read command line, the modified field splitting algorithm
ceases after producing zero output fields and simply returns
the original input field, with any leading and trailing IFS
white space removed, as unsplit input. This unsplit input is
assigned to the variable named by the var operand.
On page 3292 line 111900 section read (OPERANDS), after:
The name of an existing or nonexisting shell variable.
append:
If a var operand names the variable IFS, the behavior is
unspecified.
If a var operand names one of the variables LANG, LC_CTYPE,
or LC_ALL and the new value assigned to the variable would
change how the bytes in IFS form characters, or which
characters in IFS are considered to be IFS white space (see
[xref XCU 2.6.5]), it is unspecified what effects, if any,
the change has on how read performs field splitting.
On page 3292 line 111902 section read (STDIN), change:
If the -d delim option is not specified, or if it is specified
and delim consists of one single-byte character, the standard
input shall contain zero or more characters and shall not contain
any null bytes.
to:
If the -d delim option is not specified, or if it is specified
and delim is not the null string, the standard input shall
contain zero or more bytes (which need not form valid characters)
and shall not contain any null bytes.
On page 3293 line 111959 section read (APPLICATION USAGE), change:
When the current locale is not the C or POSIX locale, pathnames
can contain bytes that do not form part of a valid character,
and therefore portable applications need to ensure that the
current locale is the C or POSIX locale when using read with
arbitrary pathnames as input. (If IFS is not set to the null
string this applies even when using -d "", because the field
splitting performed by read is a character-based operation.)
When reading a pathname it is also inadvisable ...
to:
When reading a pathname it is inadvisable ...
After page 3293 line 111967 section read (APPLICATION USAGE), add:
Since the var operands are processed in the order specified on
the command line, if any variable name is specified more than
once as a var operand, the last assignment made is the one that
is in effect when read returns, including when an empty string
is assigned because no field data was available.
On page 3293, lines 111979-111980, change:
Since read affects the current shell execution environment, it
is generally provided as a shell |regular built-in.
to:
Since read affects the current shell execution environment, it
is required to be intrinsic.
Next Steps
----------
We will start on bug 1787 next time.
The next call is on:
Thu 2023-11-30 (Zoom meeting - general bugs/ballot resolution)
Mon 2023-12-04 (Zoom meeting - general bugs/ballot resolution)
The calls are for 90 minutes
Calls are anchored on US time. (8am Pacific)
Please check the calendar invites for dial in details.
Apologies in advance:
Andrew Josey, 2023-11-30
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)