<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coreutils/NEWS, branch v9.2</title>
<subtitle>Mirror of https://https.git.savannah.gnu.org/git/coreutils.git/
</subtitle>
<id>https://git.shady.money/coreutils/atom?h=v9.2</id>
<link rel='self' href='https://git.shady.money/coreutils/atom?h=v9.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/coreutils/'/>
<updated>2023-03-20T13:44:36Z</updated>
<entry>
<title>version 9.2</title>
<updated>2023-03-20T13:44:36Z</updated>
<author>
<name>Pádraig Brady</name>
<email>P@draigBrady.com</email>
</author>
<published>2023-03-20T13:44:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/coreutils/commit/?id=df4e4fbc7d4605b7e1c69bff33fd6af8727cf1bf'/>
<id>urn:sha1:df4e4fbc7d4605b7e1c69bff33fd6af8727cf1bf</id>
<content type='text'>
* NEWS: Record release date.
</content>
</entry>
<entry>
<title>ls: --color: honor separate sequences for extension cases</title>
<updated>2023-03-13T16:20:38Z</updated>
<author>
<name>Pádraig Brady</name>
<email>P@draigBrady.com</email>
</author>
<published>2022-09-04T18:59:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/coreutils/commit/?id=47988fad885e8129f9dc36f0ed4d63375de23603'/>
<id>urn:sha1:47988fad885e8129f9dc36f0ed4d63375de23603</id>
<content type='text'>
Following on from commit v8.29-45-g24053fbd8 which unconditionally
used case insensitive extension matching, support selective
case sensitive matching when there are separate extension cases
defined with different display sequences.

* src/dircolors.hin: Document how file name suffixes are matched.
Note this is displayed with `dircolors --print-database` which
the texi info recommends to use for details.
* src/ls.c (parse_ls_color): Postprocess the list to
mark entries for case sensitive matching,
and also adjust so that unmatchable entries are more quickly ignored.
(get_color_indicator): Use exact matching rather than
case insensitive matching if so marked.
* tests/ls/color-ext.sh: Add test cases.
* NEWS: Mention the change in behavior.
Addresses https://bugs.gnu.org/33123
</content>
</entry>
<entry>
<title>tee: support non blocking outputs</title>
<updated>2023-03-08T18:32:05Z</updated>
<author>
<name>Pádraig Brady</name>
<email>P@draigBrady.com</email>
</author>
<published>2023-03-05T15:51:32Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/coreutils/commit/?id=16000805eb1bcdf25360471b8bbc8ec3f025e035'/>
<id>urn:sha1:16000805eb1bcdf25360471b8bbc8ec3f025e035</id>
<content type='text'>
Non blocking outputs can be seen for example
when piping telnet through tee to a terminal.
In that case telnet sets its input to nonblocking mode,
which results in tee's output being nonblocking,
in which case in may receive an EAGAIN error upon write().
The same issue was seen with mpirun.
The following can be used to reproduce this
locally at a terminal (in most invocations):

  $ { dd iflag=nonblock count=0 status=none;
      dd bs=10K count=10 if=/dev/zero status=none; } |
    tee || echo fail &gt;/dev/tty

* src/iopoll.c (iopoll_internal): A new function refactored from
iopoll(), to also support a mode where we check the output
descriptor is writeable.
(iopoll): Now refactored to just call iopoll_internal().
(fwait_for_nonblocking_write): A new internal function which
uses iopoll_internal() to wait for writeable output
if an EAGAIN or EWOULDBLOCK was received.
(fwrite_nonblock): An fwrite() wrapper which uses
fwait_for_nonblocking_write() to handle EAGAIN.
(fclose_nonblock): Likewise.
src/iopoll.h: Add fclose_nonblock, fwrite_nonblock.
src/tee.c: Call fclose_nonblock() and fwrite_nonblock wrappers,
instead of the standard functions.
* tests/misc/tee.sh: Add a test case.
* NEWS: Mention the improvement.

