22 Commits
Author SHA1 Message Date
Oleg 46567bd871 split: remove a stray space before a colon in an error message 2026-10-12 11:00:35 +02:00
Oleg 96877426d5 printf: fix escape sequences, examples and typos in the help text 2026-10-12 11:00:35 +02:00
Oleg f9f165cc46 pr: fix the -COLUMN reference in the --across help 2026-10-12 11:00:35 +02:00
Oleg d4c5c25abe od: use the BYTES placeholder in the --skip-bytes help 2026-10-12 11:00:35 +02:00
Oleg 9e42dab965 mv: fix the --interactive help text 2026-10-12 11:00:35 +02:00
Oleg 82cdd0fa4a mknod: fix the help for MAJOR, MINOR and -Z 2026-10-12 11:00:35 +02:00
Oleg a968b1468d mkdir: fix the --verbose help text 2026-10-12 11:00:35 +02:00
Oleg 514b8b3712 install: say copy, not move, in the --target-directory help 2026-10-12 11:00:35 +02:00
Oleg cfe93ae5f6 factor: fix grammar in the incomplete factorization error 2026-10-12 11:00:35 +02:00
Oleg 9e58ad3dc4 echo: fix the backslash escape in the help text 2026-10-12 11:00:35 +02:00
Oleg 329a592397 dircolors: fix the --print-database help text 2026-10-12 11:00:35 +02:00
Oleg 78b13f189f dd: fix typos in the help text 2026-10-12 11:00:35 +02:00
Oleg 3fb3cf5f15 cp: swap source and destination in the clone error message 2026-10-12 11:00:35 +02:00
Oleg e6eb5ad908 df: fix column width for non-ASCII headers
Table::new seeded each column width with the header's length in bytes,
while every cell, the header row included, is measured in display
columns. A non-ASCII header therefore widened its column by one space
per extra byte: with LANG=fr_FR.UTF-8, "Utilisé" gets 8 columns instead
of 7, Cyrillic headers come out twice as wide as they should, CJK ones
one and a half times.

The header row already goes through the same width loop as the data
rows, so drop the byte-length seed and let that loop size it.

Closes #15246.
2026-10-11 22:49:37 +02:00
Oleg 8b275334ae tr: correct the -A comment 2026-10-11 15:07:32 +02:00
Oleg 6f9896ac9b tr: shorten the -A comment 2026-10-11 15:07:32 +02:00
Hekzory d14422912a tr: accept -A for compatibility with AIX
AIX tr has a -A flag that makes it work byte by byte, with ASCII
ranges and character classes instead of the locale's. AIX's own
scripts use it (lslpp -L does), and GNU tr has accepted it since 8.30
without documenting it. Our tr rejected it as an unexpected argument.

This tr never looks at the locale, so it already behaves as if -A
were given. Accept the flag, keep it out of --help as GNU does, and
otherwise ignore it.

Closes #15225.
2026-10-11 15:07:32 +02:00
Hekzory 04a59e2208 tr: drop the -u note from extensions.md
GNU tr now accepts -u as an undocumented option as well (coreutils
commit a40b8d1191dd), so it is no longer an extension over GNU.
2026-10-10 22:51:11 +02:00
Hekzory 546f04c1de tr: reword the -u help text
Say what -u does instead of reusing the BSD man page wording.
2026-10-10 22:51:11 +02:00
Hekzory 14a18b91a6 tr: hide -u from --help and the man page
GNU tr rejects -u, so a script that uses it does not run with GNU tr.
Keep accepting the option for scripts written for FreeBSD and macOS,
but do not advertise it, the same way GNU tr accepts AIX's -A without
listing it.
2026-10-10 22:51:11 +02:00
Hekzory 8d9ad5cbb0 tr: accept -u for unbuffered output, as on FreeBSD and macOS
FreeBSD and macOS tr take -u to guarantee that output is unbuffered,
and scripts written for them use it to pass progress output through a
pipeline as it arrives, e.g. `curl ... 2>&1 | tr -u '\r' '\n'`. uutils
tr rejected the option, so such pipelines failed outright.

On Unix every chunk is already written as soon as it is translated, so
-u has nothing left to do there. Windows still writes through the line
buffered Stdout, so flush it after every chunk when -u is given.
2026-10-10 22:51:11 +02:00
Hekzory 34485925d8 sort: do not hold all inputs open while sorting
Since 5ec266b (#13494) every input file is opened up front and kept
open until it is read, so sorting more than about 1020 files fails
with "Too many open files" under the usual soft limit of 1024.
Before that commit the inputs were opened and closed once to verify
them and reopened later, which lost data on FIFOs.

Verify the inputs the way GNU sort's check_inputs() does, with
access(2), which holds no descriptor and does not block on a FIFO,
and open each input exactly once when it is reached. On platforms
without access(2) the check opens and closes the file, as before.

Fixes #14419.
2026-09-07 13:54:08 +02:00