The idea was suggested by Kamil Dudka in
https://bugzilla.redhat.com/1615467
</content>
</entry>
<entry>
<title>doc: remove redundant NEWS entry</title>
<updated>2023-03-08T18:28:06Z</updated>
<author>
<name>Pádraig Brady</name>
<email>P@draigBrady.com</email>
</author>
<published>2023-03-08T18:28:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/coreutils/commit/?id=176b74f0e7360d94450c5aa3cf7db2ab86ed28c8'/>
<id>urn:sha1:176b74f0e7360d94450c5aa3cf7db2ab86ed28c8</id>
<content type='text'>
* NEWS: There was no bug on macOS,
and the split -n new feature is documented already.
</content>
</entry>
<entry>
<title>split: support split -n on larger pipe input</title>
<updated>2023-03-07T21:41:46Z</updated>
<author>
<name>Paul Eggert</name>
<email>eggert@cs.ucla.edu</email>
</author>
<published>2023-03-07T20:58:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/coreutils/commit/?id=bb9dbcbbfd5c3159f975f39336a33319c6c5df04'/>
<id>urn:sha1:bb9dbcbbfd5c3159f975f39336a33319c6c5df04</id>
<content type='text'>
* bootstrap.conf (gnulib_modules): Add free-posix, tmpfile.
* src/split.c (copy_to_tmpfile): New function.
(input_file_size): Use it to split larger files when sizes cannot
easily be determined via fstat or lseek.  See Bug#61386#235.
* tests/split/l-chunk.sh: Mark tests of /dev/zero as
very expensive since they exhaust /tmp.
</content>
</entry>
<entry>
<title>du: --apparent counts only symlinks and regular</title>
<updated>2023-03-05T00:57:16Z</updated>
<author>
<name>Paul Eggert</name>
<email>eggert@cs.ucla.edu</email>
</author>
<published>2023-03-05T00:51:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/coreutils/commit/?id=110bcd28386b1f47a4cd876098acb708fdcbbb25'/>
<id>urn:sha1:110bcd28386b1f47a4cd876098acb708fdcbbb25</id>
<content type='text'>
Problem reported by Christoph Anton Mitterer (Bug#61884).
* src/du.c (process_file): When counting apparent sizes, count
only usable st_size members.
* tests/du/apparent.sh: New file.
* tests/local.mk (all_root_tests): Add it.
</content>
</entry>
<entry>
<title>split: handle large numbers better</title>
<updated>2023-03-04T22:49:46Z</updated>
<author>
<name>Paul Eggert</name>
<email>eggert@cs.ucla.edu</email>
</author>
<published>2023-03-04T19:42:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/coreutils/commit/?id=3434cdcec18c918de992bc28b0e9f52b6f168d9b'/>
<id>urn:sha1:3434cdcec18c918de992bc28b0e9f52b6f168d9b</id>
<content type='text'>
Prefer signed types to uintmax_t, as this allows for better
runtime checking with gcc -fsanitize=undefined.
Also, when an integer overflows just use the maximal value
when the code will do the right thing anyway.
* src/split.c (set_suffix_length, bytes_split, lines_split)
(line_bytes_split, lines_chunk_split, bytes_chunk_extract)
(lines_rr, parse_chunk, main):
Prefer a signed type (typically intmax_t) to uintmax_t.
(strtoint_die): New function.
(OVERFLOW_OK): New macro.  Use it elsewhere, where we now allow
LONGINT_OVERFLOW because the code then does the right thing on all
practical platforms (they have int wide enough so that it cannot
be practically exhausted).  We can do this now that we can safely
assume intmax_t has at least 64 bits.
(parse_n_units): New function.
(parse_chunk, main): Use it.
(main): Do not worry about integer overflow when the code
will do the right thing anyway with the extreme value.
Just use the extreme value.
* tests/split/fail.sh: Adjust to match new behavior.
</content>
</entry>
<entry>
<title>split: port ‘split -n N /dev/null’ better to macOS</title>
<updated>2023-03-04T22:49:45Z</updated>
<author>
<name>Paul Eggert</name>
<email>eggert@cs.ucla.edu</email>
</author>
<published>2023-03-04T19:42:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/coreutils/commit/?id=aa266f1b3dc4e12acdc46cc0f562adc03c2c0b8f'/>
<id>urn:sha1:aa266f1b3dc4e12acdc46cc0f562adc03c2c0b8f</id>
<content type='text'>
* src/split.c (input_file_size): Do not bother with lseek if the
initial read probe reaches EOF, since the file size is known then.
This works better on macOS, which doesn’t allow lseek on /dev/null.
Do not special-case size-zero files, as the issue can occur
with any size file (though /proc files are the most common).
If the current position is past end of file, treat this as
size zero regardless of whether the file has a usable st_size.
Pass through lseek -1 return values rather than using ‘return -1’;
this makes the code a bit easier to analyze (and a bit faster).
Avoid undefined behavior if the size calculation overflows.
(lines_chunk_split): Do not bother with lseek if it would have
no effect if successful.  This works better on macOS, which
doesn’t allow lseek on /dev/null.
* tests/split/l-chunk.sh: Adjust to match fixed behavior.
</content>
</entry>
<entry>
<title>maint: fix NEWS quoting</title>
<updated>2023-03-04T22:49:45Z</updated>
<author>
<name>Paul Eggert</name>
<email>eggert@cs.ucla.edu</email>
</author>
<published>2023-03-04T19:42:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/coreutils/commit/?id=fe64f8be015050500b2be4678a8ce954fde576db'/>
<id>urn:sha1:fe64f8be015050500b2be4678a8ce954fde576db</id>
<content type='text'>
* NEWS: Use English-language quoting in recent news.
</content>
</entry>
<entry>
<title>split: split more evenly with -n</title>
<updated>2023-03-04T22:49:45Z</updated>
<author>
<name>Paul Eggert</name>
<email>eggert@cs.ucla.edu</email>
</author>
<published>2023-03-04T19:41:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/coreutils/commit/?id=fb6fc7f3ce6b0b70a5df7f605e71c4f8541e256b'/>
<id>urn:sha1:fb6fc7f3ce6b0b70a5df7f605e71c4f8541e256b</id>
<content type='text'>
* src/split.c (bytes_split): New arg REM_BYTES.
Use this to split more evenly.  All callers changed.
(lines_chunk_split, bytes_chunk_extract):
Be consistent with new byte_split.
* tests/split/b-chunk.sh, tests/split/l-chunk.sh: Test new behavior.
</content>
</entry>
</feed>
