"Fossies" - the Fresh Open Source Software Archive

Member "coreutils-9.1/ChangeLog" (15 Apr 2022, 308968 Bytes) of package /linux/misc/coreutils-9.1.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "ChangeLog": 9.0_vs_9.1.

    1 2022-04-15  Pádraig Brady  <P@draigBrady.com>
    2 
    3 	version 9.1
    4 	* NEWS: Record release date.
    5 
    6 2022-04-15  Pádraig Brady  <P@draigBrady.com>
    7 
    8 	doc: avoid unicode errors in texi conversion
    9 	Avoid "Unicode character U+#1 not supported, sorry" error
   10 	when converting from texi to dvi or pdf.
   11 
   12 	* doc/coreutils.texi (tr invocation): Avoid the @U{XXXX}
   13 	texi representation, as even though info and html can represent
   14 	these characters directly, there are conversion errors
   15 	for pdf and dvi.  Instead use the more abstract shell
   16 	$'\uXXXX' representation.
   17 
   18 2022-04-14  Pádraig Brady  <P@draigBrady.com>
   19 
   20 	build: copy: fix build on macos 10.12
   21 	* src/copy.c (copy_reg): Handle the case where CLONE_NOOWNERCOPY
   22 	is not defined.
   23 	Reported by Jeffrey Walton
   24 
   25 2022-04-13  Pádraig Brady  <P@draigBrady.com>
   26 
   27 	tail: detect closed stdout on Solaris
   28 	* src/tail.c (check_output_alive): Use poll() on Solaris.
   29 	Also handle POLLHUP, which Solaris returns in this case.
   30 	* tests/tail-2/pipe-f.sh: Use `head -n2` rather than `sed 2q`
   31 	as Solaris sed does not exit in this case.
   32 	* NEWS: Mention the improvement.
   33 	Reported by Bruno Haible.
   34 
   35 	maint: syntax-check: fix preprocessor indentation
   36 	* gl/lib/targetdir.h: Keep '#' at start of line.
   37 
   38 2022-04-13  Paul Eggert  <eggert@cs.ucla.edu>
   39 
   40 	cp,mv,install: omit an ‘inline’
   41 	* gl/lib/targetdir.c (target_directory_operand):
   42 	Omit unnecessary ‘inline’.
   43 
   44 	cp,mv,install: improve EACCES targetdir messages
   45 	This improves on the fix for --target-directory diagnostics bugs on
   46 	Solaris 11.  Problem reported by Bruno Haible and Pádraig Brady; see:
   47 	https://lists.gnu.org/r/coreutils/2022-04/msg00044.html
   48 	Also, omit some unnecessary stat calls.
   49 	* gl/lib/targetdir.c (target_directory_operand): If !O_DIRECTORY,
   50 	do not bother calling open if stat failed with errno != EOVERFLOW.
   51 	Rename is_a_dir to try_to_open since that’s closer to what it means.
   52 	If the open failed with EACCES and we used O_SEARCH, look at stat
   53 	results to see whether errno should be ENOTDIR for better diagnostics.
   54 	Treat EOVERFLOW as an “I don’t know whether it’s a directory and
   55 	there’s no easy way to find out” rather than as an error.
   56 
   57 	cp,mv,install: avoid excess stat calls on non-GNU
   58 	* gl/lib/targetdir.c (target_directory_operand): New arg ST.
   59 	All callers changed.
   60 	* src/cp.c (do_copy):
   61 	* src/mv.c (main):
   62 	Avoid unnecessary stat call if target_directory_operand already
   63 	got the status.
   64 
   65 	cp,mv,install: modularize targetdir
   66 	Move target directory code out of system.h to a new targetdir module.
   67 	This doesn’t change functionality.
   68 	* bootstrap.conf (gnulib_modules): Add targetdir.
   69 	* src/cp.c, src/install.c, src/mv.c: Include targetdir.h.
   70 	* src/system.h (must_be_working_directory, target_directory_operand)
   71 	(targetdir_dirfd_valid): Move from here ...
   72 	* gl/lib/targetdir.c, gl/lib/targetdir.h, gl/modules/targetdir:
   73 	... to these new files.
   74 
   75 2022-04-13  Pádraig Brady  <P@draigBrady.com>
   76 
   77 	cp,mv,install: avoid EACCES with non directory destination
   78 	* src/system.h (target_directory_operand): Also check with stat()
   79 	on systems with O_SEARCH, to avoid open("file", O_SEARCH|O_DIRECTORY)
   80 	returning EACCES rather than ENOTDIR, which was seen on Solaris 11.4
   81 	when operating on non dirs without execute bit set.
   82 	* NEWS: Remove related bug entry, as that issue was only introduced
   83 	after coreutils v9.0 was released.
   84 	Reported by Bruno Haible.
   85 
   86 	sync: support syncing files on cygwin
   87 	* src/sync.c (sync_arg): Similarly to AIX, Cygwin 2.9.0
   88 	was seen to need write access to have permission to sync a file.
   89 
   90 	tests: cygwin: handle ENOENT from execvp(".")
   91 	* tests/misc/env.sh: Verify with another command that
   92 	execvp() doesn not return ENOENT, before testing the
   93 	exit code from the command in question.
   94 	* tests/misc/nice-fail.sh: Likewise.
   95 	* tests/misc/stdbuf.sh: Likewise.
   96 	* tests/misc/timeout-parameters.sh: Likewise.
   97 
   98 	tests: env-S.pl: unset cygwin hardwired env vars
   99 	* tests/misc/env-S.pl: Unset SYSTEMROOT and WINDIR.
  100 
  101 2022-04-12  Pádraig Brady  <P@draigBrady.com>
  102 
  103 	tests: md5sum: fix false failures on cygwin
  104 	* tests/misc/md5sum-newline.pl: Avoid binary '*' tags when
  105 	comparing checksums.
  106 	* tests/misc/md5sum-bsd.sh: Avoid binary '*' tags so that we correctly
  107 	trigger the ambiguity test.
  108 	Reported by Bruno Haible
  109 
  110 2022-04-11  Pádraig Brady  <P@draigBrady.com>
  111 
  112 	tests: b2sum.sh: fix false failure on cygwin
  113 	* tests/misc/b2sum.sh: Avoid binary '*' tags when comparing checksums.
  114 	Reported by Bruno Haible
  115 
  116 	tests: dircolors.pl: avoid false failure with TERM=dumb
  117 	* tests/Coreutils.pm: Ensure an unset $TERM env var,
  118 	which is required on perl 5.22.2 on Solaris 11 OpenIndiana at least,
  119 	where TERM was being reset to 'dumb'.
  120 	Reported By Bruno Haible.
  121 
  122 	tests: printf-mb.sh: fix false failure with french translations
  123 	* tests/misc/printf-mb.sh: As per commit 04148c99c,
  124 	adjust non C warnings before comparison, to those of LC_MESSAGES=C.
  125 	Reported by Adam Sampson
  126 
  127 2022-04-10  Pádraig Brady  <P@draigBrady.com>
  128 
  129 	tests: stty.sh: skip on systems without perl
  130 	* init.cfg (stty_reversible_init_): Add require_perl_
  131 	to ensure we skip rather than error, without perl.
  132 
  133 2022-04-09  Pádraig Brady  <P@draigBrady.com>
  134 
  135 	cp,mv,install: avoid opening non directory destination
  136 	commit v9.0-66-ge2daa8f79 introduced an issue, for example
  137 	where cp could hang when overwriting a destination fifo,
  138 	when it would try to open() the fifo on systems
  139 	like Solaris 10 that didn't support the O_DIRECTORY flag.
  140 
  141 	This is still racy on such systems, but only in the
  142 	case where a directory is replaced by a fifo in
  143 	the small window between stat() and open().
  144 
  145 	* src/system.h (target_directory_operand): On systems without
  146 	O_DIRECTORY, ensure the file is a directory before attempting to open().
  147 	* tests/cp/special-f.sh: Protect cp with timeout(1),
  148 	as cp was seen to hang when trying to overwrite an existing fifo.
  149 	* NEWS: Mention the bug fix.
  150 
  151 2022-04-09  Pádraig Brady  <P@draigBrady.com>
  152 
  153 	doc: install --compare: clarify mode of operation
  154 	* doc/coreutils.texi (install invocation): For the --compare option,
  155 	clarify that the ownership or permissions of the source files don't
  156 	matter.  Also don't imply --owner or --group need to be specified
  157 	for --compare to be effective.
  158 	* src/install.c (usage): Add more detail on what's being compared.
  159 	Fixes https://bugs.gnu.org/50889
  160 
  161 2022-04-08  Pádraig Brady  <P@draigBrady.com>
  162 
  163 	doc: remove older ChangeLog items
  164 	* Makefile.am: Update the oldest documented version
  165 	to 8.27 which is now about 5 years old.
  166 
  167 2022-04-08  Bernhard Voelker  <mail@bernhard-voelker.de>
  168 
  169 	maint: remove obsolete statat gnulib module
  170 	* bootstrap.conf (gnulib_modules): Remove statat.
  171 
  172 2022-04-07  Pádraig Brady  <P@draigBrady.com>
  173 
  174 	build: update gnulib submodule to latest
  175 	* gnulib: Update to latest
  176 	* src/copy.c: Replace deprecated {l,}statat(), with fstatat().
  177 	* src/cp.c: Likewise.
  178 	* src/install.c: Likewise.
  179 	* src/remove.c: Likewise.
  180 
  181 2022-04-04  Pádraig Brady  <P@draigBrady.com>
  182 
  183 	factor: improve support on RISCV and loongson
  184 	* src/longlong.h: Pull in RISCV fix and loongarch64 support from
  185 	https://gmplib.org/repo/gmp/log/tip/longlong.h
  186 
  187 2022-04-03  Pádraig Brady  <P@draigBrady.com>
  188 
  189 	doc: describe `dd iseek` as a feature not a change
  190 	* NEWS: Move description from "Changes in behavior"
  191 	to "New features".
  192 
  193 2022-04-03  Pádraig Brady  <P@draigBrady.com>
  194 
  195 	ls: avoid expensive capability lookup by default
  196 	Lookup of file-based capabilities adds 30% overhead to the common
  197 	case of ls --color usage.  Since the use of file capabilities is
  198 	very rare, it doesn't make sense to pay this cost in the common
  199 	case.  It's better to use getcap to inspect capabilities, and the
  200 	following run shows only 8 files using capabilities on my fedora
  201 	35 distro (14 years after the feature was introduced to the linux
  202 	kernel).
  203 
  204 	  $ getcap -r /
  205 	  /usr/bin/arping = cap_net_raw+p
  206 	  /usr/bin/clockdiff = cap_net_raw+p
  207 	  /usr/bin/gnome-keyring-daemon = cap_ipc_lock+ep
  208 	  /usr/bin/gnome-shell = cap_sys_nice+ep
  209 	  /usr/bin/newgidmap = cap_setgid+ep
  210 	  /usr/bin/newuidmap = cap_setuid+ep
  211 	  /usr/sbin/mtr-packet = cap_net_raw+ep
  212 	  /usr/sbin/suexec = cap_setgid,cap_setuid+ep
  213 
  214 	* src/dircolors.hin: Set "CAPABILITY" to "00", to indicate unused.
  215 	* src/ls.c: Set the default C_CAP color to not colored.
  216 	* NEWS: Mention the change in behavior.
  217 
  218 2022-04-03  Ville Skyttä  <ville.skytta@iki.fi>
  219 
  220 	dircolors: colorize backup files with bright black
  221 	* src/dircolors.hin: Add patterns for suffixes for "backup files".
  222 	The color used is so they stand out less than non-backup files,
  223 	and bright black works well on both light and dark backgrounds.
  224 	* THANKS.in: Remove duplicate.
  225 	Fixes https://bugs.gnu.org/54521
  226 
  227 2022-03-29  Pádraig Brady  <P@draigBrady.com>
  228 
  229 	doc: join: clarify that -e only effective for -12jo fields
  230 	* src/join.c (usage): Clarify that -e is not sufficient
  231 	to enable output of missing fields from one of the inputs.
  232 	Rather the -12jo options are required to explicitly
  233 	enable output of those fields.
  234 	Fixes https://bugs.gnu.org/54625
  235 
  236 2022-03-25  Pádraig Brady  <P@draigBrady.com>
  237 
  238 	maint: sync latest bootstrap from gnulib
  239 	* bootstrap: Should have updated this with the last gnulib update.
  240 
  241 2022-03-20  Pádraig Brady  <P@draigBrady.com>
  242 
  243 	tests: improve recent printf test
  244 	* tests/misc/printf-mb.sh: Given we shortcut the single char
  245 	(invalid multi-byte) case, add a case to ensure we're correctly
  246 	checking the return from mbrtowc().
  247 
  248 2022-03-19  Pádraig Brady  <P@draigBrady.com>
  249 
  250 	printf: support printing the numeric value of multi-byte chars
  251 	* src/printf.c (STRTOX): Update to support multi-byte chars.
  252 	* tests/misc/printf-mb.sh: Add a new test.
  253 	* tests/local.mk: Reference the new test.
  254 	* NEWS: Mention the improvement.
  255 	Fixes https://bugs.gnu.org/54388
  256 
  257 2022-03-18  Pádraig Brady  <P@draigBrady.com>
  258 
  259 	maint: move build-related NEWS item to its own section
  260 	* NEWS: Follow other Build-related patterns in NEWS.
  261 
  262 2022-03-12  Pádraig Brady  <P@draigBrady.com>
  263 
  264 	doc: test: clarify that -rwx don't just check perm bits
  265 	* src/test.c (usage): State that -rwx is determined by
  266 	user access, rather than permission bits.
  267 	* doc/coreutils.texi (Access permission tests): Likewise.
  268 	* man/test.x [SEE ALSO]: access(2).
  269 	Fixes https://bugs.gnu.org/54338
  270 
  271 2022-03-07  Pádraig Brady  <P@draigBrady.com>
  272 
  273 	maint: address syntax-check issues in recent commit
  274 	* cfg.mk (sc_die_EXIT_FAILURE): Generalize to match any EXIT_ define,
  275 	and also relax to ignore error() usage with ternary operator.
  276 	* src/chroot.c (main): Use () to avoid the sc_error_quotes check.
  277 
  278 2022-03-07  Pádraig Brady  <P@draigBrady.com>
  279 
  280 	stat: only automount with --cached=never
  281 	Revert to the default behavior before the introduction of statx().
  282 
  283 	* src/stat.c (do_stat): Set AT_NO_AUTOMOUNT without --cached=never.
  284 	* doc/coreutils.texi (stat invocation): Mention the automount
  285 	behavior with --cached=never.
  286 	* NEWS: Mention the change in behavior.
  287 
  288 	Fixes https://bugs.gnu.org/54287
  289 
  290 2022-03-07  Rohan Sable  <rsable@redhat.com>
  291 
  292 	ls: avoid triggering automounts
  293 	statx() has different defaults wrt automounting
  294 	compared to stat() or lstat(), so explicitly
  295 	set the AT_NO_AUTOMOUNT flag to suppress that behavior,
  296 	and avoid unintended operations or potential errors.
  297 
  298 	* src/ls.c (do_statx): Pass AT_NO_AUTOMOUNT to avoid this behavior.
  299 	* NEWS: Mention the change in behavior.
  300 	Fixes https://bugs.gnu.org/54286
  301 
  302 2022-03-07  Pádraig Brady  <P@draigBrady.com>
  303 
  304 	build: ensure AT_NO_AUTOMOUNT is defined
  305 	update gnulib submodule to latest,
  306 	where this is the only change
  307 
  308 2022-03-05  Paul Eggert  <eggert@cs.ucla.edu>
  309 
  310 	date: fix newly-introduced %%-N bug
  311 	* src/date.c (adjust_resolution): Don’t mishandle %%-N.
  312 	* tests/misc/date.pl (pct-pct): New test.
  313 
  314 2022-02-25  Paul Eggert  <eggert@cs.ucla.edu>
  315 
  316 	chown: warn about USER.GROUP
  317 	Suggested by Dan Jacobson (Bug#44770).
  318 	* src/chown.c, src/chroot.c (main):
  319 	Issue warnings if obsolete USER.GROUP notation is present.
  320 
  321 	build: update gnulib submodule to latest
  322 
  323 2022-02-24  Pádraig Brady  <P@draigBrady.com>
  324 
  325 	fmt: fix invalid multi-byte splitting on macOS
  326 	On macOS, isspace(0x85) returns true,
  327 	which results in splitting within multi-byte characters.
  328 
  329 	* src/fmt.c (get_line): s/isspace/c_isspace/.
  330 	* tests/fmt/non-space.sh: Add a new test.
  331 	* tests/local.mk: Reference new test.
  332 	* NEWS: Mention the fix.
  333 	Addresses https://bugs.gnu.org/54124
  334 
  335 2022-02-24  Pádraig Brady  <P@draigBrady.com>
  336 
  337 	tests: improve compat with macOS
  338 	* tests/misc/wc-nbsp.sh: Only the en_US.iso8859-1 form
  339 	is accepted on macOS 10.15.7 at least.  GNU/Linux also
  340 	accepts ISO-8859-1 (and canonicalizes the charmap to this).
  341 
  342 2022-02-23  Paul Eggert  <eggert@cs.ucla.edu>
  343 
  344 	dd: counts ending in "B" now count bytes
  345 	This implements my suggestion in Bug#54112.
  346 	* src/dd.c (usage): Document the change.
  347 	(parse_integer, scanargs): Implement the change.
  348 	Omit some now-obsolete checks for invalid flags.
  349 	* tests/dd/bytes.sh: Test the new behavior, while retaining
  350 	checks for the now-obsolete usage.
  351 	* tests/dd/nocache_eof.sh: Avoid now-obsolete usage.
  352 
  353 2022-02-22  Paul Eggert  <eggert@cs.ucla.edu>
  354 
  355 	dd: improve doc relative to POSIX
  356 	* doc/coreutils.texi (dd invocation): Improve documentation,
  357 	clarifying whether features are extensions to POSIX.
  358 
  359 	dd: support iseek= and oseek=
  360 	Alias iseek=N to skip=N, oseek=N to seek=N (Bug#45648).
  361 	* src/dd.c (scanargs): Parse iseek= and oseek=.
  362 	* tests/dd/skip-seek.pl (sk-seek5): New test case.
  363 
  364 2022-02-21  Paul Eggert  <eggert@cs.ucla.edu>
  365 
  366 	cp: avoid unnecessary buffer allocation
  367 	Do not allocate I/O buffer if copy_file_range suffices.
  368 	* src/copy.c (sparse_copy, lseek_copy): Buffer arg is now char **
  369 	instead of char *, and buffer is now allocated only if needed.
  370 	All uses changed.
  371 
  372 2022-02-19  Paul Eggert  <eggert@cs.ucla.edu>
  373 
  374 	build: update gnulib submodule to latest
  375 
  376 2022-02-15  Pádraig Brady  <P@draigBrady.com>
  377 
  378 	doc: env: fix man page reference of exec(2) to exec(3p)
  379 	* man/env.x: Change exec() reference from section 2 to 3p.
  380 
  381 2022-02-15  Pádraig Brady  <P@draigBrady.com>
  382 
  383 	doc: use bold style for man page references
  384 	It's more common to use bold style than not,
  385 	for references to other man pages.
  386 	Ideally each man page renderer would highlight references,
  387 	but currently some rely on styles in the page itself.
  388 
  389 	* man/help2man: Implement a --bold-refs option that
  390 	will mark up references like "name(1)" with bold
  391 	style around the "name" component.
  392 	* man/local.mk: Pass --bold-refs to our help2man unless disabled.
  393 	* configure.ac: Add a --disable-bold-man-page-references option.
  394 	Addresses https://bugs.gnu.org/53977
  395 
  396 2022-02-15  Pádraig Brady  <P@draigBrady.com>
  397 
  398 	dircolors: speed up processing of TERM entries
  399 	* src/dircolors.c (main): Avoid glob matching
  400 	when we've already matched in a group of {COLOR,}TERM entries.
  401 
  402 2022-02-15  Pádraig Brady  <P@draigBrady.com>
  403 
  404 	dircolors: consider COLORTERM as well as TERM env vars
  405 	COLORTERM is an environment used usually to expose truecolor support in
  406 	terminal emulators.  Therefore support matches on that in addition
  407 	to TERM.  Also set the default COLORTERM match pattern so that
  408 	we apply colors if COLORTERM is any value.
  409 
  410 	This implicitly supports a terminal like "foot"
  411 	without a need for an explicit TERM entry.
  412 
  413 	* NEWS: Mention the new feature.
  414 	* src/dircolors.c (main): Match COLORTERM like we do for TERM.
  415 	* src/dircolors.hin: Add default config to match any COLORTERM.
  416 	* tests/misc/dircolors.pl: Add test cases.
  417 
  418 2022-02-14  Paul Eggert  <eggert@cs.ucla.edu>
  419 
  420 	tr: mention multibyte problem in man page
  421 	* man/tr.x: Document tr problem.
  422 
  423 	tr: improve multibyte etc. doc
  424 	Problem reported by Dan Jacobson (Bug#48248).
  425 	* doc/coreutils.texi (tr invocation): Improve documentation for
  426 	tr's failure to support multibyte characters POSIX-style.
  427 	* doc/coreutils.texi (tr invocation), src/tr.c (usage):
  428 	Use terminology closer to POSIX's.
  429 
  430 2022-02-13  Pádraig Brady  <P@draigBrady.com>
  431 
  432 	dircolors: add --print-ls-colors to display colored entries
  433 	* NEWS: Mention the new feature.
  434 	* doc/coreutils.texi (dircolors invocation): Describe the new
  435 	--print-ls-colors option.
  436 	* src/dircolors.c (print_ls_colors): A new global to select
  437 	between shell or terminal output.
  438 	(append_entry): A new function refactored from dc_parse_stream()
  439 	to append the entry in the appropriate format.
  440 	(dc_parse_stream): Adjust to call append_entry().
  441 	* tests/misc/dircolors.pl: Add test cases.
  442 
  443 2022-02-13  Pádraig Brady  <P@draigBrady.com>
  444 
  445 	chown,chgrp: reinstate numeric id output in -v messages
  446 	since gnulib commit ff208d546a,
  447 	related to coreutils commit v9.0-143-gabde15969
  448 	we no longer maintain numeric IDs through chopt->{user,group}_name.
  449 	Therefore we need to adjust to ensure tests/chown/basic.sh passes.
  450 
  451 	* src/chown-core.c (uid_to_str, gid_to_str): New helper functions
  452 	to convert numeric id to string.
  453 	(change_file_owner): Use the above new functions to pass
  454 	numeric ids to describe_change().
  455 
  456 2022-02-13  Paul Eggert  <eggert@cs.ucla.edu>
  457 
  458 	sort: fix several version-sort problems
  459 	This also affects ls -v in some corner cases.
  460 	Problems reported by Michael Debertol <https://bugs.gnu.org/49239>.
  461 	While looking into this, I spotted some more areas where the
  462 	code and documentation did not agree, or where the documentation
  463 	was unclear.  In some cases I changed the code; in others
  464 	the documentation.  I hope things are nailed down better now.
  465 	* doc/sort-version.texi: Distinguish more carefully between
  466 	characters and bytes.  Say that non-identical strings can
  467 	compare equal, since they now can.  Improve readability in
  468 	various ways.  Make it clearer that a suffix can be the
  469 	entire string.
  470 	* src/ls.c (cmp_version): Fall back on strcmp if filevercmp
  471 	reports equality, since filevercmp is no longer a total order.
  472 	* src/sort.c (keycompare): Use filenvercmp, to treat NULs correctly.
  473 	* tests/misc/ls-misc.pl (v_files):
  474 	Adjust test to match new behavior.
  475 	* tests/misc/sort-version.sh: Add tests for stability,
  476 	and for sorting with NUL bytes.
  477 
  478 	build: update gnulib submodule to latest
  479 
  480 2022-02-12  Pádraig Brady  <P@draigBrady.com>
  481 
  482 	doc: avoid using "[" is URLS in --help output
  483 	* src/system.h (emit_ancillary_info): While supported if entered
  484 	  manually, the "[" character is not highlighted as part of a
  485 	  URL by default in terminals, so avoid using it.
  486 	  Addresses https://bugs.gnu.org/53946
  487 
  488 	doc: adust --help, --version alignment
  489 	* src/system.h: Adjust the alignment of the --help
  490 	and --version option descriptions, to start at column 21.
  491 	This better aligns with the descriptions of most commands,
  492 	and also aligns with the minimum column a description must
  493 	start at to ensure a blank line is not output when a description
  494 	follows an option on a line by itself.
  495 
  496 	doc: rmdir: improve --help formatting
  497 	* src/rmdir.c (usage): Move description to column 21,
  498 	so that a --long-option on its own line without a
  499 	trailing description, doesn't have an erroneous blank
  500 	line inserted between the option and description.
  501 	Also group descriptions with blank lines rather than indents,
  502 	so that man pages don't have erroneous blank lines
  503 	added within the description.
  504 	Addresses https://bugs.gnu.org/53946
  505 
  506 	doc: ls: reference dircolors(1) from --help
  507 	* src/ls.c (usage): s/dircolors/dircolors(1)/.
  508 	* man/ls.x [SEE ALSO]: Reference dircolors(1).
  509 	Addresses https://bugs.gnu.org/53946
  510 
  511 	doc: ls: improve --help formatting
  512 	* src/ls.c (usage): Use blank lines to group multi-line
  513 	option descriptions, rather than indenting.
  514 	This results in more consistent alignment of descriptions,
  515 	and also avoids erroneous new lines in generated in man pages.
  516 	Addresses https://bugs.gnu.org/53946
  517 
  518 2022-02-08  Paul Eggert  <eggert@cs.ucla.edu>
  519 
  520 	doc: improve version-sort doc
  521 	* doc/coreutils.texi, doc/sort-version.texi:
  522 	Capitalize “Coreutils”.
  523 	* doc/sort-version.texi: Don’t emphasize natural sort so much,
  524 	since Coreutils has just version sort.
  525 	Use the term “lexicographic” instead of “alphabetic” or “standard”.
  526 	Suggest combining ‘V’ with ‘b’, and show why ‘b’ is needed.
  527 	Use shorter titles for sections, as GNU Emacs displays info poorly
  528 	when titles are too long to fit in a line.
  529 	Use @samp instead of @code for samples of data.
  530 	Do not use @samp{@code{...}}; @samp{...} should suffice and
  531 	double-nesting looks bad with Emacs.
  532 	Omit blank lines in examples that would not be present
  533 	in actual shell sessions.
  534 	Quote with `` and '', not with " or with '.
  535 	Mention dpkg --compare-versions more prominently.
  536 	Don’t rely on "\n" being equivalent to "\\n" in shell args.
  537 	Prefer Unicode name for hyphen-minus.
  538 
  539 2022-02-07  Christian Hesse  <mail@eworm.de>
  540 
  541 	dircolors: highlight .avif as image
  542 	This add highlighting for AV1 Image File Format (AVIF):
  543 	https://aomediacodec.github.io/av1-avif/
  544 
  545 	* src/dircolors.hin: Highlight .avif as image.
  546 
  547 2022-02-05  Paul Eggert  <eggert@cs.ucla.edu>
  548 
  549 	date: test against bug#50115
  550 	* tests/misc/date.pl: Add test.
  551 
  552 	build: update gnulib submodule to latest
  553 
  554 2022-02-05  Pádraig Brady  <P@draigBrady.com>
  555 
  556 	doc: fix somewhat ambiguous date format representation
  557 	* doc/coreutils.texi (date invocation): Remove @var{...} usage,
  558 	as that capitalizes in the representation and thus somewhat
  559 	ambiguates the format wrt Month and Minute.  This also avoids
  560 	a syntax check failure about redundant capitalization in @var{}.
  561 
  562 2022-02-05  Paul Eggert  <eggert@cs.ucla.edu>
  563 
  564 	date: improve doc
  565 	Problem reported by Dan Jacobson (Bug#51288).
  566 	* doc/coreutils.texi (date invocation, Setting the time)
  567 	(Options for date):
  568 	* src/date.c (usage): Improve doc.
  569 
  570 	build: update gnulib submodule to latest
  571 
  572 2022-02-04  Paul Eggert  <eggert@cs.ucla.edu>
  573 
  574 	id: print groups of listed name
  575 	Problem reported by Vladimir D. Seleznev (Bug#53631).
  576 	* src/id.c (main): Do not canonicalize user name before
  577 	deciding what groups the user belongs to.
  578 
  579 2022-02-01  Bernhard Voelker  <mail@bernhard-voelker.de>
  580 
  581 	doc: add NEWS entry for recent cksum change
  582 	* NEWS (Changes in behavior): Add entry for commit v9.0-92-ga42a03913.
  583 
  584 2022-02-01  Paul Eggert  <eggert@cs.ucla.edu>
  585 
  586 	maint: suppress bogus noreturn warnings
  587 	* configure.ac: Move the single-binary code before the
  588 	gcc-warnings code, so that the latter can depend on the former.
  589 	Suppress -Wsuggest-attribute=noreturn with single binaries,
  590 	to avoid diagnostics like the following:
  591 	  src/expr.c: In function 'single_binary_main_expr':
  592 	  error: function might be candidate for attribute 'noreturn'
  593 	Problem reported by Pádraig Brady in:
  594 	https://lists.gnu.org/r/coreutils/2022-01/msg00061.html
  595 
  596 	tr: pacify -fsanitizer=leak
  597 	* src/tr.c (main): Use main_exit, not return, in a couple of
  598 	places missed last time.
  599 
  600 	chgrp: fix typo in previous change
  601 	* src/chgrp.c (main): Use main_exit, not exit.
  602 
  603 	maint: mark some _Noreturn functions
  604 	* src/basenc.c (finish_and_exit, do_encode, do_decode):
  605 	* src/comm.c (compare_files):
  606 	* src/tsort.c (tsort):
  607 	* src/uptime.c (uptime):
  608 	Mark with _Noreturn.  Otherwise, unoptimized compilations may warn
  609 	that the calling renamed-main function doesn't return a value,
  610 	when !lint and when single-binary.
  611 
  612 	df: fix memory leak
  613 	* src/df.c (devlist_free): Remove.
  614 	(filter_mount_list): Free all of devlist, instead of merely
  615 	the entries in devlist_table.
  616 
  617 2022-01-31  Pádraig Brady  <P@draigBrady.com>
  618 
  619 	maint: cut: avoid exporting recently added variable
  620 	* src/cut.c: Make output_delimiter_default static,
  621 	as identified by `make syntax-check`.
  622 
  623 2022-01-31  Paul Eggert  <eggert@cs.ucla.edu>
  624 
  625 	maint: pacify gcc -flto -Wmaybe-uninitialized
  626 	* gl/lib/xdectoint.c (__xnumtoint): Tell gcc that ‘error’
  627 	does not return here.
  628 	* gl/modules/xdectoint (Depends-on): Add stdbool, verify.
  629 
  630 	dd: do not access uninitialized
  631 	* src/dd.c (parse_integer): Avoid undefined behavior
  632 	that accesses an uninitialized ‘n’ when e == LONGINT_INVALID.
  633 	Return more-accurate error code when INTMAX_MAX < n.
  634 
  635 	uptime: simplify -fsanitize=leak pacification
  636 	* src/uptime.c (uptime): Exit here ...
  637 	(main): ... instead of here.
  638 
  639 	uniq: remove IF_LINT
  640 	* src/uniq.c (check_file): Remove a no-longer-needed IF_LINT.
  641 
  642 	unexpand: remove IF_LINT
  643 	* src/unexpand.c (unexpand): Remove a no-longer-needed IF_LINT.
  644 
  645 	pr: remove IF_LINT
  646 	* src/pr.c (read_line): Remove a no-longer-needed IF_LINT.
  647 
  648 	truncate: simplify
  649 	* src/truncate.c (do_ftruncate): Check != 0 instead of == -1.
  650 	Avoid a cast.
  651 	(main): Use C99 style decls after statements.
  652 	Simplify ‘open’ logic.
  653 
  654 2022-01-31  Paul Eggert  <eggert@cs.ucla.edu>
  655 
  656 	shred: remove IF_LINT
  657 	* src/shred.c (dopass): Remove a no-longer-needed IF_LINT.
  658 
  659 	(read_line): Remove an IF_LINT; no longer needed with
  660 	today’s GCC.
  661 
  662 2022-01-31  Paul Eggert  <eggert@cs.ucla.edu>
  663 
  664 	pr: simplify -fsanitize=leak pacification
  665 	* src/pr.c (main): Remove an IF_LINT.
  666 	Use main_exit rather than return.
  667 
  668 	pinky: simplify -fsanitize=leak pacification
  669 	* src/pinky.c (short_pinky): exit instead of freeing.
  670 
  671 	paste: remove IF_LINT
  672 	* src/paste.c (paste_parallel): Remove no-longer-needed IF_LINT.
  673 
  674 	hostname: simplify
  675 	* src/hostname.c (sethostname): Provide a substitute on all
  676 	platforms, to simplify the mainline code.
  677 	(main): Simplify.  Remove an IF_LINT.
  678 	Use main_exit rather than return.
  679 
  680 	factor: remove IF_LINT
  681 	* src/factor.c (factor_using_squfof) [USE_SQUFOF]:
  682 	Use plain assert (...), not IF_LINT (assert (...)).
  683 	This code is currently never compiled or executed,
  684 	so this is merely a symbolic cleanup.
  685 
  686 	expand: remove IF_LINT
  687 	* src/expand.c (expand): Remove no-longer-needed IF_LINT.
  688 
  689 	env: simplify -fsanitize=leak pacification
  690 	* src/env.c (unset_envvars): Remove IF_LINT code.
  691 	(main): Use main_exit, not return.
  692 
  693 	md5sum: remove IF_LINTs
  694 	* src/digest.c (digest_check): Remove IF_LINTs that are no longer
  695 	needed, as GCC has gotten smarter since 2008.
  696 
  697 	df: simplify -fsanitize=leak pacification
  698 	* src/df.c (print_table, main) [lint]: Omit unnecessary cleanup.
  699 	(main): Use main_exit, not return.
  700 
  701 	date: simplify -fsanitize=leak pacification
  702 	* src/date.c (main) [lint]: Omit unnecessary cleanup.
  703 	Use main_exit, not return.
  704 
  705 	cut: simplify and remove an IF_LINT
  706 	* src/cut.c (enum operating_mode, operating_mode)
  707 	(output_delimiter_specified, cut_stream):
  708 	Remove; no longer needed.
  709 	(output_delimiter_default): New static var.  Code can now
  710 	use ‘output_delimiter_string != output_delimiter_default’
  711 	instead of ‘output_delimiter_specified’.
  712 	(cut_file): New arg CUT_STREAM.  Caller changed.
  713 	(main): Simplify.  Coalesce duplicate code.  Redo to avoid need
  714 	for IF_LINT, or for the static var.  No need to xstrdup optarg.
  715 
  716 	cut: simplify -fsanitize=leak pacification
  717 	* src/set-fields.c (reset_fields): Remove, as it’s not needed for
  718 	-fsanitize=leak even when ‘lint’ is defined.  All uses removed.
  719 
  720 	cp: simplify GCC pacification
  721 	* src/cp.c (make_dir_parents_private): Remove IF_LINT code that is
  722 	no longer needed, as GCC has apparently gotten smarter since 2008.
  723 
  724 	chown: simplify -fsanitize=leak pacification
  725 	* src/chgrp.c, src/chown.c (main) [lint]: Omit unnecessary cleanup.
  726 	Use main_exit, not return.
  727 
  728 	basenc: simplify -fsanitize=leak pacification
  729 	* src/basenc.c (finish_and_exit): New function.
  730 	(do_encode, do_decode): Use it.  Accept new INFILE arg.  Remove
  731 	no-longer-needed IF_LINT code.  Exit when done.  Caller changed.
  732 
  733 	test: simplify gcc pacification
  734 	* src/test.c (get_mtime) [lint]: Omit ifdef lint code that is no
  735 	longer needed, as GCC has gotten smarter since 2005.
  736 
  737 	tail: simplify -fsanitize=leak pacification
  738 	Also, close a no-longer-needed file descriptor when falling
  739 	back from inotify.
  740 	* src/tail.c (tail_forever_inotify): Return void, not bool.  Exit
  741 	on fatal error, or on successful completion.  Accept an extra
  742 	argument pointing to a hash table that the caller should free on
  743 	non-fatal error; this simplifies cleanup.  Don’t bother setting
  744 	errno when returning.  Caller changed.
  745 	(main): Omit no-longer-needed IF_LINT code.  Close inotify
  746 	descriptor if inotify fails; this fixes a file descriptor leak and
  747 	means we needn’t call inotify_rm_watch.  Use main_exit, not return.
  748 
  749 	tac: simplify -fsanitize=leak pacification
  750 	* src/tac.c (main) [lint]: Omit unnecessary cleanup.
  751 	Use main_exit, not return.
  752 
  753 	shuf: simplify -fsanitize=leak pacification
  754 	* src/shuf.c (main) [lint]: Omit unnecessary cleanup.
  755 	Use main_exit, not return.
  756 
  757 	numfmt: simplify -fsanitize=leak pacification
  758 	* src/numfmt.c (main) [lint]: Omit unnecessary cleanup.
  759 	Use main_exit, not return.
  760 
  761 	mktemp: simplify -fsanitize=leak pacification
  762 	* src/mktemp.c (main) [lint]: Omit unnecessary cleanup.
  763 	Use main_exit, not return.
  764 
  765 	dd: simplify -fsanitize=leak pacification
  766 	* src/dd.c (cleanup) [lint]: Omit unnecessary cleanup.
  767 	(main): Use main_exit, not return.
  768 
  769 	cp: simplify cp/install/ln/mv pacification
  770 	* src/copy.c (dest_info_free, src_info_free) [lint]:
  771 	Remove.  All uses removed.
  772 	(copy_internal): Pacify only Clang and Coverity; GCC doesn’t need it.
  773 	* src/cp-hash.c (forget_all) [lint]: Remove.  All uses removed.
  774 	* src/cp.c, src/install.c, src/ln.c, src/mv.c (main):
  775 	Use main_exit, not return.
  776 
  777 	chmod: pacify -fsanitizer=leak
  778 	* src/chmod.c (main): Use main_exit, not return.
  779 
  780 	yes: pacify -fsanitizer=leak
  781 	* src/yes.c (main): Use main_exit, not return.
  782 
  783 	tsort: pacify -fsanitizer=leak
  784 	* src/tsort.c (detect_loop): Free removed successor.
  785 
  786 	sort: pacify -fsanitizer=leak
  787 	* src/sort.c (pipe_fork, keycompare, sort, main):
  788 	Remove lint code that no longer seems to be needed.
  789 	(sort): Unconditionally compile ifdef lint code that is needed
  790 	to free storage even when not linting.
  791 	(main): Use main_exit, not return.
  792 
  793 	split: pacify -fsanitizer=leak
  794 	* src/split.c (lines_rr): New arg FILESP.  All uses changed.
  795 	(main): Use main_exit, not return.  Omit unnecessary alignfree.
  796 
  797 	ptx: pacify -fsanitizer=leak
  798 	* src/ptx.c (unescape_string): Rename from copy_unescaped_string,
  799 	and unescape the string in place.  Callers changed.  This way,
  800 	we needn’t allocate storage and thus needn’t worry about
  801 	-fsanitizer=leak.
  802 
  803 	seq: pacify -fsanitizer=leak
  804 	* src/seq.c (seq_fast): If successful, exit rather than returning true.
  805 	Callers changed.
  806 	(main): Use main_exit, not return.
  807 
  808 	tsort: pacify -fsanitizer=leak
  809 	* src/tsort.c (struct item.balance): Now signed char to save space.
  810 	(struct item.printed): New member.
  811 	(new_item): Initialize k->printed to false.  Simplify via xzalloc.
  812 	(scan_zeros): Use k->printed rather than nulling out string.
  813 	(tsort): Move exiting code here ...
  814 	(main): ... from here.
  815 	(tsort) [lint]: Omit no-longer-needed code.  Instead, set head->printed.
  816 
  817 	tr: pacify -fsanitizer=leak
  818 	* src/tr.c (main): Use main_exit, not return.
  819 
  820 	stat: pacify -fsanitizer=leak
  821 	* src/stat.c (main):  Use main_exit, not return.
  822 
  823 	comm: pacify -fsanitizer=leak
  824 	* src/comm.c (compare_files): Move exiting code here ...
  825 	(main): ... from here, to pacify gcc -fsanitize=leak.
  826 
  827 	expr: lint cleanup, and introducing main_exit
  828 	This introduces a new macro main_exit, which is useful
  829 	for pacifying gcc -fsanitizer=lint and in some cases
  830 	means we can remove some ‘IF_LINT’ and ‘ifdef lint’ code.
  831 	* src/expr.c (main): Use main_exit, not return.
  832 	(docolon): Omit an IF_LINT that GCC no longer needs.
  833 	* src/system.h (main_exit): New macro.
  834 
  835 2022-01-30  Pádraig Brady  <P@draigBrady.com>
  836 
  837 	cksum: use more exact selection of digest algorithms
  838 	Use more constrained argument matching
  839 	to improve forward compatibility and robustness.
  840 
  841 	For example it's better that `cksum -a sha3` is _not_
  842 	equivalent to `cksum -a sha386`, so that a user
  843 	specifying `-a sha3` on an older cksum would not be surprised.
  844 
  845 	Also argmatch() is used when parsing tags from lines like:
  846 	SHA3 (filename) = abcedf....
  847 	so it's more robust that older cksum instances to fail
  848 	earlier in the parsing process, when parsing output from
  849 	possible future cksum implementations that might support SHA3.
  850 
  851 	* src/digest.c (algorithm_from_tag): Use argmatch_exact()
  852 	to ensure we don't match abbreviated algorithms.
  853 	(main): Likewise.
  854 	* tests/misc/cksum-a.sh: Add a test case.
  855 
  856 2022-01-30  Pádraig Brady  <P@draigBrady.com>
  857 
  858 	build: update gnulib submodule to latest
  859 	To provide argmatch_exact() that does not
  860 	use abbreviated matching, to be used by cksum.
  861 
  862 2022-01-30  Paul Eggert  <eggert@cs.ucla.edu>
  863 
  864 	mv: when installing to dir use dir-relative names
  865 	When the destination for mv is a directory, use functions like openat
  866 	to access the destination files, when such functions are available.
  867 	This should be more efficient and should avoid some race conditions.
  868 	Likewise for 'install'.
  869 	* src/cp.c (must_be_working_directory, target_directory_operand)
  870 	(target_dirfd_valid): Move from here ...
  871 	* src/system.h: ... to here, so that install and mv can use them.
  872 	Make them inline so GCC doesn’t complain.
  873 	* src/install.c (lchown) [HAVE_LCHOWN]: Remove; no longer needed.
  874 	(need_copy, copy_file, change_attributes, change_timestamps)
  875 	(install_file_in_file, install_file_in_dir):
  876 	New args for directory-relative names.  All uses changed.
  877 	Continue to pass full names as needed, for diagnostics and for
  878 	lower-level functions that do not support directory-relative names.
  879 	(install_file_in_dir): Update *TARGET_DIRFD as needed.
  880 	(main): Handle target-directory in the new, cp-like way.
  881 	* src/mv.c (remove_trailing_slashes): Remove static var; now local.
  882 	(do_move): New args for directory-relative names.  All uses changed.
  883 	Continue to pass full names as needed, for diagnostics and for
  884 	lower-level functions that do not support directory-relative names.
  885 	(movefile): Remove; no longer needed.
  886 	(main): Handle target-directory in the new, cp-like way.
  887 	* tests/install/basic-1.sh:
  888 	* tests/mv/diag.sh: Adjust to match new diagnostic wording.
  889 
  890 	cp: fix comment typo
  891 
  892 2022-01-28  Pádraig Brady  <P@draigBrady.com>
  893 
  894 	doc: NEWS: explain _why_ copy_file_range() is used
  895 	* NEWS: Mention why we're making the change in behavior in cat(1).
  896 
  897 	build: update gnulib submodule to latest
  898 	To fix a syntax-check false failure
  899 
  900 2022-01-28  Paul Eggert  <eggert@cs.ucla.edu>
  901 
  902 	dd: synchronize output after write errors
  903 	Problem reported by Sworddragon (Bug#51345).
  904 	* src/dd.c (cleanup): Synchronize output unless dd has been interrupted.
  905 	(synchronize_output): New function, split out from dd_copy.
  906 	Update conversions_mask so synchronization is done at most once.
  907 	(main): Do not die with the output file open, since we want to be
  908 	able to synchronize it before exiting.  Synchronize output before
  909 	exiting.
  910 
  911 	dd: output final progress before syncing
  912 	Problem reported by Sworddragon (Bug#51482).
  913 	* src/dd.c (reported_w_bytes): New var.
  914 	(print_xfer_stats): Set it.
  915 	(dd_copy): Print a final progress report if useful before
  916 	synchronizing output data.
  917 
  918 2022-01-27  Paul Eggert  <eggert@cs.ucla.edu>
  919 
  920 	cat: prefer copy_file_range to read+write
  921 	* src/cat.c (copy_cat): New function.
  922 	(main): Use it.
  923 
  924 	csplit: improve integer overflow checking
  925 	* src/csplit.c: Prefer signed integers to unsigned for sizes
  926 	when either will do.  Check for some unlikely overflows.
  927 	(INCR_SIZE): Remove; no longer used.
  928 	(free_buffer): Also free the arg, simplifying callers.
  929 	(get_new_buffer): Use xpalloc instead of computing new
  930 	size by hand.  Add ATTRIBUTE_DEALLOC.
  931 	(delete_all_files, close_output_file):
  932 	If unlink fails with ENOENT, treat it as success.
  933 	(close_output_file): If unlink fails, decrement count anyway.
  934 	(parse_repeat_count, parse_patterns): Check for int overflow.
  935 	(check_format_conv_type): Use signed format.
  936 
  937 	maint: simplify memory alignment
  938 	Use the new Gnulib modules alignalloc and xalignalloc
  939 	to simplify some memory allocation.
  940 	Also, fix some unlikely integer overflow problems.
  941 	* bootstrap.conf (gnulib_modules): Add alignalloc, xalignalloc.
  942 	* src/cat.c, src/copy.c, src/dd.c, src/shred.c, src/split.c:
  943 	Include alignalloc.h.
  944 	* src/cat.c (main):
  945 	* src/copy.c (copy_reg):
  946 	* src/dd.c (alloc_ibuf, alloc_obuf):
  947 	* src/shred.c (dopass):
  948 	* src/split.c (main):
  949 	Use alignalloc/xalignalloc/alignfree instead of doing page
  950 	alignment by hand.
  951 	* src/cat.c (main):
  952 	Check for integer overflow in page size calculations.
  953 	* src/dd.c (INPUT_BLOCK_SLOP, OUTPUT_BLOCK_SLOP, MAX_BLOCKSIZE):
  954 	(real_ibuf, real_obuf) [lint]:
  955 	Remove; no longer needed.
  956 	(cleanup) [lint]:
  957 	(scanargs): Simplify.
  958 	* src/ioblksize.h (io_blksize): Do not allow blocksizes largest
  959 	than the largest power of two that fits in idx_t and size_t.
  960 	* src/shred.c (PAGE_ALIGN_SLOP, PATTERNBUF_SIZE): Remove.
  961 
  962 	build: update gnulib submodule to latest
  963 
  964 	copy: remove unnecessary ‘free’
  965 	* src/copy.c (copy_reg): Remove a ‘free’ call that does nothing
  966 	because its argument is always a null pointer, starting with
  967 	2007-11-1608:31:15Z!jim@meyering.net.
  968 
  969 	dd: simplify conv=swab code
  970 	Simplify byte-swapping, so that the code no longer needs to
  971 	allocate a page before the input buffer.
  972 	* src/dd.c (SWAB_ALIGN_OFFSET, char_is_saved, saved_char): Remove.
  973 	All uses removed.
  974 	(INPUT_BLOCK_SLOP): Simplify to just page_size.
  975 	(alloc_ibuf, dd_copy): Adjust to new swab_buffer API.
  976 	(swab_buffer): New arg SAVED_BYTE, taking the place of the old
  977 	global variables.  Do not access BUF[-1].
  978 
  979 	dd: improve integer overflow checking
  980 	* src/dd.c: Prefer signed to unsigned types where either will do,
  981 	as this helps improve checking with gcc -fsanitize=undefined.
  982 	Limit the signed types to their intended ranges.
  983 	(MAX_BLOCKSIZE): Don’t exceed IDX_MAX - slop either.
  984 	(input_offset_overflow): Remove; overflow now denoted by negative.
  985 	(parse_integer): Return INTMAX_MAX on overflow, instead of unspecified.
  986 	Do not falsely report overflow for ‘00x99999999999999999999999999999’.
  987 	* tests/dd/misc.sh: New test for 00xBIG.
  988 	* tests/dd/skip-seek-past-file.sh: Adjust to new diagnostic wording.
  989 	New test for BIGxBIG.
  990 
  991 	shred: fix declaration typo
  992 	* gl/lib/randint.h (randint_all_new):
  993 	Do not declare with _GL_ATTRIBUTE_NONNULL (), as
  994 	the arg can be a null pointer.  This fixes a typo added in
  995 	2021-11-01T05:30:28Z!eggert@cs.ucla.edu.
  996 
  997 	cat: prefer signed to unsigned
  998 	* src/cat.c: Prefer signed to unsigned types
  999 	where either will do, as they allow for better
 1000 	overflow checking at runtime.
 1001 
 1002 	cat: improve style
 1003 	* cat.c: Improve style a bit, mostly by assuming C99-style
 1004 	declarations after statements
 1005 
 1006 2022-01-27  Pádraig Brady  <P@draigBrady.com>
 1007 
 1008 	doc: csplit: clarify [OFFSET] syntax
 1009 	* src/csplit.c (usage): Clarify that '+' prefix is optional on OFFSET.
 1010 	* doc/coreutils.texi (csplit invocation): Likewise.
 1011 	Fixes https://bugs.gnu.org/53574
 1012 
 1013 2022-01-15  Paul Eggert  <eggert@cs.ucla.edu>
 1014 
 1015 	build: allow readlinkat calls
 1016 	Problem reported by Bernhard Voelker in:
 1017 	https://lists.gnu.org/r/coreutils/2022-01/msg00026.html
 1018 	* cfg.mk (sc_prohibit_readlink): Remove.  It’s OK to call
 1019 	readlinkat to determine whether a file is a symbolic link.
 1020 
 1021 	cp: rely on Gnulib for copy_file_range workaround
 1022 	Gnulib now replaces copy_file_range on buggy hosts
 1023 	so there is no need for Coreutils to worry about the bug.
 1024 	* src/copy.c: Do not include sys/utsname.h, xstrtol.h.
 1025 	(functional_copy_file_range): Remove.  All uses now
 1026 	simply call copy_file_range.
 1027 
 1028 	build: update gnulib submodule to latest
 1029 
 1030 2022-01-14  Paul Eggert  <eggert@cs.ucla.edu>
 1031 
 1032 	doc: fix pluralization typo
 1033 
 1034 	cp: fix two typos in previous change
 1035 	Somehow ‘make check’ didn’t catch these the first few times.
 1036 	* src/copy.c (copy_dir): Don’t pass null pointer to
 1037 	copy_internal where it now expects non-null if move mode.
 1038 	* src/cp.c (make_dir_parents_private): Initialize *attr_list
 1039 	before recentely-added quick return.
 1040 
 1041 	cp: omit unnecessary stat of destination
 1042 	'cp A B' attempts to open B as a directory, to see whether to
 1043 	write to B/A instead of to B.  In the common case where the
 1044 	open fails with ENOENT, do not bother to stat B afterwards
 1045 	since the stat should also fail with ENOENT.
 1046 	* src/copy.c (copy_internal, copy): Change bool arg about
 1047 	nonexistent destination to a 3-way int argument.  All callers changed.
 1048 	(copy_internal): Do not bother to stat a destination already known
 1049 	to not exist when following symlinks.
 1050 
 1051 2022-01-13  Paul Eggert  <eggert@cs.ucla.edu>
 1052 
 1053 	build: update gnulib submodule to latest
 1054 
 1055 	cp: when copying to dir use dir-relative names
 1056 	When copying to a directory, use functions like openat to access
 1057 	the destination files, when such functions are available.  This
 1058 	should be more efficient and should avoid some race conditions.
 1059 	* bootstrap.conf (gnulib_modules): Add areadlinkat-with-size,
 1060 	fchmodat, fchownat, mkdirat, mkfifoat, utimensat.
 1061 	* src/copy.c (lchown) [!HAVE_LCHOWN]:
 1062 	* src/copy.c, src/system.h (rpl_mkfifo, mkfifo) [!HAVE_MKFIFO]:
 1063 	Remove.  All uses removed.
 1064 	(utimens_symlink): Remove; we shouldn’t have to worry about
 1065 	those obsolete systems any more.  All uses replaced by utimensat.
 1066 	* src/copy.c (copy_dir, set_owner, fchmod_or_lchmod, copy_reg)
 1067 	(same_file_ok, writable_destination, overwrite_ok, abandon_move)
 1068 	(create_hard_link, src_is_dst_backup, copy_internal, copy):
 1069 	* src/cp.c (make_dir_parents_private, re_protect):
 1070 	New args for directory-relative names.  All uses changed.
 1071 	Continue to pass full names as needed, for diagnostics and for
 1072 	lower-level functions like qset_acl that do not support
 1073 	directory-relative names.
 1074 	* src/copy.c (copy_reg): Prefer readlinkat to lstatat for merely
 1075 	checking whether a file is a symlink, to avoid EOVERFLOW issues.
 1076 	(subst_suffix): New function.
 1077 	(create_hard_link): Accept a null SRC_NAME as meaning that if it
 1078 	is needed it needs to be constructed from SRC_RELNAME, DST_NAME,
 1079 	and DST_RELNAME.
 1080 	(source_is_dst_backup): Use subst_suffix instead of doing it by hand.
 1081 	(copy_internal): Remember and use directory-relative names instead
 1082 	of full names.
 1083 	* src/cp.c (lchown) [!HAVE_LCHOWN]: Remove.  All uses removed.
 1084 	(must_be_working_directory): New function.
 1085 	(target_directory_operand): Simply take file name as arg,
 1086 	and return a file descriptor or negative number on failure;
 1087 	open with O_DIRECTORY to obtain any file descriptor.
 1088 	All uses changed.
 1089 	(target_dirfd_valid): New function.
 1090 	(do_copy): Use these new functions to obtain a file descriptor
 1091 	for any target directory, and use directory-relative names
 1092 	for that directory.
 1093 	(main): Omit no-longer-needed stat when --target-directory,
 1094 	as do_copy now does this.
 1095 	* src/ln.c (O_PATHSEARCH): Move from here ...
 1096 	* src/system.h: ... to here.
 1097 	* tests/cp/fail-perm.sh: Adjust to change in diagnostic wording,
 1098 	and add a test for --no-target-directory.
 1099 
 1100 	cp: tweak internal name
 1101 	* src/cp.c (do_copy): Omit confusingly-named local new_dest, since
 1102 	there’s another var new_dst that means something quite different.
 1103 
 1104 2022-01-12  Daniel Knittl-Frank  <knittl89@googlemail.com>
 1105 
 1106 	scripts: fix typo in commit-msg git-hook script
 1107 	Commit 2f438fa9f53250fb3c8b39a95eedd627b5569ca4 (basenc: A new program
 1108 	complementary to base64/base32) introduced a typo in the list of allowed
 1109 	commit message prefixes, accidentally changing "basename" to
 1110 	"nbasename".  Revert it back to the correct "basename".
 1111 
 1112 2022-01-07  Paul Eggert  <eggert@cs.ucla.edu>
 1113 
 1114 	df: tiny simplification
 1115 	* src/df.c (LOG_EQ): Remove.  All callers replaced by ==.
 1116 
 1117 2022-01-02  Pádraig Brady  <P@draigBrady.com>
 1118 
 1119 	maint: update all copyright year number ranges
 1120 	Run "make update-copyright" and then...
 1121 
 1122 	* gnulib: Update to latest with copyright year adjusted.
 1123 	* tests/init.sh: Sync with gnulib to pick up copyright year.
 1124 	* bootstrap: Likewise.
 1125 	* tests/sample-test: Adjust to use the single most recent year.
 1126 
 1127 2022-01-02  Pádraig Brady  <P@draigBrady.com>
 1128 
 1129 	build: update gnulib submodule to latest
 1130 	mainly to get updated copyright year
 1131 
 1132 	* doc/fdl.texi: Sync from gnulib.
 1133 	* .gitignore: Add lib/unictype, as bitmap.h therein is depended on
 1134 	since gnulib commit f698ea71
 1135 
 1136 2021-12-31  Paul Eggert  <eggert@cs.ucla.edu>
 1137 
 1138 	date: new option --resolution
 1139 	* NEWS, doc/coreutils.texi (Options for date): Mention this.
 1140 	* src/date.c (RESOLUTION_OPTION): New constant.
 1141 	(DEBUG_DATE_PARSING_OPTION): Rename from DEBUG_DATE_PARSING.
 1142 	All uses changed.
 1143 	(long_options, usage, main): Support --resolution.
 1144 
 1145 	date: %-N now means suppress extra digits
 1146 	* NEWS, doc/coreutils.texi: Mention this.
 1147 	* bootstrap.conf (gnulib_modules): Add gettime-res.
 1148 	* src/date.c (res_width, adjust_resolution): New functions.
 1149 	(main): Adjust %-N to be %9N, or whatever, before using it.
 1150 
 1151 	build: update gnulib submodule to latest
 1152 
 1153 	doc: Document , vs . in date --rfc-3339=ns
 1154 
 1155 	build: port to AIX 7.1
 1156 	This fixes a porting bug introduced in
 1157 	2019-08-12T03:29:00Z!bruno@clisp.org.
 1158 	Problem discovered on AIX 7.1.
 1159 	* src/local.mk (LDADD): Add $(LIB_MBRTOWC), since pretty much
 1160 	every command uses quotearg or mbrtowc or whatever.
 1161 	(src_sort_LDADD): Add $(LIBPMULTITHREAD) and
 1162 	$(LIB_PTHREAD_SIGMASK) instead of $(LIBTHREAD).
 1163 
 1164 2021-12-28  Paul Eggert  <eggert@cs.ucla.edu>
 1165 
 1166 	build: be more careful about Perl
 1167 	Problem reported by Serge Belyshev (Bug#52844).
 1168 	* configure.ac (HAVE_PERL): Rely on latest Gnulib gl_PERL, which
 1169 	sets gl_cv_prog_perl.
 1170 
 1171 	build: update gnulib submodule to latest
 1172 
 1173 2021-12-27  Max Filippov  <jcmvbkbc@gmail.com>
 1174 
 1175 	all: fix adjustment of /proc/$pid/cmdline by single binary
 1176 	When configured with --enable-single-binary tools issue incorrect prctl:
 1177 
 1178 	  prctl(PR_SET_KEEPCAPS, ...)      = -1 EINVAL (Invalid argument)
 1179 
 1180 	PR_SET_MM_ARG_START is not a prctl 'option' parameter, it's 'arg2'
 1181 	parameter for the option PR_SET_MM.  It also has to have 'arg4' and
 1182 	'arg5' set to 0 explicitly, otherwise the kernel also returns -EINVAL.
 1183 
 1184 	* src/coreutils.c (launch_program): Fix prctl arguments.
 1185 	* NEWS: Mention the improvement.
 1186 	Fixes https://bugs.gnu.org/52800
 1187 
 1188 2021-12-24  Paul Eggert  <eggert@cs.ucla.edu>
 1189 
 1190 	ls: improve doc for =WHEN
 1191 	* src/ls.c (usage): Improve clarity of =WHEN args (Bug#52782).
 1192 
 1193 	doc: colorize -> color
 1194 	Living so close to Hollywood I know that "colorize"
 1195 	means adding color to something that was already monochrome,
 1196 	whereas "color" means to give color to something.
 1197 	Coreutils apps color text instead of colorizing it.
 1198 
 1199 2021-12-20  Bernhard Voelker  <mail@bernhard-voelker.de>
 1200 
 1201 	maint: update tests/init.sh from gnulib
 1202 	* tests/init.sh: Sync from gnulib/tests/init.sh.
 1203 	A recent gnulib update (4f497bf3c) missed this.
 1204 
 1205 2021-12-20  Jim Meyering  <meyering@fb.com>
 1206 
 1207 	maint: syntax-check requires "char const *", not "const char *"
 1208 	* gl/lib/mbsalign.c (mbs_align_pad): Adjust.
 1209 	* src/chroot.c (is_root): Adjust.
 1210 	* src/digest.c (main): Adjust.
 1211 	* src/relpath.c (buffer_or_output) Adjust.
 1212 	* src/ls.c (print_name_with_quoting, get_color_indicator): Adjust.
 1213 
 1214 	maint: split a long line
 1215 	* src/test.c (three_arguments): Split long line.
 1216 
 1217 	maint: commit-msg: compute UTF-8-aware line-length
 1218 	* scripts/git-hooks/commit-msg: Count UTF-8 characters rather
 1219 	than bytes to avoid erroneously rejecting as "longer than 72" a
 1220 	log message line like the UTF-8 one for id.c just prior.  It has
 1221 	77 bytes but only 67 characters.
 1222 	(check_msg): Read in "utf8" mode. Also include actual length
 1223 	in the diagnostic.
 1224 	(main): Don't loop when stdout is redirected, as it is when
 1225 	invoked via vc-dwim.
 1226 	Paul Eggert reported privately both the error of counting bytes
 1227 	rather than chars and the re_edit loop when failing via vc-dwim.
 1228 
 1229 2021-12-19  Paul Eggert  <eggert@cs.ucla.edu>
 1230 
 1231 	id: improve doc for when USER is omitted
 1232 	* src/id.c (usage): “current user” → “current process” (Bug#52656).
 1233 
 1234 2021-12-18  Paul Eggert  <eggert@cs.ucla.edu>
 1235 
 1236 	maint: use GNU style for spacing
 1237 
 1238 2021-12-16  Bruno Haible  <bruno@clisp.org>
 1239 
 1240 	build: non-recursive Automake in a less hacky way
 1241 	* bootstrap.conf (gnulib_modules): Remove
 1242 	non-recursive-gnulib-prefix-hack.
 1243 	(gnulib_tool_option_extras): Add --automake-subdir.
 1244 	(bootstrap_post_import_hook): No need to massage lib/gnulib.mk.
 1245 
 1246 2021-12-16  Paul Eggert  <eggert@cs.ucla.edu>
 1247 
 1248 	build: update bootstrap to latest
 1249 
 1250 	build: update gnulib submodule to latest
 1251 
 1252 2021-12-15  Jim Meyering  <meyering@fb.com>
 1253 
 1254 	maint: factor.c: avoid new GCC 12 warning
 1255 	* src/factor.c (millerrabin2): Mark as ATTRIBUTE_PURE,
 1256 	per advice from GCC 12.
 1257 
 1258 2021-12-14  Paul Eggert  <eggert@cs.ucla.edu>
 1259 
 1260 	build: update gnulib submodule to latest
 1261 	* NEWS: Mention the bugfix.
 1262 
 1263 2021-12-10  Paul Eggert  <eggert@cs.ucla.edu>
 1264 
 1265 	mv: Bug#52410 fix
 1266 	The recent Gnulib update fixed this bug reported by Vincent Vermilya.
 1267 	* tests/mv/backup-dir.sh: Test for Bug#52410.
 1268 
 1269 	build: update gnulib submodule to latest
 1270 
 1271 2021-12-07  Paul Eggert  <eggert@cs.ucla.edu>
 1272 
 1273 	uname: port to recent macOS
 1274 	Problem reported by Jakub Sokołowski (bug #52330).
 1275 	* src/uname.c [__APPLE__]: Don’t include sys/syctl.h,
 1276 	mach/machine.h, mach-o/arch.h.
 1277 	(print_element_env): New function.  With __APPLE__, it defers to the
 1278 	env var UNAME_MACHINE (if given) for uname -m, and similarly for -nrsv.
 1279 	(main): Use it.  For -p with __APPLE__, rely on predefined macros
 1280 	and omit any 64-bit indication, for compatibility with macOS uname.
 1281 
 1282 2021-11-22  Paul Eggert  <eggert@cs.ucla.edu>
 1283 
 1284 	cp: clone on macOS
 1285 	* configure.ac: Check for fclonefileat.
 1286 	* src/copy.c [HAVE_FCLONEFILEAT && !USE_XATTR]:
 1287 	Include <sys/clonefile.h>.
 1288 	(copy_reg): If possible, use fclonefileat to clone.
 1289 
 1290 2021-11-21  Paul Eggert  <eggert@cs.ucla.edu>
 1291 
 1292 	cp: streamline cloning by skipping fstat
 1293 	* src/copy.c (copy_reg): Attempt clone_file before fstat of dest,
 1294 	so that if clone_file succeeds we can skip the fstat.
 1295 
 1296 2021-11-20  Paul Eggert  <eggert@cs.ucla.edu>
 1297 
 1298 	cp: fix --preserve=ownership permissions bug
 1299 	This fixes a bug that I introduced in
 1300 	2006-12-06T19:44:08Z!eggert@cs.ucla.edu.
 1301 	* src/copy.c (USE_XATTR): New macro.
 1302 	(copy_reg): Use it to help the compiler.  Prefer open u+w to a
 1303 	later chmod u=rw; u+r isn’t needed for xattr.  For the later u-r,
 1304 	do only one (or zero) chmod calls instead of two (or one).
 1305 	In the last chmod, respect the umask instead of ignoring it.
 1306 	* tests/cp/preserve-mode.sh: Test for the bug.
 1307 
 1308 2021-11-19  Paul Eggert  <eggert@cs.ucla.edu>
 1309 
 1310 	maint: prefer MAYBE_UNUSED
 1311 	Prefer MAYBE_UNUSED to _GL_UNUSED, since the C2x syntax
 1312 	will be [[maybe_unused]] at the start of the declaration,
 1313 	and we want to look forward to that.  All uses of _GL_UNUSED
 1314 	either changed to MAYBE_UNUSED, or (when not needed) removed.
 1315 
 1316 2021-11-18  Paul Eggert  <eggert@cs.ucla.edu>
 1317 
 1318 	cp: fix security context race
 1319 	This fixes an issue introduced in the fix for Bug#11100.
 1320 	* NEWS: Mention this.
 1321 	* src/copy.c (copy_reg): Fix obscure bug where open-without-CREAT
 1322 	failed with ENOENT and we forget to call set_process_security_ctx
 1323 	before calling open-with-CREAT. Also, don’t bother to unlink
 1324 	DST_NAME if open failed with ENOENT; and if unlink fails with
 1325 	ENOENT, don’t consider that to be an error (someone else could
 1326 	have removed the file for us, and that’s OK).  Also, don’t worry
 1327 	about move mode, since we use O_EXCL|O_CREAT and so won’t open
 1328 	an existing file.
 1329 
 1330 2021-11-17  Paul Eggert  <eggert@cs.ucla.edu>
 1331 
 1332 	maint: update NEWS for macOS fix
 1333 
 1334 	cp: minor clarity tweak
 1335 	* src/copy.c (copy_reg): Use cached data_copy_required.
 1336 
 1337 	cp: fix ptrdiff_t/ssize_t theoretical glitches
 1338 	* src/copy.c (sparse_copy): Use system.h’s SSIZE_MAX.
 1339 	Don’t assume SSIZE_MAX <= PTRDIFF_MAX.
 1340 
 1341 2021-11-16  Paul Eggert  <eggert@cs.ucla.edu>
 1342 
 1343 	build: update gnulib submodule to latest
 1344 
 1345 	maint: fix nonnull decl
 1346 	* gl/lib/randread.h (randread_new): Do not mark with
 1347 	_GL_ATTRIBUTE_RETURNS_NONNULL, since it can return NULL.
 1348 
 1349 2021-11-15  Paul Eggert  <eggert@cs.ucla.edu>
 1350 
 1351 	build: update gnulib submodule to latest
 1352 
 1353 2021-11-13  Pádraig Brady  <P@draigBrady.com>
 1354 
 1355 	tests: avoid false failure in env-signal-handler.sh
 1356 	* tests/misc/env-signal-handler.sh: Use retry_delay_ to
 1357 	avoid a false failure under load, where env hasn't setup
 1358 	the SIGINT handling before timeout(1) sends the SIGINT.
 1359 	Fixes https://bugs.gnu.org/51793
 1360 
 1361 2021-11-01  Pádraig Brady  <P@draigBrady.com>
 1362 
 1363 	maint: fix recent syntax-check failures
 1364 	* cfg.mk (exclude_file_name_regexp--sc_system_h_headers):
 1365 	Add chown-core.h to the regexp, to better decouple from system.h.
 1366 	* src/env.c: Remove minmax.h include already included in system.h.
 1367 	* src/libstdbuf.c: Likewise.
 1368 	* src/prog-fprintf.h: Remove doubled semicolon.
 1369 
 1370 2021-11-01  Paul Eggert  <eggert@cs.ucla.edu>
 1371 
 1372 	maint: use minmax.h instead of rolling our own
 1373 	* gl/lib/mbsalign.c, gl/lib/randread.c, src/system.h (MAX, MIN):
 1374 	Remove; include minmax.h instead.
 1375 	* gl/modules/mbsalign, gl/modules/randread (Depends-on): Add minmax.
 1376 	* src/factor.c (MIN): Remove.
 1377 
 1378 	maint: add function attributes to .h files
 1379 	Add _GL_ATTRIBUTE_NONNULL, _GL_ATTRIBUTE_MALLOC,
 1380 	_GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DALLOC_FREE,
 1381 	_GL_ATTRIBUTE_RETURNS_NONNULL to .h files when appropriate.
 1382 	* gl/lib/mbsalign.h, gl/lib/randperm.h, src/chown-core.h:
 1383 	Include stdlib.h, for the benefit of _GL_ATTRIBUTE_DALLOC_FREE.
 1384 	* gl/lib/randread.c (randread_free_body): New static function.
 1385 	(randread_new, randread_free): Use it.
 1386 	* src/copy.c (valid_options): Remove assert that is no longer
 1387 	needed because it is now checked statically.
 1388 
 1389 	maint: enable -Wsuggest-attribute=format
 1390 	* configure.ac (WERROR_CFLAGS): Enable -Wsuggest-attribute=format
 1391 	for lib/ and src/.
 1392 	* src/copy.c (copy_attr_error, copy_attr_allerror):
 1393 	Add ATTRIBUTE_FORMAT.
 1394 	(copy_attr): Ignore -Wsuggest-attribute=format in the
 1395 	small section of code that needs it ignored.
 1396 	* src/test.c (test_syntax_error): Mark with ATTRIBUTE_FORMAT.
 1397 	(binary_operator): Omit unnecessary NULL args, pacifying
 1398 	-Wsuggest-attribute=format.
 1399 
 1400 	maint: modernize attribute usage
 1401 	* src/system.h (__attribute__): Remove.  Replace all uses that
 1402 	rely on this by _GL_ATTRIBUTE_xxx or ATTRIBUTE_xxx.
 1403 	(ATTRIBUTE_WARN_UNUSED_RESULT): Remove.  Replace all uses by
 1404 	NODISCARD.
 1405 
 1406 	maint: remove unused __attribute__ defn
 1407 	* gl/lib/randread.c (__attribute__): Remove; no longer
 1408 	used after the recent _Noreturn change.
 1409 
 1410 	b2sum: simplify attribute usage
 1411 	* src/blake2/blake2.h (BLAKE2_PACKED): Simplify, and port better
 1412 	to older GCC, by using _GL_ATTRIBUTE_PACKED.
 1413 
 1414 	maint: prefer attribute.h in .c files
 1415 	This will help us make the transition to C2x, where some
 1416 	attributes must come at the start of function decls.
 1417 	Leave the attributes alone in .h files for now,
 1418 	as the Gnulib tradition is to not expose attribute.h to users.
 1419 	* bootstrap.conf (gnulib_modules): Add ‘attribute’.
 1420 	* gl/lib/randperm.c, src/make-prime-list.c, src/system.h:
 1421 	Include attribute.h.
 1422 	* gl/lib/strnumcmp.c (strnumcmp): Remove _GL_ATTRIBUTE_PURE here,
 1423 	as this belongs in the .h file.
 1424 	* gl/lib/strnumcmp.h (strnumcmp): Add _GL_ATTRIBUTE_PURE here.
 1425 	* src/sort.c (human_numcompare, numcompare): Now ATTRIBUTE_PURE;
 1426 	discovered due to strnumcmp.h change.
 1427 	* gl/lib/randperm.c, src/copy.c, src/dd.c, src/df.c, src/digest.c:
 1428 	* src/env.c, src/expr.c, src/factor.c, src/ls.c:
 1429 	* src/make-prime-list.c, src/numfmt.c, src/od.c, src/pathchk.c:
 1430 	* src/pinky.c, src/pr.c, src/ptx.c, src/realpath.c, src/relpath.c:
 1431 	* src/seq.c, src/sort.c, src/stat.c, src/stty.c, src/system.h:
 1432 	* src/tr.c, src/uniq.c, src/wc.c:
 1433 	In .c files, crefer ATTRIBUTE_CONST to _GL_ATTRIBUTE_CONST, and
 1434 	similarly for ATTRIBUTE_FORMAT and ATTRIBUTE_PURE.
 1435 	* src/system.h (FALLTHROUGH): Remove; attribute.h defines it.
 1436 
 1437 2021-10-31  Pádraig Brady  <P@draigBrady.com>
 1438 
 1439 	sort: --debug: add warnings about sign, radix, and grouping chars
 1440 	New warnings are added related to the handling
 1441 	of thousands grouping characters, decimal points, and sign characters.
 1442 	Examples now diagnosed are:
 1443 
 1444 	$ printf '0,9\n1,a\n' | sort -nk1 --debug -t, -s
 1445 	sort: key 1 is numeric and spans multiple fields
 1446 	sort: field separator ‘,’ is treated as a group separator in numbers
 1447 	1,a
 1448 	_
 1449 	0,9
 1450 	___
 1451 
 1452 	$ printf '1,a\n0,9\n' | LC_ALL=fr_FR.utf8 sort -gk1 --debug -t, -s
 1453 	sort: key 1 is numeric and spans multiple fields
 1454 	sort: field separator ‘,’ is treated as a decimal point in numbers
 1455 	0,9
 1456 	___
 1457 	1,a
 1458 	__
 1459 
 1460 	$ printf '1.0\n0.9\n' | LC_ALL=fr_FR.utf8 sort -s -k1,1g --debug
 1461 	sort: note numbers use ‘,’ as a decimal point in this locale
 1462 	0.9
 1463 	_
 1464 	1.0
 1465 	_
 1466 
 1467 	$ LC_ALL=fr_FR.utf8 sort -n --debug /dev/null
 1468 	sort: text ordering performed using ‘fr_FR.utf8’ sorting rules
 1469 	sort: note numbers use ‘,’ as a decimal point in this locale
 1470 	sort: the multi-byte number group separator in this locale \
 1471 	      is not supported
 1472 
 1473 	$ sort --debug -t- -k1n /dev/null
 1474 	sort: key 1 is numeric and spans multiple fields
 1475 	sort: field separator ‘-’ is treated as a minus sign in numbers
 1476 	sort: note numbers use ‘.’ as a decimal point in this locale
 1477 
 1478 	$ sort --debug -t+ -k1g /dev/null
 1479 	sort: key 1 is numeric and spans multiple fields
 1480 	sort: field separator ‘+’ is treated as a plus sign in numbers
 1481 	sort: note numbers use ‘.’ as a decimal point in this locale
 1482 
 1483 	* src/sort.c (key_warnings): Add the warnings above.
 1484 	* tests/misc/sort-debug-warn.sh: Add test cases.
 1485 	Also check that all sort invocations succeed.
 1486 	* NEWS: Mention the improvement.
 1487 	Addresses https://bugs.gnu.org/51011
 1488 
 1489 2021-10-31  Paul Eggert  <eggert@cs.ucla.edu>
 1490 
 1491 	maint: modernize README-{hacking,prereq}
 1492 
 1493 2021-10-30  Paul Eggert  <eggert@cs.ucla.edu>
 1494 
 1495 	cp: revert unnecessary FreeBSD workaround
 1496 	That was a false alarm due to a bug in FreeBSD 9.1 truss;
 1497 	see Pádraig Brady’s report (Bug#51433#29).
 1498 	* src/copy.c (lseek_copy, infer_scantype): Don’t bother checking
 1499 	whether lseek returned -1.  This doesn’t entirely revert the
 1500 	previous change, as it keeps the code simplification of the
 1501 	previous change while reverting the check for -1.
 1502 
 1503 	cp: defend better against FreeBSD 9.1 zfs bug
 1504 	Problem reported by Pádraig Brady (Bug#51433#14).
 1505 	* src/copy.c (lseek_copy, infer_scantype): Report an error if
 1506 	lseek with SEEK_DATA or SEEK_HOLE returns less than -1,
 1507 	as this is an lseek bug.
 1508 
 1509 2021-10-22  Pádraig Brady  <P@draigBrady.com>
 1510 
 1511 	doc: say that printf(1) is preferred over echo(1)
 1512 	* src/echo.c (usage): Say printf(1) is preferred
 1513 	due to being more standard and robust.
 1514 	* man/echo.x [SEE ALSO]: Reference printf(1).
 1515 	* doc/coreutils.texi (echo invocation): Mention in the
 1516 	summary that echo is not robust when outputting
 1517 	any string, and that printf is preferred.
 1518 	Also expand on the examples showing how to
 1519 	output a single '-n' string.
 1520 	Addresses https://bugs.gnu.org/51311
 1521 
 1522 2021-10-12  Pádraig Brady  <P@draigBrady.com>
 1523 
 1524 	doc: timeout --kill-after: clarify disabled timeouts
 1525 	* doc/coreutils.texi (timeout invocation): Clarify
 1526 	that -k is ignored if either its duration or the
 1527 	main timeout duration is 0.
 1528 	Addresses https://bugs.gnu.org/51128
 1529 
 1530 	timeout: ensure --foreground -k exits with status 137
 1531 	* src/timeout.c (main): Propagate the killed status from the child.
 1532 	* doc/coreutils.texi (timeout invocation): Remove the
 1533 	description of the --foreground specific handling of SIGKILL,
 1534 	now that it's consistent with the default mode of operation.
 1535 	* tests/misc/timeout.sh: Add a test case.
 1536 	* NEWS: Mention the change in behavior.
 1537 	Fixes https://bugs.gnu.org/51135
 1538 
 1539 2021-10-11  Pádraig Brady  <P@draigBrady.com>
 1540 
 1541 	doc: timeout --foreground: add clarification on exit status
 1542 	* doc/coreutils.texi (timeout invocation): Add detail on
 1543 	how --foreground allows timeout(1) to use more standard
 1544 	exit status as the uncatchable SIGKILL is not sent to itself.
 1545 	Fixes https://bugs.gnu.org/51135
 1546 
 1547 2021-10-11  Paul Eggert  <eggert@cs.ucla.edu>
 1548 
 1549 	sort: fix unlikely bug when '\377' < 0
 1550 	* gl/lib/strintcmp.c (strintcmp): Don’t assume that the input
 1551 	cannot contain ((char) -1), as this equals '\377' when char is
 1552 	signed (assuming 8-bit char).
 1553 	* src/sort.c (decimal_point): Now char, to make it clear
 1554 	that it’s always in char range now.
 1555 	(NON_CHAR): New constant.
 1556 	(traverse_raw_number): Return char not unsigned char;
 1557 	this is simpler and could be faster.  All callers changed.
 1558 	(main): Do not convert decimal_point and thousands_sep to
 1559 	unsigned char, as this can mishandle comparisons on
 1560 	machines where char is signed and the input data contains
 1561 	((char) -1).  Use NON_CHAR, not -1, as an out-of-range value for
 1562 	thousands_sep.
 1563 
 1564 2021-10-03  Paul Eggert  <eggert@cs.ucla.edu>
 1565 
 1566 	build: update gnulib submodule to latest
 1567 
 1568 	maint: switch to C11-style _Noreturn
 1569 	Use C11-style _Noreturn instead of the old ATTRIBUTE_NORETURN
 1570 	macro.  This pacifies clang on OpenBSD 6.9, which otherwise
 1571 	complains "'noreturn' function does return" in some places.
 1572 	* gl/lib/randread.c, src/system.h (ATTRIBUTE_NORETURN):
 1573 	Remove.  All uses either removed as GCC no longer needs them, or
 1574 	changed to C11-style _Noreturn since Gnulib arranges for _Noreturn
 1575 	globally nowadays.
 1576 
 1577 	ls: port to OpenBSD
 1578 	Problem reported by Brian Callahan (Bug#50972).
 1579 	* src/ls.c (decode_switches): Don’t assume __GNUC_PREREQ.
 1580 
 1581 2021-09-26  Pádraig Brady  <P@draigBrady.com>
 1582 
 1583 	doc: adjust ls --zero option order in texinfo
 1584 	* doc/coreutils.texi (ls invocation - general output formatting):
 1585 	The option ordering was not changed when the option was renamed
 1586 	from --null to --zero.
 1587 
 1588 2021-09-25  Pádraig Brady  <P@draigBrady.com>
 1589 
 1590 	tests: cp/sparse-perf: make more robust and add zfs comments
 1591 	* init.cfg (seek_data_capable_): Add a timeout to ensure failure for
 1592 	slow lseek(...SEEK_DATA) calls (even if that syscall isn't interrupted).
 1593 	* tests/cp/sparse-perf.sh: Run the SEEK_DATA check on the
 1594 	1TiB empty file to exclude both FreeBSD 9.1 which takes 35s,
 1595 	and ZFS which requires a delay of about 5s between file creation
 1596 	and use of SEEK_DATA to correctly determine it's empty (return ENXIO).
 1597 	Also remove the stat size checks as they invalidate the test
 1598 	due to cp never writing data due to it being always zeros,
 1599 	and thus converted to holes in the output.
 1600 
 1601 2021-09-24  Pádraig Brady  <P@draigBrady.com>
 1602 
 1603 	chmod: fix exit status when ignoring symlinks
 1604 	* src/chmod.c: Reorder enum so CH_NOT_APPLIED
 1605 	can be treated as a non error.
 1606 	* tests/chmod/ignore-symlink.sh: A new test.
 1607 	* tests/local.mk: Reference the new test.
 1608 	* NEWS: Mention the bug fix.
 1609 	Fixes https://bugs.gnu.org/50784
 1610 
 1611 	maint: post-release administrivia
 1612 	* NEWS: Add header line for next release.
 1613 	* .prev-version: Record previous version.
 1614 	* cfg.mk (old_NEWS_hash): Auto-update.
 1615 
 1616 	version 9.0
 1617 	* NEWS: Record release date.
 1618 
 1619 	tests: sparse-perf: avoid false failure
 1620 	* tests/cp/sparse-perf.sh: Avoid the case where
 1621 	we saw SEEK_DATA take 35s to return a result
 1622 	against a 1TB sparse file.  This happened on
 1623 	a FreeBSD 9.1 VM at least.
 1624 	Reported by Nelson H. F. Beebe.
 1625 
 1626 	cksum: fix -a crc on 64 bit big endian systems
 1627 	* src/cksum.c (crc_sum_stream): On sparc64 for example,
 1628 	a crc of 0 was printed due to mismatch in size of
 1629 	variable copied between generator and output functions.
 1630 	uint_fast32_t is generally 64 bits on 64 bit systems,
 1631 	so we copy through an int to ensure we don't use the wrong
 1632 	end of a 64 bit variable.
 1633 	Reported by Nelson H. F. Beebe
 1634 
 1635 2021-09-21  Pádraig Brady  <P@draigBrady.com>
 1636 
 1637 	tail: fix detection of closed stdout on macOS
 1638 	* bootstrap.conf: We only need poll on Linux and AIX
 1639 	where poll is not replaced.  Also resinstate dependence
 1640 	on select so we can use it unconditionally.
 1641 	* src/tail.c (check_output_alive): Reinstate use of select()
 1642 	by default as poll was seen to be ineffective for this
 1643 	application on macOS.
 1644 	Fixes https://bugs.gnu.org/50714
 1645 
 1646 	maint: clean up c++ style comments
 1647 	* src/expand-common.h: Remove commented variables.
 1648 	* src/remove.h: Change to C style comment.
 1649 	* src/tail.c: Likewise.
 1650 
 1651 2021-09-20  Pádraig Brady  <P@draigBrady.com>
 1652 
 1653 	tests: date-debug: avoid a false failure on solaris
 1654 	* tests/misc/date-debug.sh: Use a dynamic time format,
 1655 	as the C locale on solaris uses %T rather than %H:%M:%S
 1656 	for the time component.
 1657 
 1658 2021-09-20  Jim Meyering  <meyering@fb.com>
 1659 
 1660 	doc: drop extraneous single quotes in help
 1661 	* src/digest.c (usage) [cksum --help]: Drop single quotes
 1662 	around each checksum name.
 1663 	* src/tee.c (usage) [tee --help]: Likewise.
 1664 
 1665 	cksum: list Pádraig as coauthor
 1666 	* src/digest.c (AUTHORS) [HASH_ALGO_CKSUM]: Add Pádraig as
 1667 	cksum coauthor.
 1668 	* AUTHORS: Likewise.
 1669 
 1670 	tests: env-s.pl: avoid spurious failure on OS X
 1671 	* tests/misc/env-S.pl: The __CF_USER_TEXT_ENCODING envvar
 1672 	would cause many of these sub-tests to fail. Ignore it.
 1673 
 1674 2021-09-20  Pádraig Brady  <P@draigBrady.com>
 1675 
 1676 	build: update gnulib submodule to latest
 1677 	* gnulib: Update to latest.
 1678 	Fixes "extern inline" and "rpl_free" issues.
 1679 
 1680 	doc: fix --help formatting for checksum utils
 1681 	* src/digest.c (usage): Indicate that --length and --algorithm
 1682 	require arguments.  Emit corresponding emit_mandatory_arg_note().
 1683 	Use consistent alignment.
 1684 
 1685 	cksum: support more transparent emulation of older utils
 1686 	* src/digest.c: Allow using the --untagged option with --check,
 1687 	so that `cksum -a md5 --untagged` used to emulate md5sum for example,
 1688 	may be augmented with the --check option.  Also support the --tag
 1689 	option with cksum, to allow overriding a previous --untagged setting.
 1690 	* doc/coreutils.texi: Adjust accordingly.
 1691 	* tests/misc/cksum-a.sh: Likewise.
 1692 
 1693 	tests: avoid rare race in tail-2/F-vs-rename.sh
 1694 	* tests/tail-2/F-vs-rename.sh: Keep stdout and stderr separate,
 1695 	so that interspersion doesn't impact regex checks.  Also wait
 1696 	for each file's data to be printed to avoid multiple writes
 1697 	to a file to be printed in a single iteration, which would
 1698 	impact the regex checks.  Also we refactor the check function,
 1699 	rather than repeatedly redefining variations.
 1700 
 1701 2021-09-17  Pádraig Brady  <P@draigBrady.com>
 1702 
 1703 	maint: remove duplicate from THANKS.in
 1704 	* THANKS.in: Now that Tianjia Zhang has a commit in the repo.
 1705 
 1706 2021-09-17  Tianjia Zhang  <tianjia.zhang@linux.alibaba.com>
 1707 
 1708 	tests: fix typo in cksum-a.sh
 1709 	* tests/misc/cksum-a.sh: fix typo md5um to md5sum.
 1710 
 1711 2021-09-17  Pádraig Brady  <P@draigBrady.com>
 1712 
 1713 	tests: fix rare false failure in tail-2/F-vs-rename
 1714 	This is wrong fix really, as only introducing delay I think.
 1715 
 1716 	* tests/tail-2/F-vs-rename.sh: Avoid a rare false failure
 1717 	due to a race in the test.  Now wait until tail has noticed
 1718 	that b is replaced before writing to a, so that the subsequent
 1719 	write of "y" to b will be displayed independently from
 1720 	current contents of b ("x").
 1721 
 1722 2021-09-17  Pádraig Brady  <P@draigBrady.com>
 1723 
 1724 	tests: port removed-directory test to FreeBSD
 1725 	* tests/ls/removed-directory.sh: On FreeBSD 9.1 at least,
 1726 	one gets ENOENT when trying to traverse the current removed dir
 1727 	with ../, so instead reference the parent dir directly.
 1728 
 1729 2021-09-16  Pádraig Brady  <P@draigBrady.com>
 1730 
 1731 	rmdir: fix uninitialized memory causing incorrect error
 1732 	* src/rmdir.c (main): Only inspect the returned stat structure,
 1733 	when stat(2) returns success.
 1734 
 1735 2021-09-16  Jim Meyering  <meyering@fb.com>
 1736 
 1737 	build: avoid new chmod.c warnings from upcoming GCC12
 1738 	Here are the warnings:
 1739 	src/chmod.c:175:3: error: 'ch.new_mode' may be used uninitialized in\
 1740 	    this function [-Werror=maybe-uninitialized]
 1741 	  175 |   strmode (ch->new_mode, perms);
 1742 	src/chmod.c:178:3: error: 'ch.old_mode' may be used uninitialized in\
 1743 	    this function [-Werror=maybe-uninitialized]
 1744 	  178 |   strmode (ch->old_mode, old_perms);
 1745 
 1746 	* src/chmod.c (process_file): Initialize ch.  Its new_mode and
 1747 	old_mode fields could indeed be used uninitialized to form mode
 1748 	strings, but those are used only when built from initialized members.
 1749 
 1750 2021-09-16  Pádraig Brady  <P@draigBrady.com>
 1751 
 1752 	digest: ignore empty lines when checking
 1753 	* src/digest.c (digest_check): Treat empty lines like comments,
 1754 	as commented checksum files very often have empty lines.
 1755 	* tests/misc/md5sum.pl: Adjust accordingly.
 1756 
 1757 	factor: sync longlong.h adjustments from upstream
 1758 	* src/longlong.h: Sync changes from:
 1759 	https://gmplib.org/repo/gmp/log/tip/longlong.h
 1760 
 1761 	stat,tail: add support for the secretmem file system
 1762 	* src/stat.c (human_fstype): Add case for the 'secretmem'
 1763 	file system type.
 1764 	* NEWS: Mention the Improvement.
 1765 
 1766 	maint: sync help2man to latest version
 1767 	* man/help2man: sync to changes from version 1.48.5.
 1768 	Note this doesn't materially change the generated man pages.
 1769 
 1770 	doc: remove older ChangeLog items
 1771 	* Makefile.am: Update the oldest documented version
 1772 	to 8.25 which is now about 5 years old.
 1773 
 1774 	tests: ensure returns_ check failures are propagated
 1775 	* tests/misc/cksum-a.sh: Set fail=1 if returns_ check fails.
 1776 	* tests/misc/sync.sh: Likewise.
 1777 	* tests/misc/yes.sh: Likewise.
 1778 
 1779 	cksum: fix --check with non tagged format checksums
 1780 	* src/digest.c: Always set the digest_length, so that
 1781 	we check the correct number of hex digits when parsing
 1782 	non tagged format checksums.
 1783 	* tests/misc/cksum-a.sh: Add a test case.  Also fix
 1784 	up this test which was ineffective due to fail=1
 1785 	being set in a subshell and ignored.
 1786 
 1787 2021-09-16  Paul Eggert  <eggert@cs.ucla.edu>
 1788 
 1789 	cksum: fix off-by-1 bug with \r stripping
 1790 	Problem reported by Jim Meyering (Bug#50611).
 1791 	* src/digest.c (digest_check): When stripping trailing \r,
 1792 	avoid subscript error before start of line.
 1793 
 1794 2021-09-15  Paul Eggert  <eggert@cs.ucla.edu>
 1795 
 1796 	maint: prefer rawmemchr to memchr when easy
 1797 	* bootstrap.conf (gnulib_modules): Add rawmemchr.
 1798 	* src/csplit.c: Include idx.h.
 1799 	* src/csplit.c (record_line_starts):
 1800 	* src/head.c (elide_tail_lines_pipe):
 1801 	* src/shuf.c (next_line):
 1802 	* src/split.c (lines_split):
 1803 	* src/tail.c (pipe_lines):
 1804 	* src/wc.c (wc_lines):
 1805 	Prefer rawmemchr to memchr when rawmemchr is easy.
 1806 	* src/csplit.c (load_buffer):
 1807 	* src/head.c (struct linebuffer):
 1808 	Make room for a 1-byte sentinel.
 1809 
 1810 	split: avoid NULL + 1
 1811 	* src/split.c (lines_chunk_split): Don’t add to a null pointer.
 1812 	It’s undefined behavior, and it’s unnecessarily confusing
 1813 	regardless.
 1814 
 1815 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1816 
 1817 	digest: support windows format checksum files
 1818 	Support checksum files with CRLF line endings,
 1819 	which is a common gotcha for using --check on windows,
 1820 	or with checksum files generated on windows.
 1821 	Note we escape \r here to support the original coreutils format
 1822 	(with file name at EOL), and file names with literal
 1823 	\r characters as the last character of their name.
 1824 
 1825 	* src/digest.c (filename_unescape): Convert \\r -> \r.
 1826 	(print_filename): Escape \r -> \\r.
 1827 	(output_file): Detect \r chars in file names.
 1828 	(digest_check): Ignore literal \r char at EOL.
 1829 	* tests/misc/md5sum.pl: Add a test case.
 1830 	* tests/misc/sha1sum.pl: Likewise.
 1831 	* NEWS: Mention the improvement.
 1832 
 1833 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1834 
 1835 	doc: improve --help indenting in checksum utils
 1836 	* src/digest.c (usage): Indent multi-line descriptions for clarity.
 1837 
 1838 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1839 
 1840 	cksum: operate in binary mode only
 1841 	This only practically matters on windows.
 1842 	But given there are separate text handling options in cygwin,
 1843 	keep the interface simple, and avoid exposing the
 1844 	confusing binary/text difference here.
 1845 
 1846 	* doc/coreutils.texi (md5sum invocation): Mention that
 1847 	--binary and --text are not supported by the cksum command.
 1848 	* src/digest.c: Set flag to use binary mode by default.
 1849 	(output_file): Don't distinguish text and binary modes with
 1850 	' ' and '*', and just use ' ' always.
 1851 
 1852 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1853 
 1854 	cksum: use --tag format by default
 1855 	This format is a better default, since it results in simpler usage,
 1856 	as you don't need to specify --tag on generation or -a on
 1857 	checking invocations.  Also it's a more general format supporting
 1858 	mixed and length adjusted digests.
 1859 
 1860 	* doc/coreutils.texi (cksum invocation): Document a new --untagged
 1861 	option, to use the older coreutils format.
 1862 	(md5sum invocation): Mention that cksum doesn't support --tag.
 1863 	* src/digest.c: Adjust cksum(1) to default to --tag,
 1864 	and accept the new --untagged option.
 1865 	* tests/misc/b2sum.sh: Adjust accordingly.
 1866 	* tests/misc/cksum-a.sh: Likewise.
 1867 	* tests/misc/cksum-c.sh: Likewise.
 1868 
 1869 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1870 
 1871 	cksum: support --zero in default mode
 1872 	* src/cksum.h: Thread DELIM through the output functions.
 1873 	* src/digest.c: Likewise.
 1874 	* src/sum.c: Likewise.
 1875 	* src/sum.h: Likewise.
 1876 	* src/cksum.c: Likewise. Also adjust check to allow -z
 1877 	with traditional output modes.  Also ajust the global variable
 1878 	name to avoid shadowing warnings.
 1879 	* tests/misc/cksum-a.sh: Adjust accordingly.
 1880 
 1881 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1882 
 1883 	digest: support -length specifiers on all digest tags
 1884 	This will be generally useful going forward, for sha3-256 etc.
 1885 
 1886 	* src/digest.c: Rename b2_length to digest_length, and
 1887 	adjust/simplify the code to operate on this for both
 1888 	b2sum and cksum -a blake2b.
 1889 
 1890 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1891 
 1892 	cksum: support digest detection for tagged format
 1893 	Support `cksum --check FILE` without having to specify a digest
 1894 	algorithm, allowing for more generic file check instructions.
 1895 	This also supports mixed digest checksum files, supporting
 1896 	more robust multi digest checks.
 1897 
 1898 	* src/digest.c (algorithm_from_tag): A new function to
 1899 	identify the digest algorithm from a tagged format line.
 1900 	(split3): Set the algorithm depending on tag, and update
 1901 	the expected digest length accordingly.
 1902 	* tests/misc/cksum-c.sh: Add a new test.
 1903 	* tests/local.mk: Reference the new test.
 1904 	* tests/misc/md5sum.pl: Adjust to more generic error.
 1905 	* tests/misc/sha1sum.pl: Likewise.
 1906 	* doc/coreutils.texi (md5sum invocation): Mention the new -c feature.
 1907 	* NEWS: Mention the new feature.
 1908 
 1909 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1910 
 1911 	maint: simplify b2sum to only handle BLAKE2b
 1912 	Any further variants will use the cksum -a table driven mechanism.
 1913 
 1914 	* src/digest.c: Remove BLAKE2 specific table driven code.
 1915 
 1916 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1917 
 1918 	digest: add support for sm3
 1919 	Add message digest sm3, which uses the OSCCA SM3 secure
 1920 	hash (OSCCA GM/T 0004-2012 SM3) generic hash transformation.
 1921 
 1922 	* bootstrap.conf: Add the sm3 module.
 1923 	* doc/coreutils.texi: Mention the cksum -a option.
 1924 	* src/digest.c: Provide support for --algorithm='sm3'.
 1925 	* tests/misc/sm3sum.pl: Add a new test (from Tianjia Zhang)
 1926 	* tests/local.mk: Reference the new test.
 1927 	* NEWS: Mention the new feature.
 1928 
 1929 	Tested-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
 1930 
 1931 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1932 
 1933 	cksum: add --algorithm option to select digest mode
 1934 	* src/digest.c: Organize HASH_ALGO_CKSUM to be table driven,
 1935 	and amalgamate all digest algorithms.
 1936 	(main): Parse all options if HASH_ALGO_CKSUM, and disallow
 1937 	--tag, --zero, and --check with the traditional bsd, sysv, and crc
 1938 	checksums for now.
 1939 	* src/local.mk: Reorganize to include all digest modules in cksum.
 1940 	* tests/misc/cksum-a.sh: Add a new test.
 1941 	* tests/misc/b2sum.sh: Update to default to checking with cksum,
 1942 	as b2sum's implementation diverges a bit from the others.
 1943 	* tests/local.mk: Reference the new test.
 1944 	* doc/coreutils.texi (cksum invocation): Adjust the summary to
 1945 	identify the new mode, and document the new --algorithm option.
 1946 	* man/cksum.x: Adjust description to be more general.
 1947 	* man/*sum.x: Add [See Also] section referencing cksum(1).
 1948 	* NEWS: Mention the new feature.
 1949 
 1950 	digest: refactor cksum(1) into digest.c
 1951 	* cfg.mk: Adjust cksum.c to not require config.h
 1952 	and support a main (for crctab) without calling bindtextdomain().
 1953 	* po/POTFILES.in: Remove cksum_pclmul.c since it no longer
 1954 	concerns itself with diagnostics.
 1955 	* src/cksum.c: Refactor to just providing stream digest,
 1956 	and digest printing functionality.
 1957 	* src/cksum.h: Adjust to the new interface.
 1958 	* src/cksum_pclmul.c: Remove diagnostics, and determine errors
 1959 	internally.
 1960 	* src/crctab.c: Separate from cksum.h since that's now included
 1961 	multiple times.
 1962 	* src/digest.c: Provide cksum(1) functionality if -DHASH_ALGO_CKSUM
 1963 	* src/local.mk: Adjust to new crctab.c and HASH_ALGO_CKSUM define.
 1964 
 1965 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1966 
 1967 	cksum: document the --debug option
 1968 	This should have been part of commit v8.32-113-gb73b9fcb1
 1969 
 1970 	* doc/coreutils.texi (cksum invocation): Add the --debug description.
 1971 	* src/cksum.c (usage): Likewise.
 1972 	(main): Also give explicit indication when using generic hardware.
 1973 
 1974 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1975 
 1976 	sum: handle EOVERFLOW for too large inputs
 1977 	* src/sum.c (bsd_sum_stream): Detect overflow when updating length.
 1978 	(sysv_sum_stream): Likewise.
 1979 
 1980 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1981 
 1982 	digest: refactor sum(1) into digest.c
 1983 	Since digest will be providing all digest functionality,
 1984 	refactor sum.c into it.
 1985 
 1986 	* po/POTFILES.in: sum.c no longer has translatable strings so remove.
 1987 	* src/digest.c: Call out to new stream interfaces in sum.c
 1988 	* src/local.mk: Adjust sources for the sum binary.
 1989 	* src/sum.c: Provide a stream interface for BSD and SYSV digests.
 1990 	* src/sum.h: A new file to declare the exported functions in sum.c
 1991 
 1992 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 1993 
 1994 	digest: add LENGTH parameter to digest to support cksum
 1995 	* src/digest.c (digest_file): Add a LENGTH param,
 1996 	to support cksum(1), and sum(1) which output the
 1997 	length as part of their output.
 1998 
 1999 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 2000 
 2001 	maint: rename md5sum.c to more general digest.c
 2002 	md5sum.c will be the base for all digest functions,
 2003 	so rename accordingly.
 2004 
 2005 	* src/md5sum.c: Rename to ...
 2006 	* src/digest.c: ... renamed from md5sum.c
 2007 	* scripts/git-hooks/commit-msg: Allow digest: commit prefix.
 2008 	* po.POTFILES.in: Adjust to new name.
 2009 	* src/local.mk: Likewise.
 2010 
 2011 2021-09-15  Pádraig Brady  <P@draigBrady.com>
 2012 
 2013 	doc: fix ambiguities in logname(1) and whoami(1)
 2014 	* doc/coreutils.texi (whoami invocation): Clarify it prints names,
 2015 	not numeric IDs.
 2016 	* man/whoami.x: Likewise.
 2017 	* man/logname.x: Reference getlogin(3).
 2018 	* src/logname.c: Clarify that it prints the login name,
 2019 	rather than the name of the effective user ID.
 2020 
 2021 	Fixes https://bugs.gnu.org/48894
 2022 
 2023 2021-09-15  nl6720  <nl6720@gmail.com>
 2024 
 2025 	dircolors: add *direct* to TERM matching
 2026 	Search for "direct color" at:
 2027 	https://invisible-island.net/xterm/terminfo.html
 2028 
 2029 	* src/dircolors.hin: Add *direct* to match terminals that
 2030 	support direct colors (24-bit color / TrueColor).
 2031 	The trailing * will match entries like xterm-direct2.
 2032 
 2033 	Addresses https://bugs.gnu.org/39827
 2034 
 2035 2021-09-12  Pádraig Brady  <P@draigBrady.com>
 2036 
 2037 	tests: stat-vs-dirent.sh: avoid a false failure
 2038 	* tests/ls/stat-vs-dirent.sh: Skip the test if we can't stat(1),
 2039 	as the file may have been removed, or have a malformed name
 2040 	due to '\n' etc. in the file name.
 2041 
 2042 2021-09-09  Pádraig Brady  <P@draigBrady.com>
 2043 
 2044 	tests: add new stdin reading programs to tty-eof test
 2045 	* tests/misc/tty-eof.pl: Add b2sum and basenc.
 2046 
 2047 	build: update gnulib submodule to latest
 2048 	* gnulib: Update to latest. This fixes a gnulib test failure in base64,
 2049 	among other fixes.
 2050 	* cfg.mk: Disable sc_indent as auto indent is too invasive for now.
 2051 
 2052 2021-09-09  Pádraig Brady  <P@draigBrady.com>
 2053 
 2054 	doc: fix repeated word
 2055 	A proposed change to gnulib's sc_prohibit_doubled_word
 2056 	was made to detect this in future.
 2057 
 2058 	* README: s/can can/can/.
 2059 	Fixes https://bugs.gnu.org/50484
 2060 
 2061 2021-09-09  Paul Eggert  <eggert@cs.ucla.edu>
 2062 
 2063 	doc: can “can can”
 2064 	Problem reported by Akbarkhon Variskhanov (Bug#50484).
 2065 
 2066 2021-09-08  Paul Eggert  <eggert@cs.ucla.edu>
 2067 
 2068 	doc: add missing "as" (thanks to Nelson H.F. Beebe)
 2069 
 2070 2021-09-05  Justin Tracey  <j2tracey@gmail.com>
 2071 
 2072 	tests: narrow scope of faulty join args
 2073 	* tests/misc/join.pl: Only test invalid-j with an invalid -j field,
 2074 	not with missing operands as well.
 2075 
 2076 2021-08-31  Pádraig Brady  <P@draigBrady.com>
 2077 
 2078 	doc: indicate the default algorithm in the sum(1) man page
 2079 	* src/sum.c (usage): Indicate that -r (BSD algorithm) is the default.
 2080 
 2081 2021-08-31  Pádraig Brady  <P@draigBrady.com>
 2082 
 2083 	sum: always output a file name if one passed
 2084 	Adjust to output the file name if any name parameter is passed.
 2085 	This is consistent with sum -s, cksum, and sum implementations
 2086 	on other platforms.  This should not cause significant compat
 2087 	issues, as multiple fields are already output, and so already
 2088 	need to be parsed.
 2089 
 2090 	* src/sum.c (bsd_sum_file): Output the file name
 2091 	if any name parameter is passed.
 2092 	* tests/misc/sum.pl: Adjust accordingly.
 2093 	* doc/coreutils.texi (sum invocation): Likewise.
 2094 	* NEWS: Mention the change in behavior.
 2095 
 2096 2021-08-31  Paul Eggert  <eggert@cs.ucla.edu>
 2097 
 2098 	tests: port better to NetBSD
 2099 	* tests/misc/help-version.sh: Test that /dev/full causes
 2100 	shell printf to fail.  This ports better to NetBSD 9.88.46,
 2101 	where it doesn’t.  Problem reported by Nelson H. F. Beebe.
 2102 
 2103 	tests: merge help-version changes back from gzip
 2104 	* tests/misc/help-version.sh: Merge gzip-related changes
 2105 	back from gzip/tests/help-version.  This fixes problems
 2106 	when TERM is not 'dumb', and should simplify maintenance.
 2107 
 2108 2021-08-30  Assaf Gordon  <assafgordon@gmail.com>
 2109 
 2110 	basenc: fix bug49741: using wrong decoding buffer length
 2111 	Emil Lundberg <lundberg.emil@gmail.com> reports in
 2112 	https://bugs.gnu.org/49741 about a 'basenc --base64 -d' decoding bug.
 2113 	The input buffer length was not divisible by 3, resulting in
 2114 	decoding errors.
 2115 
 2116 	* NEWS: Mention fix.
 2117 	* src/basenc.c (DEC_BLOCKSIZE): Change from 1024*5 to 4200 (35*3*5*8)
 2118 	which is divisible by 3,4,5,8 - satisfying both base32 and base64;
 2119 	Use compile-time verify() macro to enforce the above.
 2120 	* tests/misc/basenc.pl: Add test.
 2121 
 2122 2021-08-28  Paul Eggert  <eggert@cs.ucla.edu>
 2123 
 2124 	basenc: prefer signed to unsigned integers
 2125 	This patch modifies basenc to prefer signed integers to
 2126 	unsigned, as signed are less error-prone.
 2127 	This patch also updates Gnulib to to latest, which updates Gnulib’s
 2128 	base32 and base64 modules to prefer signed to unsigned integers.
 2129 	* src/basenc.c: Include idx.h.
 2130 	(struct base2_decode_context): Use unsigned char, not unsigned
 2131 	for an octet that must fit in an unsigned char.
 2132 	(base_encode, struct base_decode_context)
 2133 	(base64_decode_ctx_wrapper, prepare_inbuf, base64url_encode)
 2134 	(base64url_decode_ctx_wrapper, base32_decode_ctx_wrapper)
 2135 	(base32hex_encode, base32hex_decode_ctx_wrapper, base16_encode)
 2136 	(base16_decode_ctx, z85_encode, Z85_HI_CTX_TO_32BIT_VAL)
 2137 	(z85_decoding, z85_decode_ctx, base2msbf_encode)
 2138 	(base2lsbf_encode, base2lsbf_decode_ctx, base2msbf_decode_ctx)
 2139 	(wrap_write, do_encode, do_decode, main):
 2140 	Prefer signed integers to unsigned.
 2141 	(main): Treat extremely large wrap columns as if they were
 2142 	infinite; that’s good enough.  Since we’re now using xstrtoimax,
 2143 	this allows ‘-w -0’ (same as ‘-w 0’).
 2144 	* tests/misc/base64.pl (gen_tests): -w-0 is no longer an error.
 2145 
 2146 2021-08-25  Jim Meyering  <meyering@fb.com>
 2147 
 2148 	maint: avoid new syntax-check failure
 2149 	find-mount-point.h rightly includes <stdlib.h> for its use
 2150 	of _GL_ATTRIBUTE_DEALLOC_FREE, which uses free, yet that new
 2151 	inclusion provoked a syntax-check failure. Exempt this header
 2152 	file as we've done for others.
 2153 	* cfg.mk (exclude_file_name_regexp--sc_system_h_headers):
 2154 	Add find-mount-point.h to the regexp.
 2155 	(sc_system_h_headers): Use grep -E, for a more readable regexp.
 2156 
 2157 2021-08-25  Pádraig Brady  <P@draigBrady.com>
 2158 
 2159 	tests: avoid reflinks when testing SEEK_DATA logic
 2160 	This better tests the SEEK_HOLE logic which
 2161 	replaced the original fiemap hole identification logic.
 2162 	Also it avoids a false failure in sparse-2.sh
 2163 	on reflink supporting file systems, where we
 2164 	try to correlate the file sizes produced by cp and dd.
 2165 
 2166 	* tests/cp/sparse-2.sh: s/cp/cp --reflink=never/
 2167 	* tests/cp/sparse-extents-2.sh: Likewise.
 2168 	* tests/cp/sparse-extents.sh: Likewise.
 2169 	* tests/cp/sparse-perf.sh: Likewise.
 2170 	* tests/cp/sparse.sh: Likewise.
 2171 
 2172 	Fixes https://github.com/coreutils/coreutils/issues/54
 2173 
 2174 2021-08-22  Paul Eggert  <eggert@cs.ucla.edu>
 2175 
 2176 	df: pacify -Wsuggest-attribute=malloc
 2177 	Problem found with latest Gnulib and GCC 11.2.1.
 2178 	* src/find-mount-point.h (find_mount_point):
 2179 	Add _GL_ATTRIBUTE_MALLOC and _GL_ATTRIBUTE_DEALLOC_FREE.
 2180 
 2181 	build: update gnulib submodule to latest
 2182 
 2183 	maint: use clearerr on stdin when appropriate
 2184 	This is so that commands like ‘fmt - -’ read from stdin
 2185 	both times, even when it is a tty.  Fix some other minor
 2186 	issues that are related.
 2187 	* src/blake2/b2sum.c (main):
 2188 	* src/cksum.c (cksum):
 2189 	* src/cut.c (cut_file):
 2190 	* src/expand-common.c (next_file):
 2191 	* src/fmt.c (fmt):
 2192 	* src/fold.c (fold_file):
 2193 	* src/md5sum.c (digest_file, digest_check):
 2194 	* src/nl.c (nl_file):
 2195 	* src/od.c (check_and_close):
 2196 	* src/paste.c (paste_parallel, paste_serial):
 2197 	* src/pr.c (close_file):
 2198 	* src/sum.c (bsd_sum_file):
 2199 	Use clearerr on stdin so that stdin can be read multiple times
 2200 	even if it is a tty.  Do not assume that ferror preserves errno as
 2201 	POSIX does not guarantee this.  Coalesce duplicate diagnostic
 2202 	calls.
 2203 	* src/blake2/b2sum.c (main):
 2204 	* src/fmt.c (main, fmt):
 2205 	Report read error, even if it's merely fclose failure.
 2206 	* src/fmt.c: Include die.h.
 2207 	(fmt): New arg FILE.  Close input (reporting error) if not stdin.
 2208 	All callers changed.
 2209 	* src/ptx.c (swallow_file_in_memory): Clear stdin's EOF flag.
 2210 	* src/sort.c (xfclose): Remove unnecessary feof call.
 2211 
 2212 	doc: spell out stdin, stdout, stderr
 2213 	* doc/coreutils.texi: Spell out words like “stdin” in
 2214 	English prose.
 2215 
 2216 2021-08-16  Paul Eggert  <eggert@cs.ucla.edu>
 2217 
 2218 	chmod: fix use of uninitialized var if -v
 2219 	Problem reported by Michael Debertol (Bug#50070).
 2220 	* NEWS: Mention the fix.
 2221 	* src/chmod.c (struct change_status): New struct, replacing the
 2222 	old enum Change_status.  All uses changed.
 2223 	(describe_change): Distinguish between cases depending on
 2224 	whether 'stat' or its equivalent succeeded.  Report a line
 2225 	of output even if 'stat' failed, as that matches the documentation.
 2226 	Rework to avoid casts.
 2227 	(process_file): Do not output nonsense modes computed from
 2228 	uninitialized storage, removing a couple of IF_LINTs.  Simplify by
 2229 	defaulting to CH_NO_STAT.
 2230 
 2231 2021-08-14  Pádraig Brady  <P@draigBrady.com>
 2232 
 2233 	maint: update .gitignore
 2234 	* .gitignore: ignore new lib/malloc gnulib directory.
 2235 
 2236 	maint: allow hook script accept "Signed-off-by:"
 2237 	* scripts/git-hooks/commit-msg: Relax this constraint.
 2238 
 2239 2021-08-11  Paul Eggert  <eggert@cs.ucla.edu>
 2240 
 2241 	df: fix bug with automounted
 2242 	If the command-line argument is automounted, df would use
 2243 	stat info that became wrong after the following open.
 2244 	* NEWS: Mention the fix (bug#50012).
 2245 	* src/df.c (automount_stat_err): New function.
 2246 	This fixes the hang on fifos in a better way, by using O_NONBLOCK.
 2247 	(main): Use it.
 2248 
 2249 2021-08-08  Pádraig Brady  <P@draigBrady.com>
 2250 
 2251 	cat: with -E fix handling of \r\n spanning buffers
 2252 	We must delay handling when \r is the last character
 2253 	of the buffer being processed, as the next character
 2254 	may or may not be \n.
 2255 
 2256 	* src/cat.c (pending_cr): A new global to record whether
 2257 	the last character processed (in -E mode) is '\r'.
 2258 	(cat): Honor pending_cr when processing the start of the buffer.
 2259 	(main): Honor pending_cr if no more files to process.
 2260 	* tests/misc/cat-E.sh: Add test cases.
 2261 	Fixes https://bugs.gnu.org/49925
 2262 
 2263 2021-07-31  Paul Eggert  <eggert@cs.ucla.edu>
 2264 
 2265 	maint: update .gitignore
 2266 
 2267 	build: update gnulib submodule to latest
 2268 
 2269 	uniq: pacify GCC -fanalyzer
 2270 	Pacify GCC 11.1 -fanalyzer.
 2271 	* src/uniq.c (check_file): Use simpler test to check whether this
 2272 	is the first time through the loop.  Although the old test was
 2273 	correct, the new one is easier to understand and perhaps a tiny
 2274 	bit more efficient.
 2275 
 2276 	numfmt: omit unnecessary pointer test
 2277 	Caught by GCC 11.1 -fanalyzer.
 2278 	* src/numfmt.c (simple_strtod_int): Remove unnecessary test of
 2279 	*endptr vs NULL.  Presumably this was a typo and **endptr was
 2280 	intended instead of *endptr, but an **endptr test is also
 2281 	unnecessary since c_isdigit (0) returns false.
 2282 
 2283 2021-07-29  Pádraig Brady  <P@draigBrady.com>
 2284 
 2285 	doc: add options summary list to tr texinfo
 2286 	* doc/coreutils.texi (tr invocation): Provide a summary
 2287 	list of the available options, which is useful to
 2288 	provide a quick reminder for those already familiar
 2289 	with the functionality of tr.
 2290 	Fixes https://bugs.gnu.org/49764
 2291 
 2292 2021-07-28  Pádraig Brady  <P@draigBrady.com>
 2293 
 2294 	tests: augment new ls --zero test cases
 2295 	* tests/ls/zero-option.sh: Check for the disabled, disallowed,
 2296 	and allowed option combinations.
 2297 
 2298 	maint: avoid syntax-check failures in recent ls changes
 2299 	* src/ls.c: Fix ifdef indenting and long line.
 2300 
 2301 2021-07-28  Paul Eggert  <eggert@cs.ucla.edu>
 2302 
 2303 	doc: modernize usage of “disk” and “core”
 2304 	In documentation and comments, don’t assume that secondary storage
 2305 	devices are disk devices.  Similarly, don’t assume that main memory
 2306 	uses magnetic cores, which became obsolete in the 1970s.
 2307 	* src/du.c (usage):
 2308 	* src/ls.c (usage):
 2309 	* src/shred.c (usage): Reword to avoid “disk” in usage messages.
 2310 
 2311 	doc: improve ls documentation
 2312 	* doc/coreutils.texi (ls invocation): Document implementation more
 2313 	closely.  Be more consistent about style.  Omit some needless words.
 2314 	* src/ls.c (usage): Don’t overdocument -f, as the details were wrong.
 2315 	Omit -1 advice as it’s a bit obsolete now that we have --zero and
 2316 	is a bit much for --usage output anyway.
 2317 
 2318 	ls: rename --null to --zero (Bug#49716)
 2319 	* NEWS, doc/coreutils.texi (General output formatting):
 2320 	* src/ls.c (usage):
 2321 	Document this.
 2322 	* src/ls.c (ZERO_OPTION): Rename from NULL_OPTION.
 2323 	All uses changed.
 2324 	(long_options): Rename --null to --zero.
 2325 	(dired_dump_obstack, main, print_dir): Use '\n' instead of
 2326 	eolbyte where eolbyte must equal '\n'.
 2327 	(decode_switches): Decode --zero instead of --null.
 2328 	--zero also implies -1, -N, --color=none, --show-control-chars.
 2329 	Use easier-to-decipher code to set ‘format’ and ‘dired’.
 2330 	Reject attempts to combine --dired and --zero.
 2331 	* tests/local.mk: Adjust to test script renaming.
 2332 	* tests/ls/zero-option.sh: Rename from tests/ls/null-option.sh,
 2333 	and test --zero instead of --null.
 2334 
 2335 	ls: compute defaults more lazily
 2336 	* src/ls.c (enum time_type, enum sort_type, enum indicator_style)
 2337 	(enum Dereference_symlink, ignore_mode):
 2338 	Put ‘= 0’ after default values, since the code relies
 2339 	on static storage defaulting to zero.
 2340 	(enum sort_type): Reorder so that -1 can be used to represent unset.
 2341 	(main): Test print_with_color after parse_ls_color may have reset it.
 2342 	(decode_line_length): Return the line length instead of setting
 2343 	static storage.  All uses changed.  Treat line lengths exceeding
 2344 	PTRDIFF_MAX as infinite, to avoid pointer-subtraction glitches.
 2345 	(stdout_isatty): New function, to avoid calling isatty twice.
 2346 	(decode_switches): Calculate defaults more lazily, to avoid using
 2347 	syscalls or getenv during startup unless the results are more
 2348 	likely to be needed.  Use -1 to indicate options that haven’t been
 2349 	set on the command line yet.  Move print_with_color test from
 2350 	here to ‘main’.  Suppress bogus GCC warning.
 2351 	(getenv_quoting_style): Return the quoting style instead of
 2352 	setting static storage.
 2353 	(init_column_info): New arg MAX_COLS, to avoid recalculating it.
 2354 	Caller changed.
 2355 
 2356 2021-07-26  Pádraig Brady  <P@draigBrady.com>
 2357 
 2358 	maint: avoid recent syntax-check issues
 2359 	* .gitignore: Cater for recently added poll module.
 2360 	* src/stdbuf.c: Avoid false positive from sc_prohibit_readlink.
 2361 
 2362 2021-07-26  Paul Eggert  <eggert@cs.ucla.edu>
 2363 
 2364 	ls: add --null option (Bug#49716)
 2365 	* NEWS, doc/coreutils.texi (General output formatting):
 2366 	* src/ls.c (usage): Document this.
 2367 	* src/ls.c (NULL_OPTION): New constant.
 2368 	(long_options): Add --null.
 2369 	(eolbyte): New static var.
 2370 	(dired_dump_obstack, main, print_dir, print_current_files)
 2371 	(print_many_per_line, print_horizontal, print_with_separator):
 2372 	Output eolbyte instead of '\n'.
 2373 	(decode_switches): Decode --null.
 2374 	* tests/ls/null-option.sh: New file.
 2375 	* tests/local.mk (all_tests): Add it.
 2376 
 2377 	ls: port to wider off_t, uid_t, gid_t
 2378 	* src/ls.c (dired_pos): Now off_t, not size_t, since it counts
 2379 	output file offsets.
 2380 	(dired_dump_obstack): This obstack's file offsets are now
 2381 	off_t, not size_t.
 2382 	(format_user_or_group, format_user_or_group_width):
 2383 	ID arg is now uintmax_t, not unsigned long, since uid_t and
 2384 	gid_t values might exceed ULONG_MAX.
 2385 	(format_user_or_group_width): Use snprintf with NULL instead of
 2386 	sprintf with a discarded buffer.  This avoids a stack buffer,
 2387 	and so should be safer.
 2388 
 2389 	ls: demacroize
 2390 	Prefer functions or constants to macros where either will do.
 2391 	That’s cleaner, and nowadays there’s no performance reason to
 2392 	prefer macros.  All uses changed.
 2393 	* src/ls.c (INITIAL_TABLE_SIZE, MIN_COLUMN_WIDTH):
 2394 	Now constants instead of macros.
 2395 	(file_or_link_mode): New function, replacing the old macro
 2396 	FILE_OR_LINK_MODE.
 2397 	(dired_outbyte): New function, replacing the old macro DIRED_PUTCHAR.
 2398 	(dired_outbuf): New function, replacing the old macro DIRED_FPUTS.
 2399 	(dired_outstring): New function, replacing the old macro
 2400 	DIRED_FPUTS_LITERAL.
 2401 	(dired_indent): New function, replacing the old macro DIRED_INDENT.
 2402 	(push_current_dired_pos): New function, replacing the old macro
 2403 	PUSH_CURRENT_DIRED_POS.
 2404 	(assert_matching_dev_ino): New function, replacing the old macro
 2405 	ASSERT_MATCHING_DEV_INO.
 2406 	(do_stat, do_lstat, stat_for_mode, stat_for_ino, fstat_for_ino)
 2407 	(signal_init, signal_restore, cmp_ctime, cmp_mtime, cmp_atime)
 2408 	(cmp_btime, cmp_size, cmp_name, cmp_extension)
 2409 	(fileinfo_name_width, cmp_width, cmp_version):
 2410 	No longer inline; compilers can deduce this well enough nowadays.
 2411 	(main): Protect unused assert with ‘if (false)’ rather than
 2412 	commenting it out, so that the compiler checks the code.
 2413 	(print_dir): Output the space and newline in the same buffer
 2414 	as the human-readable number they surround.
 2415 	(dirfirst_check): New function, replacing the old macro
 2416 	DIRFIRST_CHECK.  Simplify by using subtraction.
 2417 	(off_cmp): New function, replacing the old macro longdiff.
 2418 	(print_long_format): No need to null-terminate the string now.
 2419 	(format_user_or_group): Let printf count the bytes.
 2420 
 2421 	ls: simplify sprintf usage
 2422 	* src/ls.c (format_user_or_group_width, print_long_format):
 2423 	Use return value from sprintf instead of calling strlen on
 2424 	the resulting buffer, or inferring the length some other way.
 2425 
 2426 	build: update gnulib submodule to latest
 2427 
 2428 	maint: fix white space
 2429 
 2430 	env: fix usage typo
 2431 	* src/env.c (usage): Fix pluralization typo.
 2432 
 2433 2021-07-02  Kamil Dudka  <kdudka@redhat.com>
 2434 
 2435 	df: fix duplicated remote entries due to bind mounts
 2436 	As originally reported in <https://bugzilla.redhat.com/1962515>,
 2437 	df invoked without -a printed duplicated entries for NFS mounts
 2438 	of bind mounts.  This is a regression from commit v8.25-54-g1c17f61ef99,
 2439 	which introduced the use of a hash table.
 2440 
 2441 	The proposed patch makes sure that the devlist entry seen the last time
 2442 	is used for comparison when eliminating duplicated mount entries.  This
 2443 	way it worked before introducing the hash table.
 2444 
 2445 	Patch co-authored by Roberto Bergantinos.
 2446 
 2447 	* src/ls.c (struct devlist): Introduce the seen_last pointer.
 2448 	(devlist_for_dev): Return the devlist entry seen the last time if found.
 2449 	(filter_mount_list): Remember the devlist entry seen the last time for
 2450 	each hashed item.
 2451 	* NEWS: Mention the bug fix.
 2452 	Fixes https://bugs.gnu.org/49298
 2453 
 2454 2021-06-27  Paul Eggert  <eggert@cs.ucla.edu>
 2455 
 2456 	tail: use poll, not select
 2457 	This fixes an unlikely stack out-of-bounds write reported by
 2458 	Stepan Broz via Kamil Dudka (Bug#49209).
 2459 	* bootstrap.conf (gnulib_modules): Replace select with poll.
 2460 	* src/tail.c: Do not include <sys/select.h>.
 2461 	[!_AIX]: Include poll.h.
 2462 	(check_output_alive) [!_AIX]: Use poll instead of select.
 2463 	(tail_forever_inotify): Likewise.  Simplify logic, as there is no
 2464 	need for a ‘while (len <= evbuf_off)’ loop.
 2465 
 2466 	tail: fix abuse2 test race
 2467 	* tests/tail-2/inotify-hash-abuse2.sh (fastpoll):
 2468 	Fix race where tailed file ‘f’ temporarily did not exist.
 2469 
 2470 	maint: while (1) → while (true)
 2471 
 2472 2021-06-21  Nikolay Nechaev  <Nikolay_Nechaev@mail.ru>
 2473 
 2474 	maint: remove redundant checks on buffer sizes in tail
 2475 	* src/tail.c: remove redundant size checks before calls to
 2476 	`xwrite_stdout`
 2477 
 2478 2021-06-21  Pádraig Brady  <P@draigBrady.com>
 2479 
 2480 	stat: use decomposed decimal device numbers by default
 2481 	* src/stat.c (default_format): Use decomposed decimal
 2482 	representation (major,minor) in the default format.
 2483 	This is least ambiguous for human interpretation,
 2484 	and more consistent with ls for example.
 2485 	Fixes https://bugs.gnu.org/48960
 2486 
 2487 2021-06-21  Pádraig Brady  <P@draigBrady.com>
 2488 
 2489 	stat: support more device number representations
 2490 	In preparation for changing the default device number
 2491 	representation (to decomposed decimal), provide more
 2492 	formatting options for device numbers.
 2493 
 2494 	These new (FreeBSD compat) formatting options are added:
 2495 
 2496 	   %Hd  major device number in decimal (st_dev)
 2497 	   %Ld  minor device number in decimal (st_dev)
 2498 	   %Hr  major device type in decimal (st_rdev)
 2499 	   %Lr  minor device type in decimal (st_rdev)
 2500 	   %r   (composed) device type in decimal (st_rdev)
 2501 	   %R   (composed) device type in hex (st_rdev)
 2502 
 2503 	* doc/coreutils.texi (stat invocation): Document new formats.
 2504 	* src/stat.c (print_it): Handle the new %H and %L modifiers.
 2505 	(print_statfs): Adjust to passing the format as two chars
 2506 	rather than an int.  Using an int was introduced in commit db42ae78,
 2507 	but using separate chars is cleaner and more extensible.
 2508 	(print_stat): Likewise.  Handle any modifiers and the new 'r' format.
 2509 	(usage): Document the new formats.
 2510 	* tests/misc/stat-fmt.sh: Add a test case for new modifiers.
 2511 	Addresses https://bugs.gnu.org/48960
 2512 
 2513 2021-06-12  Paul Eggert  <eggert@cs.ucla.edu>
 2514 
 2515 	build: update gnulib submodule to latest
 2516 	Coreutils mistakenly did not list xstrndup as a module
 2517 	that it depends on directly.  When the latest Gnulib removed
 2518 	the dirname module's dependency on xstrndup, this mistake
 2519 	caused coreutils to not build.  Since all of Coreutils's
 2520 	uses of xstrndup know the string length, xmemdup0 is a better
 2521 	match for what's needed.  Since the size args are typically
 2522 	signed or derived from subtracting pointers, the new Gnulib
 2523 	ximemdup0 function is a better match yet.
 2524 	So, use ximemdup0 instead of xstrndup.
 2525 	* src/cut.c, src/dircolors.c, src/expand-common.c, src/expand.c:
 2526 	* src/numfmt.c, src/set-fields.c, src/unexpand.c:
 2527 	Do not include xstrndup.h; no longer needed.
 2528 	* src/dircolors.c (parse_line):
 2529 	* src/expand-common.c (parse_tab_stops):
 2530 	* src/numfmt.c (parse_format_string):
 2531 	* src/set-fields.c (set_fields):
 2532 	Use ximemdup0 instead of xstrndup.
 2533 
 2534 2021-05-28  Jim Meyering  <meyering@fb.com>
 2535 
 2536 	maint: bootstrap: remove reference to unused hash-pjw module
 2537 	* bootstrap.conf (gnulib_modules): Remove hash-pjw. No longer used.
 2538 
 2539 2021-05-15  Pádraig Brady  <P@draigBrady.com>
 2540 
 2541 	build: update gnulib submodule to latest
 2542 	Fixes a false test failure with MALLOC_CHECK_ set.
 2543 
 2544 	* gnulib: Update to latest.
 2545 
 2546 2021-05-15  Pádraig Brady  <P@draigBrady.com>
 2547 
 2548 	copy: remove fiemap logic
 2549 	This is now only used on 10 year old linux kernels,
 2550 	and performs a sync before each copy.
 2551 
 2552 	* src/copy.c (extent_copy): Remove function and all callers.
 2553 	* src/extent-scan.c: Remove.
 2554 	* src/extent-scan.h: Remove.
 2555 	* src/fiemap.h: Remove.
 2556 	* src/local.mk: Adjust for removed files.
 2557 	* NEWS: Adjust to say fiemap is removed.
 2558 
 2559 2021-05-13  Pádraig Brady  <P@draigBrady.com>
 2560 
 2561 	copy: disallow copy_file_range() on Linux kernels before 5.3
 2562 	copy_file_range() before Linux kernel release 5.3 had many issues,
 2563 	as described at https://lwn.net/Articles/789527/, which was
 2564 	referenced from https://lwn.net/Articles/846403/; a more general
 2565 	article discussing the generality of copy_file_range().
 2566 	Linux kernel 5.3 was released in September 2019, which is new enough
 2567 	that we need to actively avoid older kernels.
 2568 
 2569 	* src/copy.c (functional_copy_file_range): A new function
 2570 	that returns false for Linux kernels before version 5.3.
 2571 	(sparse_copy): Call this new function to gate use of
 2572 	copy_file_range().
 2573 
 2574 2021-05-12  Pádraig Brady  <P@draigBrady.com>
 2575 
 2576 	tests: fix tests/cp/sparse-2.sh false failure on some systems
 2577 	* tests/cp/sparse-2.sh: Double check cp --sparse=always,
 2578 	with dd conv=sparse, in the case where the former didn't
 2579 	create a sparse file.  Now that this test is being newly run
 2580 	on macos, we're seeing a failure due to seek() not creating
 2581 	holes on apfs unless the size is >= 16MiB.
 2582 
 2583 2021-05-12  Pádraig Brady  <P@draigBrady.com>
 2584 
 2585 	tests: ensure we test SEEK_DATA where used
 2586 	fiemap is no longer the default copy implementation,
 2587 	so check for SEEK_DATA support instead as that's preferred.
 2588 	This will ensure better test coverage on systems without fiemap.
 2589 
 2590 	* init.cfg: Replace fiemap_capable_ with seek_data_capable_.
 2591 	This is best supported with python 3 so prefer that.
 2592 	* tests/seek-data-capable: A new test script checking for
 2593 	SEEK_DATA support on the passed file name,
 2594 	called from seek_data_capable_.
 2595 	* tests/fiemap-capable: Remove no longer used probing script.
 2596 	* tests/cp/fiemap-perf.sh: Renamed to tests/cp/sparse-perf.sh
 2597 	* tests/cp/fiemap-2.sh: Renamed to tests/cp/sparse-2.sh
 2598 	* tests/cp/fiemap-extents.sh: Renamed to tests/cp/sparse-extents.sh
 2599 	* tests/cp/sparse-fiemap.sh: Renamed to tests/cp/sparse-extents-2.sh
 2600 	* tests/cp/fiemap-FMR.sh: Renamed to tests/cp/copy-FMR.sh
 2601 	* tests/local.mk: Reference the renamed tests.
 2602 
 2603 2021-05-12  Pádraig Brady  <P@draigBrady.com>
 2604 
 2605 	copy: handle system security config issues with copy_file_range()
 2606 	* src/copy.c (sparse_copy): Upon EPERM from copy_file_range(),
 2607 	fall back to a standard copy, which will give a more accurate
 2608 	error as to whether the issue is with the source or destination.
 2609 	Also this will avoid the issue where seccomp or apparmor are
 2610 	not configured to handle copy_file_range(), in which case
 2611 	the fall back standard copy would succeed without issue.
 2612 	This specific issue with seccomp was noticed for example in:
 2613 	https://github.com/golang/go/issues/40900
 2614 
 2615 	copy: handle EOPNOTSUPP from SEEK_DATA
 2616 	* src/copy.c (infer_scantype): Ensure we don't error out
 2617 	if SEEK_DATA returns EOPNOTSUPP, on systems where this value
 2618 	is distinct from ENOTSUP.  Generally both of these should be checked.
 2619 
 2620 	copy: handle ENOTSUP from copy_file_range()
 2621 	* src/copy.c (sparse_copy): Ensure we fall back to
 2622 	a standard copy if copy_file_range() returns ENOTSUP.
 2623 	This generally is best checked when checking ENOSYS,
 2624 	but it also seems to be a practical concern on Centos 7,
 2625 	as a quick search gave https://bugzilla.redhat.com/1840284
 2626 
 2627 2021-05-10  Pádraig Brady  <P@draigBrady.com>
 2628 
 2629 	build: update gnulib submodule to latest
 2630 	Fixes a bits/long-double.h include build issue on some systems.
 2631 
 2632 	* bootstrap: Sync new --version option from gnulib.
 2633 	* gnulib: Update to lastest.
 2634 	Reported by Carl Edquist
 2635 
 2636 2021-05-10  Carl Edquist  <edquist@cs.wisc.edu>
 2637 
 2638 	build: fix __get_cpuid_count check to catch link failure
 2639 	The test program will compile successfully even if __get_cpuid_count
 2640 	is not declared.  The error for the missing symbol will only show up
 2641 	at link time.  Thus, use AC_LINK_IFELSE instead of AC_COMPILE_IFELSE.
 2642 
 2643 	* configure.ac (__get_cpuid_count check): Use C_LINK_IFELSE instead
 2644 	of AC_COMPILE_IFELSE.
 2645 	(__get_cpuid check): Likewise.
 2646 
 2647 2021-05-08  Pádraig Brady  <P@draigBrady.com>
 2648 
 2649 	maint: consistently free hash structures in dev mode
 2650 	Ensure we call hash_free() to avoid valgrind and leak_sanitizer
 2651 	"definitely lost" warnings.  These were not real leaks as
 2652 	we terminate immediately after, but we should avoid these
 2653 	"definitely lost" warnings where possible.
 2654 
 2655 	* src/copy.c: Add dest_info_free() and src_info_free().
 2656 	* src/copy.h: Declare the above.
 2657 	* src/cp-hash.c: Don't define unless "lint" is defined.
 2658 	* src/install.c: Call dest_info_free() in dev mode.
 2659 	* src/mv.c: Likewise.
 2660 	* src/cp.c: Likewise. Also call src_info_free().
 2661 	* src/ln.c: Call hash_free() in dev mode.
 2662 	* src/tail.c: Call hash_free() even if about to exit, in dev mode.
 2663 
 2664 	Fixes https://bugs.gnu.org/48189
 2665 
 2666 2021-05-06  Bernhard Voelker  <mail@bernhard-voelker.de>
 2667 
 2668 	maint: fix sc_space_before_open_paren failure
 2669 	* src/copy.c (dest_info_init): Add space before parens.
 2670 	(src_info_init): Likewise.
 2671 	Syntax-check failure introduced in the previous commit.
 2672 
 2673 2021-05-03  Pádraig Brady  <P@draigBrady.com>
 2674 
 2675 	copy: exit immediately upon failure to allocate hash memory
 2676 	* src/copy.c (dest_info_init, src_info_init): Terminate immediately
 2677 	upon memory exhaustion.
 2678 
 2679 2021-05-02  Pádraig Brady  <P@draigBrady.com>
 2680 
 2681 	copy: ensure we enforce --reflink=never
 2682 	* src/copy.c (sparse_copy): Don't use copy_file_range()
 2683 	with --reflink=never as copy_file_range() may implicitly
 2684 	use acceleration techniques like reflinking.
 2685 	(extent_copy): Pass through whether we allow reflinking.
 2686 	(lseek_copy): Likewise.
 2687 	Fixes https://bugs.gnu.org/48164
 2688 
 2689 	wc: add --debug to diagnose which implementation used
 2690 	* src/wc.c: (main): Handle the new --debug option.
 2691 	Only call avx2_supported if needed.
 2692 	(avx2_supported): Diagnose various failures and attempts.
 2693 	* NEWS: Mention the new wc improvement and --debug option.
 2694 
 2695 2021-05-02  Kristoffer Brånemyr  <ztion1@yahoo.se>
 2696 
 2697 	wc: use avx2 optimization when counting only lines
 2698 	Use cpuid to detect CPU support for avx2 instructions.
 2699 	Performance was seen to improve by 5x for a file with only newlines,
 2700 	while the performance for a file with no such characters is unchanged.
 2701 
 2702 	* configure.ac [USE_AVX2_WC_LINECOUNT]: A new conditional,
 2703 	set when __get_cpuid_count() and avx2 compiler intrinsics are supported.
 2704 	* src/wc.c (avx2_supported): A new function using __get_cpuid_count()
 2705 	to determine if avx2 instructions are supported.
 2706 	(wc_lines): A new function refactored from wc(),
 2707 	which implements the standard line counting logic,
 2708 	and provides the fallback implementation for when avx2 is not supported.
 2709 	* src/wc_avx2.c: A new module to implement using avx2 intrinsics.
 2710 	* src/local.mk: Reference the new module.  Note we build as a separate
 2711 	lib so that it can be portably built with separate -mavx2 etc. flags.
 2712 
 2713 2021-05-01  Paul Eggert  <eggert@cs.ucla.edu>
 2714 
 2715 	touch: fix wrong diagnostic (Bug#48106)
 2716 	Problem reported by Roland (Bug#48106).
 2717 	* src/touch.c (touch): Take more care when deciding whether
 2718 	to use open_errno or utime_errno in the diagnostic.
 2719 	Stop worrying about SunOS 4 (which as part of the problem),
 2720 	as it’s long obsolete.  For Solaris 10, verify that EINVAL
 2721 	really means the file was a directory.
 2722 
 2723 2021-04-27  Paul Eggert  <eggert@cs.ucla.edu>
 2724 
 2725 	maint: port to Autoconf 2.71
 2726 	* configure.ac: Use AC_PROG_CC, not AC_PROG_CC_STDC.
 2727 	* gl/modules/smack (configure.ac):
 2728 	* m4/jm-macros.m4 (coreutils_MACROS):
 2729 	* m4/xattr.m4 (gl_FUNC_XATTR):
 2730 	Use AS_HELP_STRING, not AC_HELP_STRING.
 2731 	* m4/check-decl.m4 (gl_CHECK_DECLS):
 2732 	Do not require AC_HEADER_TIME; we no longer care about it directly.
 2733 	* m4/jm-macros.m4 (coreutils_MACROS):
 2734 	Do not require AC_ISC_POSIX, which became obsolete in 2006.
 2735 	Use AC_LINK_IFELSE instead of AC_TRY_LINK.
 2736 
 2737 	csplit: size_t overflow check
 2738 	* src/csplit.c (get_new_buffer): Fix unlikely size_t overflow.
 2739 
 2740 	build: update gnulib submodule to latest
 2741 	* src/csplit.c (load_buffer):
 2742 	* src/pinky.c (create_fullname):
 2743 	Use intprops-based checks rather than xalloc_oversized,
 2744 	since Gnulib xalloc.h no longer includes xalloc-oversized.h.
 2745 
 2746 2021-04-27  Zorro Lang  <zlang@redhat.com>
 2747 
 2748 	copy: do not refuse to copy a swap file
 2749 	* src/copy.c (sparse_copy): Fallback to read() if copy_file_range()
 2750 	fails with ETXTBSY.  Otherwise it would be impossible to copy files
 2751 	that are being used as swap.  This used to work before introducing
 2752 	the support for copy_file_range() in coreutils.  (Bug#48036)
 2753 
 2754 2021-04-22  Bernhard Voelker  <mail@bernhard-voelker.de>
 2755 
 2756 	tests: fix FP in ls/stat-free-color.sh
 2757 	On newer systems like Fedora 34 and openSUSE Tumbleweed, ls(1) calls
 2758 	newfstatat(STDOUT_FILENO, ...), but only when there is something to
 2759 	output.
 2760 
 2761 	* tests/ls/stat-free-color.sh: Add -a option to the reference invocation
 2762 	of ls, thus enforcing something gets output.
 2763 
 2764 2021-04-11  Pádraig Brady  <P@draigBrady.com>
 2765 
 2766 	doc: clarify that ln --relative requires --symbolic to be specified
 2767 	* doc/coreutils.texi (ln invocation): State --symbolic is required.
 2768 	* src/ln.c (usage): Explicitly state -s is not implied.
 2769 	Fixes https://bugs.gnu.org/47703
 2770 
 2771 	doc: clarify what's counted by wc
 2772 	* src/wc.c (usage): State that only printable characters are considered
 2773 	when counting words.  This also disambiguates wether we're talking
 2774 	about bytes or characters in this context.
 2775 	* doc/coreutils.texi (wc invocation): Likewise.  Also clarify
 2776 	that --characters counts valid locale aware characters,
 2777 	and that --lines does not count a trailing "line" unless
 2778 	it ends with a newline character.
 2779 	Fixes https://bugs.gnu.org/47702
 2780 
 2781 	maint: use "char const *" rather than "const char *"
 2782 	* cfg.mk (sc_prohibit-const-char): Add a new syntax-check to
 2783 	enforce this style.
 2784 	* *.[ch]: sed -i 's/const char \*/char const */g'
 2785 
 2786 2021-04-11  Pádraig Brady  <P@draigBrady.com>
 2787 
 2788 	ls: cache name width determination
 2789 	This is especially important now for --sort=width,
 2790 	as that can greatly increase how often this
 2791 	expensive quote_name_width() function is called per file.
 2792 
 2793 	This also helps the default invocation of ls,
 2794 	or specifically the --format={across,vertical} cases
 2795 	(when --width is not set to 0),
 2796 	to avoid two calls to this function per file.
 2797 
 2798 	Note the only case where we later compute the width,
 2799 	is for --format=commas.  That's only done once though,
 2800 	so we leave the computation close to use to
 2801 	maximize hardware caching.
 2802 
 2803 	* src/ls.c (struct fileinfo): Add a WIDTH member to cache
 2804 	the screen width of the file name.
 2805 	(update_current_files_info): Set the WIDTH members for cases
 2806 	they're needed multiple times.  Note we do this explicitly here,
 2807 	rather than caching at use, so that the fileinfo
 2808 	structures can remain const in the sorting and presentation functions.
 2809 	(sort_files): Call the new update_current_files_info() in this
 2810 	initialization function.
 2811 	(fileinfo_name_width): Renamed from fileinfo_width,
 2812 	and adjusted to return the cached value if available.
 2813 
 2814 2021-04-11  Carl Edquist  <edquist@cs.wisc.edu>
 2815 
 2816 	ls: add --sort=width option to sort by file name width
 2817 	This helps identify the outliers for long filenames, and also produces
 2818 	a more compact display of columns when listing a directory with many
 2819 	entries of various widths.
 2820 
 2821 	* src/ls.c (sort_type, sort_types, sort_width): New sort_width sort
 2822 	type.
 2823 	(sort_args): Add "width" sort arg.
 2824 	(cmp_width, fileinfo_width): New sort function and helper for file name
 2825 	width.
 2826 	(quote_name_width): Add function prototype declaration.
 2827 	(usage): Document --sort=width option.
 2828 	* doc/coreutils.texi: Document --sort=width option.
 2829 	* tests/ls/sort-width-option.sh: New test for --sort=width option.
 2830 	* tests/local.mk: Reference new test.
 2831 	* NEWS: Mention the new feature.
 2832 
 2833 2021-03-30  Paul Eggert  <eggert@cs.ucla.edu>
 2834 
 2835 	env: simplify --split-string memory management
 2836 	* bootstrap.conf (gnulib_modules): Add idx.
 2837 	* src/env.c: Include idx.h, minmax.h.
 2838 	Prefer idx_t to ptrdiff_t when values are nonnegative.
 2839 	(valid_escape_sequence, escape_char, validate_split_str)
 2840 	(CHECK_START_NEW_ARG):
 2841 	Remove; no longer needed now that we validate as we go.
 2842 	(struct splitbuf): New type.
 2843 	(splitbuf_grow, splitbuf_append_byte, check_start_new_arg)
 2844 	(splitbuf_finishup): New functions.
 2845 	(build_argv): New arg ARGC.  Validate and process in one go, using
 2846 	the new functions; this is simpler and more reliable than the old
 2847 	approach (as witness the recent bug).  Avoid integer overflow in
 2848 	the unlikely case where the string contains more than INT_MAX
 2849 	arguments.
 2850 	(parse_split_string): Simplify by exploiting the new build_argv.
 2851 
 2852 	build: update gnulib submodule to latest
 2853 
 2854 2021-03-29  Pádraig Brady  <P@draigBrady.com>
 2855 
 2856 	tests: add a test case for recent env fix
 2857 	* tests/misc/env-S.pl: Add a test case for recent commit ec6904f0.
 2858 
 2859 	maint: ignore all .a files in .gitignore
 2860 	* .gitignore: Rather than add the new src/libcksum_pclmul.a,
 2861 	just ignore any such libs.
 2862 	* src/.gitignore: Likewise.
 2863 	Reported by Kristoffer Brånemyr.
 2864 
 2865 2021-03-26  Paul Eggert  <eggert@cs.ucla.edu>
 2866 
 2867 	env: prefer ptrdiff_t
 2868 	* src/env.c (usvars_used, vnlen, unset_envvars, expansion)
 2869 	(build_argv): Prefer ptrdiff_t to size_t when either will do.
 2870 
 2871 	env: improve whitespace warning
 2872 	* src/env.c (main): Issue -S warning for any whitespace,
 2873 	not just space.
 2874 
 2875 	env: use GNU coding style
 2876 	* src/env.c: Use GNU coding style for recentish changes.
 2877 
 2878 	env: remove asserts
 2879 	The assertions didn’t help catch the most recent bug which
 2880 	was in their area, and kind of get in the way.
 2881 	* src/env.c: Do not include <assert.h>, and remove all assertions.
 2882 	These seem to have been put in to pacify gcov, but surely there’s
 2883 	a better way.
 2884 	(escape_char): Pacify GCC with 'assume' instead.
 2885 
 2886 	doc: document env fix
 2887 	* NEWS, doc/coreutils.texi (env invocation): Document recent change.
 2888 
 2889 	env: fix address violation with '\v' in -S
 2890 	Problem reported by Frank Busse (Bug#47412).
 2891 	* src/env.c (C_ISSPACE_CHARS): New macro.
 2892 	(shortopts, build_argv, main): Treate all C-locale space
 2893 	characters like space and tab, for compatibility with FreeBSD.
 2894 	(validate_split_str, build_argv, parse_split_string):
 2895 	Use the C locale, not the current locale, to determine whether a
 2896 	byte is a space character.
 2897 
 2898 2021-03-25  Paul Eggert  <eggert@cs.ucla.edu>
 2899 
 2900 	hostname: pacify valgrind
 2901 	* src/hostname.c (main) [IF_LINT]: Free hostname (Bug#47384).
 2902 
 2903 	hostname: use puts
 2904 	* src/hostname.c (main): Prefer puts to printf "%s\n".
 2905 
 2906 	maint: indenting
 2907 	* src/ln.c: Fix indenting.
 2908 
 2909 2021-03-25  Kamil Dudka  <kdudka@redhat.com>
 2910 
 2911 	ln: fix memory leaks in do_link
 2912 	* src/ln.c (do_link): Free memory allocated by convert_abs_rel
 2913 	on all code paths (Bug#47373).
 2914 
 2915 2021-03-25  Paul Eggert  <eggert@cs.ucla.edu>
 2916 
 2917 	stdbuf: port lib to macOS
 2918 	* src/libstdbuf.c (fprintf, free, strtoumax): Undef these too,
 2919 	since Gnulib might replace them.
 2920 
 2921 2021-03-24  Paul Eggert  <eggert@cs.ucla.edu>
 2922 
 2923 	cksum: port recent changes to macOS
 2924 	* src/cksum.c (cksum_slice8): Fix bug on little-endian
 2925 	platforms lacking __bswap_32: the SWAP macro evaluates
 2926 	its argument multiple times, but the macro has a side effect.
 2927 
 2928 2021-03-22  Bernhard Voelker  <mail@bernhard-voelker.de>
 2929 
 2930 	maint: update bootstrap from gnulib
 2931 	* bootstrap: Sync from gnulib/build-aux/bootstrap; the previous gnulib
 2932 	update (commit 1a3eb6c30) missed to update that file.
 2933 
 2934 2021-03-21  Paul Eggert  <eggert@cs.ucla.edu>
 2935 
 2936 	ptx: remove use of diacrit module
 2937 	The diacrit module is obsolete, and ptx’s use of it is obsolete
 2938 	too; it assumes an 8-bit locale (not that common these days) and
 2939 	that TeX cannot process the 8-bit characters (nowadays, it can).
 2940 	* NEWS, doc/coreutils.texi (Charset selection in ptx): Document this.
 2941 	* bootstrap.conf (gnulib_modules): Remove diacrit.
 2942 	* src/ptx.c: Do not include diacrit.h.
 2943 	(print_field, fix_output_parameters): Remove obsolete support
 2944 	for 8-bit diacritics.
 2945 
 2946 	build: update gnulib submodule to latest
 2947 
 2948 2021-03-15  Pádraig Brady  <P@draigBrady.com>
 2949 
 2950 	cksum: don't exit immediately if a single file overflows
 2951 	This behavior was introduced in commit FILEUTILS-4_0_44-4-g519b707b4.
 2952 
 2953 	* src/cksum.c (cksum_slice8): Only report the overflow, and continue.
 2954 	* src/cksum_pclmul.c (cksum_pclmul): Likewise.
 2955 
 2956 2021-03-15  Pádraig Brady  <P@draigBrady.com>
 2957 
 2958 	cksum: add --debug to diagnose which implementation used
 2959 	* src/cksum.c: (main): Use getopt_long to parse options,
 2960 	and handle the new --debug option.
 2961 	(pclmul_supported): Diagnose various failures and attempts.
 2962 	* NEWS: Mention the new option.
 2963 
 2964 2021-03-15  Kristoffer Brånemyr  <ztion1@yahoo.se>
 2965 
 2966 	cksum: use pclmul hardware instruction for CRC32 calculation
 2967 	Use cpuid to detect CPU support for hardware instruction.
 2968 	Fall back to slice by 8 algorithm if not supported.
 2969 	A 500MiB file improves from 1.40s to 0.67s on an i3-2310M
 2970 
 2971 	* configure.ac [USE_PCLMUL_CRC32]: A new conditional,
 2972 	set when __get_cpuid() and clmul compiler intrinsics are supported.
 2973 	* src/cksum.c (pclmul_supported): A new function using __get_cpuid()
 2974 	to determine if pclmul instructions are supported.
 2975 	(cksum): A new function refactored from cksum_slice8(),
 2976 	which calls pclmul_supported() and then cksum_slice8()
 2977 	or cksum_pclmul() as appropriate.
 2978 	* src/cksum.h: Export the crctab array for use in the new module.
 2979 	* src/cksum_pclmul.c: A new module to implement using pclmul intrinsics.
 2980 	* po/POTFILES.in: Reference the new cksum_pclmul module.
 2981 	* src/local.mk: Likewise.  Note we build it as a separate library
 2982 	so that it can be portably built with separate -mavx etc. flags.
 2983 	* tests/misc/cksum.sh: Add new test modes for pertinent buffer sizes.
 2984 
 2985 2021-03-14  Pádraig Brady  <P@draigBrady.com>
 2986 
 2987 	maint: propagate DEPENDENCIES to libs in single binary mode
 2988 	build-aux/gen-single-binary.sh (override_single): A new function
 2989 	to refactor the existing mappings for dir, vdir, and arch.
 2990 	This function now also sets the DEPENDENCIES variable so that these
 2991 	dependencies can be maintained later in the script, where
 2992 	we now propagate the automake generated $(src_$cmd_DEPENDENCIES)
 2993 	to our equivalent src_libsinglebin_$cmd_a_DEPENDENCIES.
 2994 	This will ensure that any required libs are built,
 2995 	which we require in a following change to cksum that
 2996 	builds part of it as a separate library.
 2997 
 2998 2021-02-19  Pádraig Brady  <P@draigBrady.com>
 2999 
 3000 	rmdir: diagnose non following of symlinks with trailing slash
 3001 	GNU/Linux is unusual here in that rmdir("symlink/") returns ENOTDIR,
 3002 	whereas Solaris and FreeBSD at least, will follow the symlink
 3003 	and remove the target directory.  We don't make the behavior
 3004 	on Linux kernels consistent, but at least clarify
 3005 	the confusing error message.
 3006 
 3007 	* src/rmdir (main): Output a specific error message for the above case.
 3008 	(remove_parents): In the error message, don't assume intermediate paths
 3009 	are directories, as they could be symlinks.
 3010 	* tests/rmdir/symlink-errors.sh: Add a new test.
 3011 	* tests/local.mk: Reference the new test.
 3012 	* NEWS: Mention the improvement.
 3013 
 3014 2021-02-18  Kamil Dudka  <kdudka@redhat.com>
 3015 
 3016 	stat,tail: add support for the exfat file system
 3017 	Bug: https://bugzilla.redhat.com/1921427
 3018 
 3019 	* src/stat.c (human_fstype): Add case for the 'exfat' file system type.
 3020 	* NEWS: Mention the Improvement.
 3021 	Fixes https://bugs.gnu.org/46613
 3022 
 3023 2021-02-15  Erik Auerswald  <auerswal@unix-ag.uni-kl.de>
 3024 
 3025 	pr: fix alignment of input tabs to multiple columns
 3026 	This regression was introduced in commit COREUTILS-6_8-58-g553d347d3
 3027 
 3028 	* src/pr.c (init_parameters): Process tabs for multiple columns.
 3029 	* tests/pr/pr-tests.pl: Add test cases.
 3030 	* NEWS: Mention the bug fix.
 3031 	Fixes https://bugs.gnu.org/46422
 3032 
 3033 2021-02-10  Pádraig Brady  <P@draigBrady.com>
 3034 
 3035 	cat: extend --show-ends to show \r\n as ^M$
 3036 	  - \r\n is common a line end combination
 3037 	  - catting such a file without options causes it to display normally
 3038 	  - overwriting the first char with $, loses info
 3039 
 3040 	* src/cat.c (cat): Convert \r preceeding a \n to ^M.
 3041 	* tests/misc/cat-E.sh: New test.
 3042 	* tests/local.mk: Reference new test.
 3043 	* tests/misc/cat-proc.sh: Fix typo.
 3044 	* doc/coreutils.texi (cat invocation): Mention the new behavior.
 3045 	* NEWS: Mention the improvement.
 3046 
 3047 2021-01-26  Paul Eggert  <eggert@cs.ucla.edu>
 3048 
 3049 	expr: fix bug with unmatched \(...\)
 3050 	Problem reported by Qiuhao Li.
 3051 	* NEWS: Mention this.
 3052 	* doc/coreutils.texi (String expressions):
 3053 	Document the correct behavior, which POSIX requires.
 3054 	* src/expr.c (docolon): Treat unmatched \(...\) as empty.
 3055 	* tests/misc/expr.pl: New test.
 3056 
 3057 2021-01-25  Pádraig Brady  <P@draigBrady.com>
 3058 
 3059 	split: fix --number=K/N to output correct part of file
 3060 	This functionality regressed with the adjustments
 3061 	in commit v8.25-4-g62e7af032
 3062 
 3063 	* src/split.c (bytes_chunk_extract): Account for already read data
 3064 	when seeking into the file.
 3065 	* tests/split/b-chunk.sh: Use the hidden ---io-blksize option,
 3066 	to test this functionality.
 3067 	* NEWS: Mention the bug fix.
 3068 	Fixes https://bugs.gnu.org/46048
 3069 
 3070 2021-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 3071 
 3072 	doc: rmdir --recursive substitutes
 3073 	* doc/coreutils.texi (rmdir invocation): Add note on how to remove
 3074 	empty subdirectories recursively.
 3075 
 3076 2021-01-15  Paul Eggert  <eggert@cs.ucla.edu>
 3077 
 3078 	mkdir: fix bug when -m's more generous than umask
 3079 	Problem reported by David McCall (Bug#45886).
 3080 	I introduced this problem when fixing Bug#14371.
 3081 	* NEWS: Mention the fix.
 3082 	* src/mkdir.c (struct mkdir_options): New members umask_ancestor,
 3083 	umask_self, replacing umask_value.
 3084 	(make_ancestor): Use them when temporarily adjusting umask.
 3085 	(main): Set them, and set the umask to umask_self instead
 3086 	of leaving it alone.
 3087 	* tests/mkdir/perm.sh (tests): Add test case for bug.
 3088 
 3089 2021-01-09  Paul Eggert  <eggert@cs.ucla.edu>
 3090 
 3091 	doc: modernize and fix regexp xref
 3092 	* doc/coreutils.texi: Fix regexp cross-reference that had become
 3093 	out-of-date (Bug#45749).  Also, fix some obsolete references to
 3094 	SunOS and to /usr/dict/words, and change “Linux” to “GNU/Linux”
 3095 	where appropriate.  Unfortunately the pipeline example gets more
 3096 	complicated since /usr/share/dict/words is not sorted the way that
 3097 	‘comm’ wants.
 3098 
 3099 2021-01-03  Bernhard Voelker  <mail@bernhard-voelker.de>
 3100 
 3101 	doc: make formatting of SEE ALSO in cat.1 and tac.1 consistent
 3102 	None of the coreutils man pages - but the two above - are using bold
 3103 	setting for the references to other man pages in the SEE ALSO section.
 3104 
 3105 	* man/cat.x (SEE ALSO): Remove '\fB...\fP' setting.
 3106 	* man/tac.x: Likewise, and add a reference to cat(1).
 3107 
 3108 2021-01-02  Bernhard Voelker  <mail@bernhard-voelker.de>
 3109 
 3110 	maint: exempt 'doc/fdl.texi' from 'make update-copyright'
 3111 	This file is a copy from gnulib and therefore should not get changed
 3112 	by the yearly update.
 3113 
 3114 	* .x-update-copyright: Add pattern for the above file.
 3115 	* doc/fdl.texi: Revert the previous change.
 3116 
 3117 2021-01-01  Pádraig Brady  <P@draigBrady.com>
 3118 
 3119 	maint: update all copyright year number ranges
 3120 	Run "make update-copyright" and then...
 3121 
 3122 	* gnulib: Update to latest with copyright year adjusted.
 3123 	* tests/init.sh: Sync with gnulib to pick up copyright year.
 3124 	* bootstrap: Likewise.
 3125 	* tests/sample-test: Adjust to use the single most recent year.
 3126 
 3127 2020-12-28  Pádraig Brady  <P@draigBrady.com>
 3128 
 3129 	tests: add a test for cksum
 3130 	* tests/misc/cksum.sh: Test basic operation.
 3131 	* tests/local.mk: Reference the new test.
 3132 
 3133 2020-12-28  Kristoffer Brånemyr  <ztion1@yahoo.se>
 3134 
 3135 	cksum: use more efficient slice by 8 algorithm
 3136 	A 100MB file improves from 2.50s to 1.80s on a Sparc T5220
 3137 	A 100MB file improves from 0.54s to 0.13s on an i3-2310M
 3138 
 3139 	* bootstrap.conf: Explicitly depend on byteswap,
 3140 	since now used directly by coreutils.
 3141 	* src/cksum.c (cksum): Process in multiples of 8 bytes.
 3142 	(main): Adjust for generation of expanded crctab.
 3143 	* src/cksum.h: Split now larger crctab to separate header.
 3144 	* src/local.mk: Reference the new header.
 3145 	* NEWS: Mention the improvement.
 3146 
 3147 2020-12-25  Paul Eggert  <eggert@cs.ucla.edu>
 3148 
 3149 	build: update gnulib submodule to latest
 3150 	* src/make-prime-list.c (free): Undef, since Gnulib's free-posix
 3151 	module now defines this to rpl_free on some platforms.
 3152 
 3153 2020-12-18  Pádraig Brady  <P@draigBrady.com>
 3154 
 3155 	doc: remove extraneous ./src/ prefix from examples
 3156 	* doc/coreutils.texi (numfmt invocation): s|./src/numfmt|numfmt|
 3157 
 3158 	doc: add `seq inf` and `sleep inf` examples to texinfo
 3159 	* doc/coreutils.texi (seq invocation): Mention "inf" is supported,
 3160 	and describe that it's handled specially to generate infinite
 3161 	whole integer sequences.  Also mention that such infinite generation
 3162 	is supported for integer steps up to 200.
 3163 	(sleep invocation): Give `sleep inf` as an example to sleep forever.
 3164 	* src/seq.c: Add a comment on SEQ_FAST_STEP_LIMIT, to say it's
 3165 	reflected in the texinfo description.
 3166 
 3167 2020-12-15  Paul Eggert  <eggert@cs.ucla.edu>
 3168 
 3169 	doc: document mkdir -m -p better
 3170 	Chris Colohan wrote that the man page did not do enough to dispel
 3171 	a common misunderstanding that “contributed to one of the scariest
 3172 	outages Google has ever seen” (Bug#45258).
 3173 	* doc/coreutils.texi (mkdir invocation):
 3174 	* src/mkdir.c (usage): Document -m vs -p better.
 3175 
 3176 2020-12-15  KOBAYASHI Takashi  <a1415tk@aiit.ac.jp>
 3177 
 3178 	nl: fix --section-delimiter handling of single characters
 3179 	* src/nl.c (main): Enforce the POSIX specified
 3180 	behavior of assuming ':' is specified after a single
 3181 	character argument to -d.
 3182 	* tests/misc/nl.sh: Add a test case.
 3183 	* NEWS: Mention the bug fix.
 3184 
 3185 2020-12-15  Pádraig Brady  <P@draigBrady.com>
 3186 
 3187 	doc: mention the GNU extensions to nl --section-delimiter
 3188 	* doc/coreutils.texi (nl invocation): Mention the GNU extensions
 3189 	of allowing arbitrary length and empty delimiter strings.
 3190 	* src/nl.c (usage): Likewise.
 3191 	* tests/misc/nl.sh: Add test cases for the GNU extensions.
 3192 
 3193 	maint: refactor nl section delimiter handling
 3194 	* src/nl.c (main): Update the default delimiter characters
 3195 	when passed two characters with --section-delimiter.
 3196 	Avoid redundant copies for the body and footer delimiter strings,
 3197 	and instead, just offset into the header string.
 3198 	(check_section): Avoid redundant comparing of 2 bytes of memory
 3199 	for an empty delimiter.
 3200 
 3201 2020-12-12  Paul Eggert  <eggert@cs.ucla.edu>
 3202 
 3203 	build: update gnulib submodule to latest
 3204 
 3205 2020-12-08  Arman Absalan  <armanaxh@gmail.com>
 3206 
 3207 	chroot,comm,join: fix usage options style
 3208 	* src/chroot.c (usage): Fix indentation of options.
 3209 	* src/comm.c: Likewise.
 3210 	* src/join.c: Likewise.
 3211 
 3212 2020-12-01  Pádraig Brady  <P@draigBrady.com>
 3213 
 3214 	date: with --debug, show the output format
 3215 	The format can be determined from --options or the locale,
 3216 	so it's useful to output the format string being used.
 3217 
 3218 	* src/date.c (show_date): Show the output format
 3219 	along with the date being shown.
 3220 	* tests/misc/date-debug.sh: Adjust accordingly.
 3221 	Addresses https://bugs.gnu.org/44960
 3222 
 3223 2020-11-27  Tim Gates  <tim.gates@iress.com>
 3224 
 3225 	maint: fix typo, characteres -> characters
 3226 	* src/expr.c: Fix typo in comment.
 3227 
 3228 2020-11-26  Nishant Nayan  <nishant.nayan@oracle.com>
 3229 
 3230 	rm: do not skip files upon failure to remove an empty dir
 3231 	When removing a directory fails for some reason, and that directory
 3232 	is empty, the rm_fts code gets the return value of the excise call
 3233 	confused with the return value of its earlier call to prompt,
 3234 	causing fts_skip_tree to be called again and the next file
 3235 	that rm would otherwise have deleted to survive.
 3236 
 3237 	* src/remove.c (rm_fts): Ensure we only skip a single fts entry,
 3238 	when processing empty dirs.  I.e. only skip the entry
 3239 	having successfully removed it.
 3240 	* tests/rm/empty-immutable-skip.sh: New root-only test.
 3241 	* tests/local.mk: Add it.
 3242 	* NEWS: Mention the bug fix.
 3243 	Fixes https://bugs.gnu.org/44883
 3244 
 3245 2020-11-26  Pádraig Brady  <P@draigBrady.com>
 3246 
 3247 	maint: mention in NEWS about new df remote fs types
 3248 	* NEWS: Mention new remote file system types
 3249 	recognized since gnulib commit dd1fc46b.
 3250 
 3251 2020-11-23  Pádraig Brady  <P@draigBrady.com>
 3252 
 3253 	maint: remove no longer needed se_const helper
 3254 	This was needed before libselinux-2.3 (May 2014),
 3255 	but modern releases have the correct const declarations.
 3256 
 3257 	* src/chcon.c: Remove se_const() wrapper.
 3258 	* src/cp.c: Likewise.
 3259 	* src/install.c: Likewise.
 3260 	* src/mkdir.c: Likewise.
 3261 	* src/mkfifo.c: Likewise.
 3262 	* src/mknod.c: Likewise.
 3263 	* src/system.h: Likewise.
 3264 	* gnulib: update to pick up const correctness fixes in selinux stubs.
 3265 
 3266 2020-11-23  Pádraig Brady  <P@draigBrady.com>
 3267 
 3268 	maint: fix syntax-check failure
 3269 	* po/POTFILES.in (src/selinux.c): Remove entry as this source doesn't
 3270 	contain any translatable strings anymore; avoids a sc_po_check failure.
 3271 
 3272 2020-11-23  Paul Eggert  <eggert@cs.ucla.edu>
 3273 
 3274 	install: suppress "Operation not supported" false alarms
 3275 	At least, I *think* they are false alarms.  An SELinux expert eye
 3276 	would be welcome.
 3277 	* src/install.c (setdefaultfilecon): If selabel_lookup fails
 3278 	due to either ENOTSUP or ENODATA, don’t diagnose the issue.
 3279 	Problem reported by Kamil Dudka in:
 3280 	https://lists.gnu.org/r/coreutils/2020-11/msg00050.html
 3281 
 3282 	maint: propagate errno better in selinux.c
 3283 	* src/selinux.c: Don’t include die.h; no longer needed.
 3284 	(computecon, defaultcon, restorecon): Propagate errno.
 3285 	(defaultcon, restorecon): Don’t diagnose errors or exit, as that’s
 3286 	the caller’s responsibility.
 3287 
 3288 2020-11-23  Pádraig Brady  <P@draigBrady.com>
 3289 
 3290 	maint: use absolute paths with selabel_lookup
 3291 	* src/selinux.c: selabel_lookup requires absolute paths
 3292 	(while only older matchpathcon before libselinux < 2.1.5 2011-0826 did).
 3293 	* po/POTFILES.in: Readd src/selinux.c since we now have
 3294 	a translatable error message.
 3295 
 3296 2020-11-22  Bernhard Voelker  <mail@bernhard-voelker.de>
 3297 
 3298 	maint: minor cleanup
 3299 	The previous commit introduced a couple of syntax-check failures.
 3300 
 3301 	* .gitignore (/lib/se-label.h): Add entry to silence the
 3302 	sc_gitignore_missing check.  Sort entries in C locale.
 3303 	* po/POTFILES.in (src/selinux.c): Remove entry as this source doesn't
 3304 	contain any translatable strings anymore; avoids a sc_po_check failure.
 3305 	* src/mv.c: Replace tabs by spaces to avoid complaints by
 3306 	sc_prohibit_tab_based_indentation.
 3307 
 3308 2020-11-22  Paul Eggert  <eggert@cs.ucla.edu>
 3309 
 3310 	build: update gnulib submodule to latest
 3311 
 3312 	maint: port from matchpathcon to selabel_lookup
 3313 	Ubuntu 20.10 is using a newer version of libselinux that
 3314 	complains that matchpathcon is obsolete.  Rewrite the code
 3315 	that it uses the recommended selabel_lookup instead.
 3316 	* m4/jm-macros.m4 (coreutils_MACROS): Do not check for
 3317 	matchpathcon_init_prefix, as it is no longer used.
 3318 	* src/copy.c (set_file_security_ctx): Omit process_local arg,
 3319 	as it is equivalent to !x->set_security_context.  All callers changed.
 3320 	* src/copy.h (struct cp_options): set_security_context is now of
 3321 	type struct selabel_handle *, not bool.  All uses changed.
 3322 	* src/cp.c, src/install.c, src/mkdir.c, src/mkfifo.c, src/mknod.c:
 3323 	* src/mv.c: Include selinux/label.h.
 3324 	(main): Use selabel_open for set_security context.
 3325 	* src/install.c (matchpathcon_init_prefix): Remove; now unused.
 3326 	(get_labeling_handle): New static function.
 3327 	(setdefaultfilecon, main): Use it.
 3328 	(setdefaultfilecon): Do something regardless of
 3329 	ENABLE_MATCHPATHCON, which seems to be a revenant macro.
 3330 	(setdefaultfilecon): Use selabel_lookup instead of the obsolescent
 3331 	matchpathcon.  Report an error unless it fails due to ENOENT.
 3332 	* src/local.mk (src_ginstall_CPPFLAGS): Remove.
 3333 	* src/selinux.c: Include selinux/label.h
 3334 	Do not include die.h, error.h, canonicalize.h.
 3335 	(defaultcon, restorecon_private, restorecon):
 3336 	New arg HANDLE.  All callers changed.
 3337 	Use selabel_lookup rather than matchpathcon.
 3338 	(restorecon_private, restorecon): Don’t lose track of errno.
 3339 	* src/selinux.c, src/selinux.h:
 3340 	(restorecon): Don’t call ‘error’; that’s the caller’s job.
 3341 	Use HAVE_SELINUX_LABEL_H, not HAVE_SELINUX_SELINUX_H,
 3342 	in case there is some weird system with the former but not the latter.
 3343 	* src/selinux.h (struct selinux_handle): Add forward decl.
 3344 
 3345 	build: port to Solaris 10
 3346 	* src/local.mk (src_ln_LDADD, src_mktemp_LDADD, src_tac_LDADD):
 3347 	Add $(LIB_CLOCK_GETTIME), since these use tempname which uses
 3348 	clock_gettime if getrandom fails.  On platforms like Solaris 10,
 3349 	clock_gettime is not in the standard C library.
 3350 
 3351 	build: update gnulib submodule to latest
 3352 
 3353 2020-11-18  Pádraig Brady  <P@draigBrady.com>
 3354 
 3355 	doc: mention that sort -g supports hex numbers
 3356 	* doc/coreutils.texi (sort invocation): Mention explicitly
 3357 	that --general-numeric-sort supports arbitrary format hex numbers,
 3358 	but also mention that consistent case/width hex numbers can
 3359 	be sorted faster with a standard sort.
 3360 
 3361 2020-11-14  Pádraig Brady  <P@draigBrady.com>
 3362 
 3363 	tr: fix crash validating -c with some case char classes
 3364 	This crash was identified by Cyber Independent Testing Lab:
 3365 	https://cyber-itl.org/2020/10/28/citl-7000-defects.html
 3366 	and was introduced with commit v8.5-163-g3f48829c2
 3367 
 3368 	* src/tr.c (validate_case_classes): Don't apply these
 3369 	extra case alignment checks in the --complement case,
 3370 	which is even more restrictive as to the contents of SET2.
 3371 	* tests/misc/tr-case-class.sh: Add a test case,
 3372 	for a large SET1, which caused the length adjustment
 3373 	in validate_case_classes to underflow and trigger the assert.
 3374 	* NEWS: Mention the bug fix.
 3375 
 3376 2020-11-12  Ben Pfaff  <blp@cs.stanford.edu>
 3377 
 3378 	doc: clarify in texinfo that `test == ...` is non portable
 3379 	* doc/coreutils.texi (test invocation): Mention non portability
 3380 	of the double equals form.
 3381 
 3382 2020-11-11  Pádraig Brady  <P@draigBrady.com>
 3383 
 3384 	ls: fix crash printing SELinux context for unstatable files
 3385 	This crash was identified by Cyber Independent Testing Lab:
 3386 	https://cyber-itl.org/2020/10/28/citl-7000-defects.html
 3387 	and was introduced with commit v6.9.90-11-g4245876e2
 3388 
 3389 	* src/ls.c (gobble_file): Ensure scontext is initialized
 3390 	in the case where files are not statable.
 3391 	* tests/ls/selinux-segfault.sh: Renamed from proc-selinux-segfault.sh,
 3392 	and added test case for broken symlinks.
 3393 	* tests/local.mk: Adjust for the renamed test.
 3394 	* NEWS: Mention the bug fix.
 3395 
 3396 2020-11-07  Pádraig Brady  <P@draigBrady.com>
 3397 
 3398 	timeout: support sub-second timeouts on macOS
 3399 	* m4/jm-macros.m4: Check for setitimer.
 3400 	* src/timeout.c: Use setitimer if timer_settime is not available.
 3401 	* NEWS: Mention the improvement.
 3402 
 3403 2020-11-07  Pádraig Brady  <P@draigBrady.com>
 3404 
 3405 	maint: avoid strncat warning on GCC
 3406 	GCC 10.1.1 without optimization gives:
 3407 
 3408 	  error: ‘strncat’ argument 2 declared attribute ‘nonstring’
 3409 	    [-Werror=stringop-overflow=]
 3410 	    strncat (comment, UT_ID (utmp_ent), utmpsize);
 3411 
 3412 	Note the strncat man page says that:
 3413 	  "src does not need to be null-terminated
 3414 	   if it contains n or more bytes."
 3415 	And the POSIX spec says that the second (source) parameter
 3416 	is an array not a string.
 3417 	So I think it's incorrect for strncat to require src be a string type.
 3418 	This constraint seems to be being added to the gcc builtin strncat,
 3419 	as specifiying -fno-builtin also avoids the warning.
 3420 	Note specifying any optimization level also avoids the warning.
 3421 
 3422 	* src/who.c (make_id_equals_comment): Avoid the issue by using
 3423 	stpcpy + stzncpy, instead of strcpy + strncat.
 3424 	This pattern is used elsewhere in who.c
 3425 
 3426 2020-10-28  Pádraig Brady  <P@draigBrady.com>
 3427 
 3428 	stat,tail: sync file system constants from the linux kernel
 3429 	* src/stat.c: Add magic constants for "devmem", and
 3430 	"zonefs" file systems.
 3431 	* NEWS: Mention the improvement.
 3432 
 3433 	maint: cleanup operation of fs-magic-compare
 3434 	* src/local.mk: Ensure we map 2 hex digits to 4,
 3435 	so that we don't output already handled Z3FOLD file system (0x33).
 3436 	Also hide the generation command for src/fs.h.
 3437 
 3438 2020-10-27  Pádraig Brady  <P@draigBrady.com>
 3439 
 3440 	doc: make blank lines before --help consistent
 3441 	* src/basenc.c (usage): Remove extraneous blank line,
 3442 	to be consistent with other utilities that have options.
 3443 	* src/realpath.c: Likewise.
 3444 	* src/runcon.c: Likewise.
 3445 	Addresses https://bugs.gnu.org/44248
 3446 
 3447 2020-10-26  Jim Meyering  <meyering@fb.com>
 3448 
 3449 	maint: avoid new sort.c warning from upcoming GCC11
 3450 	gcc version 11.0.0 20201025 (experimental) warns that
 3451 	src/sort.c:1655:1: warning: function might be candidate for attribute \
 3452 	  'pure' if it is known to return normally [-Wsuggest-attribute=pure]
 3453 	* src/sort.c (limfield): Mark as pure.
 3454 
 3455 2020-10-26  Kamil Dudka  <kdudka@redhat.com>
 3456 
 3457 	dd: drop old workaround for lseek() bug in Linux kernel
 3458 	The workaround triggers warnings from newer kernel versions in case
 3459 	a user does not have sufficient privileges for the MTIOCGET ioctl.
 3460 
 3461 	* src/dd.c (skip_via_lseek): Drop wrapper function no longer needed.
 3462 	(skip): Use lseek() directly.
 3463 	(advance_input_after_read_error): Likewise.
 3464 
 3465 	Reported-by: Nir Soffer at https://bugzilla.redhat.com/1876840
 3466 	Fixes https://bugs.gnu.org/44235
 3467 
 3468 2020-10-26  KOBAYASHI Takashi  <a1415tk@aiit.ac.jp>
 3469 
 3470 	nl: support a negative --line-increment
 3471 	* src/nl.c (main): Allow -i to accept down to INTMAX_MIN.
 3472 	* tests/misc/nl.sh: Add test cases.
 3473 	* NEWS: Mention the new feature.
 3474 
 3475 2020-10-25  Pádraig Brady  <P@draigBrady.com>
 3476 
 3477 	nl: only fail if need to output overflowed numbers
 3478 	Previously we would have failed immediately upon internal overflow,
 3479 	which didn't output the full line being processed, and assumed
 3480 	there would be another numbered line.
 3481 
 3482 	* src/nl.c (line_no_overflow): A new global to track overflow.
 3483 	(print_lineno): Only fail if about to output an overflowed number.
 3484 	(reset_lineno): A new function to refactor resetting of the number,
 3485 	and which also clears line_no_overflow.
 3486 	* tests/misc/nl.sh: Add a test case.
 3487 
 3488 2020-10-25  Pádraig Brady  <P@draigBrady.com>
 3489 
 3490 	maint: add lib/parse-datetime-gen.h to .gitignore
 3491 	* .gitignore: update to ignore new file
 3492 	generated by the latest gnulib update.
 3493 
 3494 	maint: sync help2man to latest version
 3495 	* man/help2man: sync to changes from version 1.47.16.
 3496 	Note this doesn't materially change the generated man pages.
 3497 	Addresses https://bugs.gnu.org/44105
 3498 
 3499 2020-10-19  Paul Eggert  <eggert@cs.ucla.edu>
 3500 
 3501 	build: update gnulib submodule to latest
 3502 	* gl/lib/randperm.c, src/cp-hash.c, src/ls.c, src/sort.c, src/tail.c:
 3503 	Change all instaces of hash_delete to hash_remove to accommodate
 3504 	change to Gnulib API.
 3505 
 3506 2020-10-17  Grigorii Sokolik  <g.sokol99@g-sokol.info>
 3507 
 3508 	maint: remove already handled FIXME in tail.c
 3509 	* src/tail.c: Remove FIXME to follow a file name in a recreated
 3510 	directory. The comment was added in commit v8.5-191-g61b77891c
 3511 	while the fix (albeit not using inotify) was added in
 3512 	commit v8.27-21-gba5fe2d4b
 3513 
 3514 	maint: update docs for build prerequisites
 3515 	* README-prereq: Explicitly pull tags,
 3516 	and update the xz git repo url.
 3517 
 3518 2020-09-29  Benno Schulenberg  <bensberg@telfort.nl>
 3519 
 3520 	doc: fix punctuation in stat --help
 3521 	* src/stat.c (usage): Replace a mistaken semicolon with a colon,
 3522 	and replace mistaken backticks with single quotes.  Also reorder
 3523 	some words, for clarity.
 3524 	Fixes https://bugs.gnu.org/43707
 3525 
 3526 2020-08-12  Pádraig Brady  <P@draigBrady.com>
 3527 
 3528 	doc: clarify timeout --foreground description
 3529 	* doc/coreutils.texi (timeout invocation): Avoid any implication
 3530 	that `timeout --foreground` could be used to retroactively
 3531 	timeout commands not already invoked by timeout(1).
 3532 	Fixes bug https://bugs.gnu.org/42831
 3533 
 3534 2020-08-08  Emanuele Giacomelli  <vpooldyn-linux@yahoo.it>
 3535 
 3536 	csplit: fix regex suppression with specific match count
 3537 	* src/csplit.c (process_regexp): Process the line suppression
 3538 	in all invocations so that the last match is suppressed.
 3539 	Previously with a non infinite match count,
 3540 	the last regex pattern was not suppressed.
 3541 	* NEWS: Mention the bug fix.
 3542 	* tests/misc/csplit-suppress-matched.pl: Add a test case.
 3543 	Fixes https://bugs.gnu.org/42764
 3544 
 3545 2020-07-31  Bernhard Voelker  <mail@bernhard-voelker.de>
 3546 
 3547 	tests: skip some parts of 'tests/rmdir/ignore.sh' if run as root
 3548 	Parts of this test expect that the rmdir syscall returns with EPERM,
 3549 	but the root user does not see that.
 3550 
 3551 	* tests/rmdir/ignore.sh: Add uid_is_privileged_ guards around parts
 3552 	of the test which expect rmdir() to fail with EPERM.
 3553 
 3554 	Reported by Nick Alcock <nix@esperi.org.uk> in
 3555 	https://bugs.gnu.org/42633
 3556 
 3557 2020-07-28  Bernhard Voelker  <mail@bernhard-voelker.de>
 3558 
 3559 	doc: show version in title of HTML manual
 3560 	* doc/coreutils.texi (@include version.texi): Move before ...
 3561 	(@settitle): ... this.  Add the version after the package name.
 3562 
 3563 	Suggested by Jonny Grant <jg@jguk.org> in
 3564 	https://lists.gnu.org/r/bug-coreutils/2020-07/msg00021.html
 3565 
 3566 2020-07-28  Paul Eggert  <eggert@cs.ucla.edu>
 3567 
 3568 	build: update gnulib submodule to latest
 3569 	* src/local.mk (src_expr_LDADD, src_factor_LDADD):
 3570 	Adjust to Gnulib renaming of LIB_GMP to LIBGMP.
 3571 
 3572 2020-07-27  Pádraig Brady  <P@draigBrady.com>
 3573 
 3574 	doc: fix typo in env --split-string documentation
 3575 	* doc/coreutils.texi: Fix grammar.
 3576 
 3577 2020-07-24  Paul Eggert  <eggert@cs.ucla.edu>
 3578 
 3579 	date: clarify the Epoch
 3580 	* src/date.c (usage): Mention the Epoch under %s for clarity,
 3581 	and capitalize.
 3582 
 3583 	doc: modernize date examples
 3584 	* doc/coreutils.texi: Use more-modern date examples.
 3585 	Capitalize “Epoch” to be consistent with POSIX.
 3586 
 3587 	build: update gnulib submodule to latest
 3588 	* bootstrap.conf (gnulib_modules): Add hash-triple.
 3589 
 3590 2020-07-20  Bernhard Voelker  <mail@bernhard-voelker.de>
 3591 
 3592 	doc: clarify 'timeout -k' behavior
 3593 	* doc/coreutils.texi (timeout invocation): Document that the the
 3594 	duration of --kill-after=DURATION begins when sending the initial
 3595 	signal.  Also mention that -k does not have any effect if timeout's
 3596 	duration is 0.
 3597 
 3598 	Suggested by Jonny Grant <jg@jguk.org>.
 3599 
 3600 2020-07-19  Paul Eggert  <eggert@cs.ucla.edu>
 3601 
 3602 	factor: port to --without-libgmp
 3603 	* src/factor.c (mp_factor_using_division): Use mpz_fdiv_q_2exp
 3604 	instead of its no-longer-documented mpz_div_2exp alias.
 3605 	(print_factors): Use mpz_out_str instead of gmp_printf.
 3606 
 3607 2020-07-11  Paul Eggert  <eggert@cs.ucla.edu>
 3608 
 3609 	build: be less aggressive about -fanalyzer
 3610 	* configure.ac: Don’t enable -fanalyzer unless configured with the
 3611 	new --enable-gcc-warnings=expensive option.  See thread at:
 3612 	https://lists.gnu.org/r/coreutils/2020-07/msg00011.html
 3613 
 3614 2020-07-09  Paul Eggert  <eggert@cs.ucla.edu>
 3615 
 3616 	factor: explain why non-GMP code (Bug#42269)
 3617 	* doc/coreutils.texi (factor invocation):
 3618 	* src/factor.c: Explain why the two-word algorithm is useful.
 3619 
 3620 2020-07-08  Paul Eggert  <eggert@cs.ucla.edu>
 3621 
 3622 	doc: mention expr and factor bignums
 3623 	* NEWS:
 3624 	* doc/coreutils.texi (expr invocation, factor invocation):
 3625 	Mention bignum support on all platforms.  Modernize timings.
 3626 
 3627 	factor: treat ' +bignum' like non-bignum
 3628 	* src/factor.c (strto2uintmax): Instead of here ...
 3629 	(print_factors): ... skip spaces and '+' here, so that
 3630 	bignums are treated like non-bignums.
 3631 	* tests/misc/factor.pl (bug-gmp-plus_2_sup_128_plus_1): New test.
 3632 
 3633 	tests: simplify since expr now works on bignums
 3634 	* cfg.mk (sc_prohibit_expr_unsigned): Remove.
 3635 	* tests/dd/skip-seek-past-dev.sh (DEV_OFLOW):
 3636 	* tests/id/setgid.sh (gp1):
 3637 	* tests/misc/cut-huge-range.sh (CUT_MAX):
 3638 	* tests/misc/expr.pl:
 3639 	* tests/misc/sort-discrim.sh:
 3640 	Assume expr works on bignums.
 3641 	* tests/misc/cut-huge-range.sh (subtract_one):
 3642 	Remove; no longer needed.
 3643 
 3644 	factor: simplify tests by assuming libgmp
 3645 	* tests/misc/factor.pl: Test bignums even if !HAVE_GMP.
 3646 
 3647 2020-07-07  Paul Eggert  <eggert@cs.ucla.edu>
 3648 
 3649 	maint: use Gnulib libgmp module
 3650 	This lets use assume multiple-precision arithmetic on all
 3651 	platforms, simplifying the code.
 3652 	* bootstrap.conf (gnulib_modules): Add libgmp.
 3653 	* configure.ac: Don’t call cu_GMP, as this is now done by Gnulib.
 3654 	* m4/gmp.m4: Remove.
 3655 	* src/expr.c, src/factor.c: Use gmp.h unconditionally.
 3656 	* src/factor.c: Use the simpler ‘#ifndef mpz_inits’ to
 3657 	determine whether there is an mpz_inits macro.
 3658 
 3659 	build: update gnulib submodule to latest
 3660 
 3661 2020-07-03  Bernhard Voelker  <mail@bernhard-voelker.de>
 3662 
 3663 	doc: add timeout examples
 3664 	* doc/coreutils.texi (timeout invocation): Add examples.
 3665 
 3666 	Suggested by Jonny Grant <jg@jguk.org> in
 3667 	https://lists.gnu.org/r/bug-coreutils/2020-06/msg00018.html
 3668 
 3669 2020-06-30  Andreas Schwab  <schwab@linux-m68k.org>
 3670 
 3671 	tests: avoid spurious testsuite failure
 3672 	* tests/dd/stats.sh: Increase timeout.
 3673 	Fixes https://bugs.gnu.org/42135
 3674 
 3675 2020-06-26  Pádraig Brady  <P@draigBrady.com>
 3676 
 3677 	tests: fix false failure with valgrind and reflink
 3678 	* tests/cp/fiemap-FMR.sh: Avoid FICLONE ioctl,
 3679 	which would avoid the point of the test (fiemap testing).
 3680 	Also it avoids a valgrind bug with this ioctl:
 3681 	https://bugs.kde.org/show_bug.cgi?id=397605
 3682 
 3683 2020-06-26  Paul Eggert  <eggert@cs.ucla.edu>
 3684 
 3685 	cp: use copy_file_range if available
 3686 	* NEWS: Mention this.
 3687 	* bootstrap.conf (gnulib_modules): Add copy-file-range.
 3688 	* src/copy.c (sparse_copy): Try copy_file_range if not
 3689 	looking for holes.
 3690 
 3691 	cp: use SEEK_DATA/SEEK_HOLE if available
 3692 	If it works, prefer lseek with SEEK_DATA and SEEK_HOLE to FIEMAP,
 3693 	as lseek is simpler and more portable (will be in next POSIX).
 3694 	Problem reported in 2011 by Jeff Liu (Bug#8061).
 3695 	* NEWS: Mention this.
 3696 	* src/copy.c (lseek_copy) [SEEK_HOLE]: New function.
 3697 	(enum scantype): New constants ERROR_SCANTYPE, LSEEK_SCANTYPE.
 3698 	(union scan_inference): New type.
 3699 	(infer_scantype): Last arg is now union scan_inference *,
 3700 	not struct extent_scan *.  All callers changed.
 3701 	Prefer SEEK_HOLE to FIEMAP if both work, since
 3702 	SEEK_HOLE is simpler and more portable.
 3703 	(copy_reg): Do the fdadvise after initial scan, in case the scan
 3704 	fails.  Report an error if the initial scan fails.
 3705 	(copy_reg) [SEEK_HOLE]: Use lseek_copy if scantype says so.
 3706 
 3707 	cp: avoid copy_reg goto
 3708 	* src/copy.c (copy_reg): Redo to avoid label and goto.
 3709 
 3710 	cp: refactor extent_copy
 3711 	* src/copy.c (extent_copy): New arg SCAN, replacing
 3712 	REQUIRE_NORMAL_COPY.  All callers changed.
 3713 	(enum scantype): New type.
 3714 	(infer_scantype): Rename from is_probably_sparse and return
 3715 	the new type.  Add args FD and SCAN.  All callers changed.
 3716 
 3717 	maint: typo fix
 3718 	* NEWS: Fix typo.
 3719 
 3720 2020-06-23  Paul Eggert  <eggert@cs.ucla.edu>
 3721 
 3722 	chmod: man page fixes
 3723 	* man/chmod.x: Mention -6000 too.  Use .BR to fix trailing period.
 3724 
 3725 2020-06-21  Pádraig Brady  <P@draigBrady.com>
 3726 
 3727 	doc: fix punctuation in man pages
 3728 	* man/chmod.x: Add missing punctuation.
 3729 	* src/expand-common.c: Likewise.
 3730 	* src/numfmt.c: Likewise.
 3731 	* src/rm.c: Likewise.
 3732 
 3733 	Fixes https://bugs.gnu.org/41962
 3734 
 3735 2020-06-20  Bernhard Voelker  <mail@bernhard-voelker.de>
 3736 
 3737 	stat,tail: add support for the VBOXSF file system
 3738 	* src/stat.c (human_fstype): Add case for the 'vboxsf' file system type
 3739 	which is used for VirtualBox Shared Folders mounted in VirtualBox guest
 3740 	VMs.
 3741 	* NEWS: Mention the Improvement.
 3742 	Fixes https://bugs.gnu.org/41935
 3743 
 3744 2020-06-19  Paul Eggert  <eggert@cs.ucla.edu>
 3745 
 3746 	cp: default to COW
 3747 	Likewise for ‘install’.  Proposed in Bug#24400, and long past due.
 3748 	* NEWS:
 3749 	* doc/coreutils.texi (cp invocation):
 3750 	* src/copy.h (enum Reflink_type): Document this.
 3751 	* src/cp.c (cp_option_init):
 3752 	* src/install.c (cp_option_init): Implement this.
 3753 
 3754 2020-06-15  Tobias Stoeckmann  <tobias@stoeckmann.org>
 3755 
 3756 	maint: avoid signed integer overflows
 3757 	Since -LONG_MIN results in LONG_MIN again, the operation itself is
 3758 	a signed integer overflow.
 3759 
 3760 	This can be observed with the following calls (best if compiled
 3761 	with -ftrapv or -fsanitize=undefined):
 3762 
 3763 	  $ numfmt --padding=-9223372036854775808
 3764 	  $ seq 1e-9223372036854775808
 3765 
 3766 	Technically, the change in seq "reduces" the precision, but a double
 3767 	or long double that small would be represented as 0 anyway.
 3768 
 3769 	* src/numfmt.c: Explicitly disallow --padding=LONG_MIN.
 3770 	* src/seq.c: Treat 1e$LONG_MIN as 1e-$LONG_MAX.
 3771 	* tests/misc/numfmt.pl: Add a test case.
 3772 	* tests/misc/seq-precision.sh: Likewise.
 3773 
 3774 	Fixes https://bugs.gnu.org/41850
 3775 
 3776 2020-06-07  Bernhard Voelker  <mail@bernhard-voelker.de>
 3777 
 3778 	doc: timeout: improve documentation of the exit status
 3779 	* doc/coreutils.texi (timeout invocation): Document that the exit
 3780 	status is 137 when the KILL signal is used, regardless of whether that
 3781 	signal is sent to COMMAND or timeout.
 3782 	* src/timeout.c (usage): Likewise. Also split out and expand
 3783 	on the possible exit status values to a separate table.
 3784 
 3785 	Discussed at https://bugs.gnu.org/41634
 3786 
 3787 2020-06-01  Paul Eggert  <eggert@cs.ucla.edu>
 3788 
 3789 	maint: use getrandom, not getentropy
 3790 	This makes for one Gnulib module less, and at runtime there’s
 3791 	typically just one getrandom syscall instead of several for large
 3792 	nonces.
 3793 	* gl/lib/randread.c: Include sys/random.h instead of sys/time.h
 3794 	and unistd.h.
 3795 	(get_nonce): Use getrandom, not getentropy.
 3796 	* gl/modules/randread (Depends-on):
 3797 	Depend on getrandom, not getentropy.
 3798 	* src/shred.c (main):
 3799 	* src/shuf.c (main):
 3800 	* src/sort.c (random_md5_state_init):
 3801 	Say "getrandom" rather than "getentropy" in (unlikely) diagnostic.
 3802 
 3803 	maint: use getentropy and new tempname modules
 3804 	Update gnulib submodule to latest and use its new features.
 3805 	Gnulib’s new getentropy module means coreutils can now assume
 3806 	getentropy instead of approximating it, badly in some cases.
 3807 	Gnulib’s improvements to the tempname module mean coreutils no
 3808 	longer needs to maintain private patches.
 3809 	* bootstrap.conf (gnulib_modules): Remove gettimeofday.
 3810 	* gl/lib/randread.c (NAME_OF_NONCE_DEVICE): Remove.
 3811 	(get_nonce): Return success indicator.  Remove bytes_bound arg.
 3812 	All callers changed.  Rewrite by using getentropy instead of
 3813 	reading the nonce device and falling back on gettimeofday.
 3814 	Fail if getentropy fails.
 3815 	(randread_new): Return NULL (setting errno) if get_nonce fails.
 3816 	All callers changed.
 3817 	* gl/lib/tempname.c.diff, gl/lib/tempname.h.diff:
 3818 	* gl/modules/tempname.diff: Remove.
 3819 	* gl/modules/randread (Depends-on):
 3820 	Depend on getentropy, not gettimeofday.
 3821 	* src/ptx.c (swallow_file_in_memory):
 3822 	* src/shuf.c (read_input):
 3823 	Adjust to read_file changes in Gnulib.
 3824 	* src/shred.c (main):
 3825 	* src/shuf.c (main):
 3826 	* src/sort.c (random_md5_state_init):
 3827 	Diagnose the new form of randread_new failures: randread_new can
 3828 	fail now when !random_source, meaning getentropy failed.
 3829 
 3830 	echo: pacify Oracle Studio 12.6
 3831 	* src/echo.c (main): Don’t assign pointer to bool.
 3832 	This is well-defined in C99, but is arguably bad style
 3833 	and Oracle Studio 12.6 complains.
 3834 
 3835 2020-05-25  Bernhard Voelker  <mail@bernhard-voelker.de>
 3836 
 3837 	maint: copy FDL from gnulib instead of using it as module
 3838 	Since the previous gnulib update, bootstrap outputs this warning:
 3839 
 3840 	  Notice from module fdl:
 3841 	    Don't use this module! Instead, copy the referenced license file \
 3842 	    into your version control repository.
 3843 
 3844 	See gnulib commit:
 3845 	  https://git.sv.gnu.org/cgit/gnulib.git/commit/?id=88fc5afbccc9
 3846 
 3847 	* bootstrap.conf (gnulib_modules): Remove 'fdl'.
 3848 	* doc/fdl.texi: Add file as a copy of 'gnulib/doc/fdl.texi'.
 3849 	* doc/.gitignore (/fdl.texi): Remove entry.
 3850 	* cfg.mk (FILTER_LONG_LINES): Add pattern for the 'fdl.texi' file.
 3851 
 3852 2020-05-23  Bernhard Voelker  <mail@bernhard-voelker.de>
 3853 
 3854 	maint: fix syntax-check failure from recent adjustment
 3855 	* cfg.mk (old_NEWS_hash): Regenerate after commit v8.32-15-g6d0107a37
 3856 
 3857 2020-05-23  Bernhard Voelker  <mail@bernhard-voelker.de>
 3858 
 3859 	tests: fix removed-directory test
 3860 	The previous attempt to skip that test on NFS (commit 4181fc518362)
 3861 	made the test fail; it introduced two problems:
 3862 	a) In the good case, i.e., when the subshell returns with exit status 0,
 3863 	the test ran into framework_failure_.
 3864 	b) As the subshell also runs with 'set -x', the later comparison of
 3865 	/dev/null with 'err' would fail.
 3866 
 3867 	* tests/ls/removed-directory.sh: Revert to the style without subshell,
 3868 	and add 'test -d .' to verify that 'ls' can read the removed dir.
 3869 
 3870 2020-05-21  Paul Eggert  <eggert@cs.ucla.edu>
 3871 
 3872 	date: document +%-N change
 3873 	Suggested by Kamil Dudka in:
 3874 	https://lists.gnu.org/r/bug-gnulib/2020-05/msg00205.html
 3875 	* NEWS: Mention the change for coreutils 8.23.
 3876 	* doc/coreutils.texi (Padding and other flags):
 3877 	Document it.
 3878 
 3879 	ls: port removed-directory test to NFS
 3880 	* tests/ls/removed-directory.sh:
 3881 	Port test to NFS, where one gets a stale file handle
 3882 	when looking at a removed directory.
 3883 
 3884 	dd: omit unnecessary vars when !lint
 3885 	* src/dd.c (real_ibuf, real_obuf) [!lint]:
 3886 	Remove, as they're needed only when lint checking.
 3887 	All uses removed when 'lint' is not defined.
 3888 
 3889 	maint: omit unnecessary pragmas and fix tsort.c
 3890 	* src/chown-core.c, src/comm.c:
 3891 	* src/tsort.c (record_relation):
 3892 	Remove GCC 10 pragmas that are not needed in GCC 10.1.0 (the first
 3893 	public GCC 10 release) and that in some cases cause diagnostics
 3894 	with GCC 10.1.0.  The tsort.c change fixes a bug that was
 3895 	inadvertantly introduced when these pragmas were added.
 3896 
 3897 	build: update gnulib submodule to latest
 3898 
 3899 2020-05-11  Pádraig Brady  <P@draigBrady.com>
 3900 
 3901 	maint: avoid warnings from GCC's -fanalyzer
 3902 	* src/env.c (build_argv): Add an assert() to avoid:
 3903 	  warning: use of NULL 'n' where non-null expected
 3904 	  [CWE-690] [-Wanalyzer-null-argument]
 3905 	  note: argument 1 of 'getenv' must be non-null
 3906 	* src/dd.c (alloc_ibuf): Don't discard the allocated pointer, to avoid:
 3907 	  [CWE-401] [-Wanalyzer-malloc-leak]
 3908 	(alloc_obuf): Likewise.
 3909 	(cleanup): Deallocate the now tracked buffers which
 3910 	also avoids "possibly lost" warnings from valgrind.
 3911 	* src/tsort.c (search_item): Add asserts to avoid:
 3912 	  [CWE-690] [-Wanalyzer-null-dereference]
 3913 	(record_relation): An assert doesn't suffice here,
 3914 	so disable the warning for this function.
 3915 	* src/comm.c: Suppress the following false positive for the whole file:
 3916 	  [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
 3917 	* src/chown-core.c: Suppress the following false positive for the file:
 3918 	  [CWE-415] [-Wanalyzer-double-free]
 3919 
 3920 2020-04-27  Jason Kim  <git@jasonk.me>
 3921 
 3922 	ls: allow --classify to be ignored for non tty output
 3923 	Have the `ls` `--classify` option take an optional argument for when to
 3924 	classify ("always", "auto", "never"), just like the optional argument
 3925 	for `--color`.  When the optional argument is not specified, default to
 3926 	"always" for backwards compatibility.
 3927 
 3928 	* src/ls.c (usage): Update help text.
 3929 	(decode_switches): Support an optional argument for --classify.
 3930 	* tests/ls/classify.sh: Add a new test.
 3931 	* tests/local.mk: Reference the new test.
 3932 	* NEWS: Mention the new feature.
 3933 
 3934 2020-04-22  Bernhard Voelker  <mail@bernhard-voelker.de>
 3935 
 3936 	build: update gnulib to latest - to avoid du(1) crash on XFS
 3937 	Pull in a fix for FTS to avoid a crash when traversing a heavily
 3938 	changed XFS file system:
 3939 
 3940 	> fts: remove NOSTAT_LEAF_OPTIMIZATION
 3941 
 3942 	* NEWS (Bug fixes): Mention the fix.
 3943 	* gnulib: Update to latest.
 3944 	* bootstrap: Sync from gnulib/build-aux/bootstrap.
 3945 
 3946 	Discussed at:
 3947 	<https://lists.gnu.org/r/bug-gnulib/2020-04/msg00068.html>
 3948 
 3949 2020-04-02  Pádraig Brady  <P@draigBrady.com>
 3950 
 3951 	maint: clean up recently added test
 3952 	* tests/misc/uniq-collate.sh: Remove logic that
 3953 	was already refactored into gen_input().
 3954 
 3955 	cp: ensure --attributes-only doesn't remove files
 3956 	* src/copy.c (copy_internal): Ensure we don't unlink the destination
 3957 	unless explicitly requested.
 3958 	* tests/cp/attr-existing.sh: Add test cases.
 3959 	* NEWS: Mention the bug fix.
 3960 	Fixes https://bugs.gnu.org/40352
 3961 
 3962 2020-03-28  Paul Eggert  <eggert@cs.ucla.edu>
 3963 
 3964 	build: update gnulib submodule to latest
 3965 	* src/selinux.c: Do not include dosname.h; not needed, since
 3966 	system.h does that for us via dirname.h.
 3967 
 3968 2020-03-15  Bernhard Voelker  <mail@bernhard-voelker.de>
 3969 
 3970 	maint: add texi2dvi build directory to doc/.gitignore
 3971 	* doc/.gitignore (/coreutils.t2p/): Add entry for the build directory
 3972 	left behind after 'make pdf'.
 3973 	While at it, sort the file.
 3974 
 3975 2020-03-07  Paul Eggert  <eggert@cs.ucla.edu>
 3976 
 3977 	ls: improve removed-directory test
 3978 	* tests/ls/removed-directory.sh: Remove host_triplet test.
 3979 	Skip this test if one cannot remove the working directory.
 3980 	From a suggestion by Bernhard Voelker (Bug#39929).
 3981 
 3982 	ls: restore 8.31 behavior on removed directories
 3983 	* NEWS: Mention this.
 3984 	* src/ls.c: Do not include <sys/sycall.h>
 3985 	(print_dir): Don't worry about whether the directory is removed.
 3986 	* tests/ls/removed-directory.sh: Adjust to match new (i.e., old)
 3987 	behavior.
 3988 
 3989 2020-03-05  Pádraig Brady  <P@draigBrady.com>
 3990 
 3991 	maint: post-release administrivia
 3992 	* NEWS: Add header line for next release.
 3993 	* .prev-version: Record previous version.
 3994 	* cfg.mk (old_NEWS_hash): Auto-update.
 3995 
 3996 	version 8.32
 3997 	* NEWS: Record release date.
 3998 
 3999 2020-03-04  Pádraig Brady  <P@draigBrady.com>
 4000 
 4001 	tests: don't rely on system env(1) being present
 4002 	* tests/misc/env-S.pl: `env -i env` will call the system env
 4003 	due to the path being cleared, so pass the absolute path
 4004 	of our env binary under test to avoid that.  This was seen
 4005 	to be an issue on Guix where /usr/bin/env was not available.
 4006 
 4007 	basenc: avoid undefined behaviour in z85 processing
 4008 	* src/basenc.c (z85_decode_ctx_init): Ensure we're working
 4009 	with unsigned, as otherwise ubsan triggers with:
 4010 	  src/basenc.c:767:18: runtime error: signed integer overflow:
 4011 	  43 * 52200625 cannot be represented in type 'int'
 4012 	(z85_encode): Likewise to avoid the usban error:
 4013 	  src/basenc.c:630:26: runtime error:
 4014 	  left shift of 134 by 24 places cannot be represented in type 'int'
 4015 
 4016 2020-03-01  Pádraig Brady  <P@draigBrady.com>
 4017 
 4018 	tests: avoid a false failure on OpenIndiana 11
 4019 	* tests/misc/timeout-parameters.sh: Split the large timeout
 4020 	handling to ...
 4021 	* tests/misc/timeout-large-parameters.sh: ... here, so that
 4022 	the 3 second delay is contained in its own test, and if
 4023 	the test is skipped due invalid handling within timeout(1),
 4024 	it will be more apparent.
 4025 	Also adjust the check so we skip whenever the kernel timer
 4026 	fires immediately, to handle the buggy OpenIndiana 11 kernel also.
 4027 	Reported by Bruno Haible.
 4028 
 4029 	tests: avoid a hang on GNU/Hurd from 2019
 4030 	* tests/du/8gb.sh: Add a timeout around:
 4031 	`dd bs=1 seek=8G of=big < /dev/null`
 4032 
 4033 	tests: use bash in some scripts to avoid false failures
 4034 	* init.cfg (require_bash_as_SHELL_): A new function to replace
 4035 	SHELL for the current test, with bash if available.
 4036 	This is useful on OpenIndiana 11 where /bin/sh was seen
 4037 	to have races in handling of SIGPIPE.
 4038 	* tests/misc/seq-epipe.sh: Use the new function to enforce bash.
 4039 	* tests/misc/env-signal-handler.sh: Likewise.
 4040 	Reported by Bruno Haible
 4041 
 4042 	tests: improve test coverage for ls stat checks
 4043 	* tests/ls/stat-free-color.sh: Check for the availability
 4044 	of various stat calls individually, and add statx() and fstatat64()
 4045 	to the list to check.  Fix the stat counting logic to
 4046 	ignore lines like "+++ exited with 0 +++".
 4047 	* tests/ls/stat-free-symlinks.sh: Check syscalls other than stat().
 4048 
 4049 2020-03-01  Bruno Haible  <bruno@clisp.org>
 4050 
 4051 	tests: enable 4 more tests to be executed on FreeBSD
 4052 	* init.cfg (gcc_shared_libs_): New variable.
 4053 	(gcc_shared_): Use it, instead of hardcoding -ldl.
 4054 	(require_gcc_shared_): Determine the suitable value
 4055 	for gcc_shared_libs_.
 4056 
 4057 2020-02-29  Pádraig Brady  <P@draigBrady.com>
 4058 
 4059 	tests: fix incorrect `|| fail` pattern in tests
 4060 	* tests/ls/stat-free-symlinks.sh: s/|| fail/|| fail=1/.
 4061 	* tests/misc/tee.sh: Likewise.
 4062 	* tests/touch/relative.sh: Likewise.
 4063 	* cfg.mk (sc_prohibit_or_fail): A new syntax-check to avoid this.
 4064 
 4065 2020-02-29  Pádraig Brady  <P@draigBrady.com>
 4066 
 4067 	tests: avoid false failures on darwin 19.2.0
 4068 	With these adjustments, all tests pass on macOS Catalina.
 4069 
 4070 	* tests/dd/sparse.sh: Adjust so that systems like apfs that
 4071 	don't create holes < 16 MiB do not fail erroneously.
 4072 	* tests/touch/trailing-slash.sh: Darwin was seen to dereference
 4073 	symlinks to files when given a trailing slash, so avoid
 4074 	that particular case.
 4075 
 4076 2020-02-29  Bruno Haible  <bruno@clisp.org>
 4077 
 4078 	tests: fix test failure on FreeBSD 12
 4079 	* tests/misc/csplit-io-err.sh: Limit the effect of the fwrite
 4080 	override to streams != stderr, as fwrite is in the error() path there.
 4081 
 4082 2020-02-27  Jan Nieuwenhuizen  <janneke@gnu.org>
 4083 
 4084 	build: once again distribute .tar.gz files
 4085 	* configure.ac: Reenable distribution of gzip-compressed
 4086 	tarballs, for Guix bootstrapping reasons as discussed at:
 4087 	https://lists.gnu.org/r/coreutils/2020-02/msg00042.html
 4088 	* THANKS.in: Remove me, as now a committer.
 4089 	* NEWS (Build-related): Mention this.
 4090 
 4091 2020-02-27  Pádraig Brady  <P@draigBrady.com>
 4092 
 4093 	maint: ensure .deps/ in the project root is ignored by git
 4094 	* .gitignore: s|*/.deps/|.deps|
 4095 
 4096 	doc: remove older ChangeLog items
 4097 	* Makefile.am: Update the oldest documented version
 4098 	to 8.23 which is now about 5 years old.
 4099 
 4100 2020-02-27  Colin Watson  <cjwatson@debian.org>
 4101 
 4102 	ls: issue error message on removed directory
 4103 	If the current directory has been removed, then "ls" confusingly
 4104 	produced no output and no error message, indistinguishable from
 4105 	running on an empty directory.
 4106 
 4107 	* src/ls.c (print_dir): Report ENOENT on GNU/Linux if readdir
 4108 	finds no directory entries at all, not even "." or "..",
 4109 	and a recheck with the getdents syscall returns ENOENT.
 4110 	We recheck with getdents() as POSIX states that
 4111 	"The directory entries for dot and dot-dot are optional".
 4112 	* tests/ls/removed-directory.sh: New file.
 4113 	* tests/local.mk (all_tests): Add new test.
 4114 	* NEWS: Mention the change in behavior.
 4115 	Reported by Owen Thomas.
 4116 
 4117 2020-02-25  Pádraig Brady  <P@draigBrady.com>
 4118 
 4119 	build: update to latest gnulib
 4120 	* bootstrap.conf: Adjust for changes to fchmodat and fchownat,
 4121 	which are now separated from chmodat and chownat respectively.
 4122 
 4123 	b2sum: sync better with upstream
 4124 	* src/blake2/blake2-impl.h: Sync load16() implementation,
 4125 	which doesn't change code generation.
 4126 	Also leverage (builtin) memcpy to more efficiently
 4127 	move data on little endian systems,
 4128 	giving a 2% win with GCC 9.2.1 on an i3-2310M.
 4129 
 4130 	factor: sync longlong.h adjustments from upstream
 4131 	* src/longlong.h: Sync changes from:
 4132 	https://gmplib.org/repo/gmp/log/tip/longlong.h
 4133 	mips64: Provide r6 asm code as default expression yields.
 4134 	arm32: Define sub_ddmmss separately for non-thumb (no rsc instruction).
 4135 	powerpc: Add "CLOBBER" descriptions for some registers.
 4136 	x86: Fix criterion for when to use mulx in umul_ppmm.
 4137 
 4138 	stat,tail: sync file system constants from the linux kernel
 4139 	* src/stat.c: Add magic constants for "binderfs", "dma-buf-fs",
 4140 	"erofs", "ppc-cmm-fs", and "z3fold".
 4141 	* NEWS: Mention the improvement.
 4142 
 4143 2020-02-24  Pádraig Brady  <P@draigBrady.com>
 4144 
 4145 	uniq: avoid strcoll() to improve performance and consistency
 4146 	strcoll() is only significant to uniq(1) if it returns 0,
 4147 	and it generally only does so with buggy locales or mismatched
 4148 	locales and data.  Some systems may have strcoll()
 4149 	return 0 for equivalent normalized unicode forms,
 4150 	but for consistency across platforms strcoll() is avoided.
 4151 	The various cases are defined in the new test.
 4152 	This is consistent with newer POSIX standards as discussed at:
 4153 	https://www.austingroupbugs.net/view.php?id=963
 4154 
 4155 	* src/uniq.c: s/xstrcoll/memcmp/.
 4156 	* tests/local.mk: Reference the new test.
 4157 	* tests/misc/uniq-collate.sh: Add a new test.
 4158 	* NEWS: Mention the change in behavior.
 4159 	Fixes https://bugs.gnu.org/38627
 4160 
 4161 2020-02-15  Pádraig Brady  <P@draigBrady.com>
 4162 
 4163 	doc: clarify that '%a' stat format outputs mode bits
 4164 	* src/stat.c (usage): Mention permission bits rather than
 4165 	"access" so there is no confusion with ACLs etc.
 4166 	Also indicate we output the file type with '%A'.
 4167 	* doc/coreutils.texi (stat invocation): Likewise.
 4168 	Also indicate '%A' is similar to `ls -ld` output.
 4169 	Addresses https://bugs.gnu.org/39613
 4170 
 4171 2020-02-10  Pádraig Brady  <P@draigBrady.com>
 4172 
 4173 	tests: fix test for symlink
 4174 	* tests/cp/preserve-gid.sh: s/-l/-L/.
 4175 	Reported by Kamil Dudka
 4176 
 4177 2020-02-09  Kamil Dudka  <kdudka@redhat.com>
 4178 
 4179 	tests: ensure tests/cp/preserve-gid.sh works with single binary
 4180 	* tests/cp/preserve-gid.sh: If configured with --enable-single-binary
 4181 	copy the coreutils single binary, instead of the cp one-line launcher.
 4182 
 4183 	Discussed at https://bugzilla.redhat.com/1800597
 4184 	Fixes https://bugs.gnu.org/39485
 4185 
 4186 2020-02-09  Pádraig Brady  <P@draigBrady.com>
 4187 
 4188 	maint: avoid syntax-check failure in previous commit
 4189 	* configure.ac: Restrict lines to 80 chars.
 4190 
 4191 2020-02-09  Jim Meyering  <meyering@fb.com>
 4192 
 4193 	build: suppress new FP warning from gcc-10.0.1
 4194 	* configure.ac (GNULIB_WARN_CFLAGS): Add -Wno-return-local-addr
 4195 	to avoid FP warning about careadlinkat.c. Discussed starting in
 4196 	https://lists.gnu.org/r/coreutils/2020-02/msg00006.html
 4197 
 4198 2020-02-04  Pádraig Brady  <P@draigBrady.com>
 4199 
 4200 	build: update to latest gnulib
 4201 	Pick up recent build fixes to avoid sysctl.h inclusion on glibc systems,
 4202 	restrict the max file size supported by read-file to PTRDIFF_MAX,
 4203 	and to avoid a -Werror=unused failure in test-canonicalize.
 4204 
 4205 	tests: avoid false failure due to varying /proc/kallsyms
 4206 	* tests/cp/proc-short-read.sh: Switch to using /proc/cpuinfo,
 4207 	rather than /proc/kallsyms which was seen to vary in some cases.
 4208 	Fixes https://bugs.gnu.org/39357
 4209 
 4210 2020-02-04  Pádraig Brady  <P@draigBrady.com>
 4211 
 4212 	rmdir: fix --ignore-fail-on-non-empty with permissions errors
 4213 	Since v6.10-21-ged5c4e7 `rmdir --ignore-fail-on-non-empty`
 4214 	had reversed the failure status for directories that failed
 4215 	to be removed for permissions reasons.  I.E. it would have
 4216 	returned a failure status for such non empty dirs, and vice versa.
 4217 
 4218 	* src/rmdir.c (errno_may_be_non_empty): Rename from the
 4219 	more confusing errno_may_be_empty(), and remove the EEXIST
 4220 	case (specific to Solaris), which is moot here since
 4221 	handled in errno_rmdir_non_empty().
 4222 	(ignorable_failure): Fix the logic error so that
 4223 	_non_ empty dirs are deemed to have ignorable failures.
 4224 	(main): Fix clobbering of errno by is_empty_dir().
 4225 	(remove_parents): Likewise.
 4226 	* tests/rmdir/ignore.sh: Add a test case.
 4227 	* THANKS.in: Add reporter who fixed the errno handling.
 4228 	* NEWS: Mention the bug fix.
 4229 	Fixes https://bugs.gnu.org/39364
 4230 
 4231 2020-02-03  Pádraig Brady  <P@draigBrady.com>
 4232 
 4233 	build: avoid vector performance warnings in randperm
 4234 	* configure.ac: Add -Wno-vector-operation-performance to suppress the
 4235 	following gcc-9.2 error in gl/lib/randperm.c:
 4236 	  error: vector operation will be expanded piecewise
 4237 
 4238 	build: avoid including sysctl.h on glibc
 4239 	* src/uname.c: Avoid unneeded header with GLIBC,
 4240 	which has been deprecated since glibc-2.30.
 4241 	* src/uptime.c: Likewise.
 4242 
 4243 	ls: support --time=creation to show/sort birth time
 4244 	* src/ls.c (usage): Reorganize help for --time,
 4245 	and add description for --time=birth.
 4246 	(do_statx): Store btime in mtime if available.
 4247 	(get_stat_btime): A new function to read the creation time
 4248 	from the appropriate stat structure member.
 4249 	(cmp_btime): A new function to compare birth time.
 4250 	(print_long_format): Output '?' when birth time unavailable.
 4251 	* doc/coreutils.texi: Document --time={birth,creation}.
 4252 	* tests/local.mk: Reference the new test.
 4253 	* tests/ls/birthtime.sh: Add a new test.
 4254 	* NEWS: Mention the new feature.
 4255 
 4256 2020-01-30  Chris Meyering  <christophe.meyering@gmail.com>
 4257 
 4258 	build: rearrange yes(1) code to prevent GCC 10 warning
 4259 	* src/yes.c (main): Convert for loop to do-while in order to indicate
 4260 	that the loop will be run at least once.
 4261 	This avoids the following warning after the second loop:
 4262 	src/yes.c:110:20: error: writing 1 byte into a region of size 0
 4263 
 4264 2020-01-01  Emil Engler  <me@emilengler.com>
 4265 
 4266 	maint: add lib/iconv_open-zos.h to .gitignore
 4267 	* .gitignore: Add file newly generated by gnulib commit 49e78fc
 4268 
 4269 2020-01-01  Pádraig Brady  <P@draigBrady.com>
 4270 
 4271 	build: auto enable use of openssl with >= version 3
 4272 	* configure.ac: Set --with-openssl=auto-gpl-compat as the default,
 4273 	so that openssl is used for md5sum etc., with openssl >= 3,
 4274 	which is newly licensed under ASL v2.
 4275 	* gnulib: Update to include "auto-gpl-compat" support.
 4276 
 4277 	maint: adjust to split out xstrtol-error gnulib module
 4278 	* bootstrap.conf: Depend on the new module split from xstrtol.
 4279 	* src/df.c: Include "xstrtol-error.h" for xstrtol_fatal.
 4280 	* src/du.c: Likewise.
 4281 	* src/ls.c: Likewise.
 4282 	* src/od.c: Likewise.
 4283 	* src/pr.c: Likewise.
 4284 	* src/sort.c: Likewise.
 4285 
 4286 2020-01-01  Pádraig Brady  <P@draigBrady.com>
 4287 
 4288 	maint: update all copyright year number ranges
 4289 	Run "make update-copyright" and then...
 4290 
 4291 	* gnulib: Update to latest with copyright year adjusted.
 4292 	* tests/init.sh: Sync with gnulib to pick up copyright year.
 4293 	* bootstrap: Likewise.
 4294 	* tests/sample-test: Adjust to use the single most recent year.
 4295 
 4296 2019-12-08  Bernhard Voelker  <mail@bernhard-voelker.de>
 4297 
 4298 	doc: add example to demonstrate sub-second sleep times
 4299 	* doc/coreutils.texi (sleep invocation): Add an example to demonstrate
 4300 	how to use the floating-point and the scientific notation to sleep
 4301 	for sub-second times, e.g. milli-, micro- and nanoseconds.
 4302 
 4303 	Inspired by Stephane Chazelas in:
 4304 	  https://lists.gnu.org/r/coreutils/2019-12/msg00005.html
 4305 
 4306 2019-12-02  Pádraig Brady  <P@draigBrady.com>
 4307 
 4308 	maint: fix syntax-check failure from recent adjustment
 4309 	* cfg.mk (old_NEWS_hash): Regenerate after commit v8.31-56-gc1e1965.
 4310 
 4311 2019-12-02  Kamil Dudka  <kdudka@redhat.com>
 4312 
 4313 	chcon: do not validate security context if SELinux is disabled
 4314 	* src/chcon.c (main): Skip call of security_check_context()
 4315 	in case SELinux is disabled to avoid unnecessary failure.
 4316 
 4317 	Bug: https://bugzilla.redhat.com/1777831
 4318 
 4319 2019-11-12  Paul Eggert  <eggert@cs.ucla.edu>
 4320 
 4321 	doc: remove colon from node name
 4322 	* doc/sort-version.texi (Minus/Hyphen and Colon characters):
 4323 	Rename from “Minus/Hyphen @samp{-} and Colon @samp{:} characters”,
 4324 	as texi2any 6.6 complains about colons in node names.
 4325 
 4326 	shred: modernize documentation
 4327 	* doc/coreutils.texi (shred invocation):
 4328 	Modernize discussion to today’s technology (Bug#38168).
 4329 	* src/shred.c (usage): Omit lengthy duplication of the manual’s
 4330 	discussion of file systems and storage devices, as that became out
 4331 	of sync with the manual.  Instead, just cite the manual.
 4332 
 4333 2019-10-22  Paul Eggert  <eggert@cs.ucla.edu>
 4334 
 4335 	all: improve parsing of numeric arguments
 4336 	This addresses a longstanding "update all callers" FIXME in
 4337 	lib/xstrtol.c, by having programs check that numbers do not
 4338 	have unknown suffixes.  The problem was also reported for
 4339 	'shuf' by my student Maggie Huang while reimplementing a shuf
 4340 	subset in Python as an exercise in UCLA Computer Science 35L:
 4341 	https://web.cs.ucla.edu/classes/fall19/cs35L/assign/assign3.html
 4342 	This patch also improves the portability of the code to unusual
 4343 	platforms where ULONG_MAX < SIZE_MAX.
 4344 	* NEWS: Mention user-visible changes.
 4345 	* src/chgrp.c (parse_group):
 4346 	* src/chroot.c (parse_additional_groups):
 4347 	* src/du.c (main):
 4348 	* src/install.c (get_ids):
 4349 	* src/join.c (string_to_join_field):
 4350 	* src/ls.c (decode_switches):
 4351 	* src/md5sum.c (split_3):
 4352 	* src/shuf.c (main):
 4353 	* src/sort.c (specify_nthreads):
 4354 	* src/uniq.c (size_opt, main):
 4355 	Use uintmax_t instead of unsigned long, for portability
 4356 	to oddball platforms where unsigned long is not wide enough.
 4357 	* src/du.c (main):
 4358 	* src/expr.c (mpz_init_set_str) [!HAVE_GMP]:
 4359 	* src/install.c (get_ids):
 4360 	* src/ls.c (decode_switches):
 4361 	* src/mknod.c (main):
 4362 	* src/ptx.c (main):
 4363 	* src/shuf.c (main):
 4364 	* src/sort.c (specify_nmerge, specify_nthreads):
 4365 	Reject numbers with suffixes.
 4366 	* src/md5sum.c (split_3): Simplify.
 4367 
 4368 	stdbuf: improve size checking
 4369 	* bootstrap.conf (gnulib_modules): Add minmax.
 4370 	* src/libstdbuf.c: Include stdint.h, minmax.h.
 4371 	(apply_mode): Don’t assume SIZE_MAX <= ULONG_MAX.
 4372 	Improve checking for invalid sizes.
 4373 
 4374 	shuf: improve randperm overflow checking
 4375 	* gl/lib/randperm.c: Include randperm.h first, since it’s the API.
 4376 	Include stdint.h, count-leading-zeros.h, verify.h.
 4377 	(floor_lg): Rename from ceil_log (which was not actually
 4378 	implementing the ceiling!) and implement the floor using
 4379 	count_leading_zeros.
 4380 	(randperm_bound): Use floor_lg, not ceil_log.  Use uintmax_t
 4381 	instead of size_t in case the size gets large on a 32-bit host.
 4382 	* gl/modules/randperm (Depends-on): Add count-leading-zeros, stdint.
 4383 
 4384 	build: don’t worry about logical-op checking
 4385 	* configure.ac: Remove code tailoring --enable-gcc-warnings
 4386 	to GCC 4.7 and earlier, as developers no longer need to worry
 4387 	about GCCs that old.
 4388 
 4389 	build: re-enable type-limits checking
 4390 	* configure.ac: When --enable-gcc-warnings is used, omit
 4391 	-Wno-type-limits.  The need for -Wno-type-limits has passed, now
 4392 	that intprops.h uses builtin primitives for GCC 5 and later, given
 4393 	that recent GCCs issue type-limits warnings only for non-constant
 4394 	expressions.  --enable-gcc-warnings is not intended for use with
 4395 	old compilers, so we can drop -Wno-type-limits now.
 4396 
 4397 2019-10-21  Paul Eggert  <eggert@cs.ucla.edu>
 4398 
 4399 	shuf: fix bug with ‘-r -n 0’
 4400 	‘shuf -r -n 0 file’ would mistakenly read from standard input.
 4401 	Problem reported by my student Jingnong Qu while reimplementing a
 4402 	shuf subset in Python as an exercise in UCLA Computer Science 35L:
 4403 	https://web.cs.ucla.edu/classes/fall19/cs35L/assign/assign3.html
 4404 	* NEWS: Mention the fix.  Also, ASCIIfy a previous item.
 4405 	* src/shuf.c (main): Fix bug.
 4406 	* tests/misc/shuf.sh: Add a test case for the bug.
 4407 
 4408 2019-10-09  Jeff Layton  <jlayton@kernel.org>
 4409 
 4410 	ls: use statx instead of stat when available
 4411 	statx allows ls to indicate interest in only certain inode metadata.
 4412 	This is potentially a win on networked/clustered/distributed
 4413 	file systems. In cases where we'd have to do a full, heavyweight stat()
 4414 	call we can now do a much lighter statx() call.
 4415 
 4416 	As a real-world example, consider a file system like CephFS where one
 4417 	client is actively writing to a file and another client does an
 4418 	ls --color in the same directory. --color means that we need to fetch
 4419 	the mode of the file.
 4420 
 4421 	Doing that with a stat() call means that we have to fetch the size and
 4422 	mtime in addition to the mode. The MDS in that situation will have to
 4423 	revoke caps in order to ensure that it has up-to-date values to report,
 4424 	which disrupts the writer.
 4425 
 4426 	This has a measurable affect on performance. I ran a fio sequential
 4427 	write test on one cephfs client and had a second client do "ls --color"
 4428 	in a tight loop on the directory that held the file:
 4429 
 4430 	Baseline -- no activity on the second client:
 4431 
 4432 	WRITE: bw=76.7MiB/s (80.4MB/s), 76.7MiB/s-76.7MiB/s (80.4MB/s-80.4MB/s),
 4433 	       io=4600MiB (4824MB), run=60016-60016msec
 4434 
 4435 	Without this patch series, we see a noticable performance hit:
 4436 
 4437 	WRITE: bw=70.4MiB/s (73.9MB/s), 70.4MiB/s-70.4MiB/s (73.9MB/s-73.9MB/s),
 4438 	       io=4228MiB (4433MB), run=60012-60012msec
 4439 
 4440 	With this patch series, we gain most of that ground back:
 4441 
 4442 	WRITE: bw=75.9MiB/s (79.6MB/s), 75.9MiB/s-75.9MiB/s (79.6MB/s-79.6MB/s),
 4443 	       io=4555MiB (4776MB), run=60019-60019msec
 4444 
 4445 	* src/stat.c: move statx to stat struct conversion to new header...
 4446 	* src/statx.h: ...here.
 4447 	* src/ls.c: Add wrapper functions for stat/lstat/fstat calls,
 4448 	and add variants for when we are only interested in specific info.
 4449 	Add statx-enabled functions and set the request mask based on the
 4450 	output format and what values are needed.
 4451 	* NEWS: Mention the Improvement.
 4452 
 4453 2019-10-03  Paul Eggert  <eggert@cs.ucla.edu>
 4454 
 4455 	truncate: avoid integer-overflow assumptions
 4456 	* src/truncate.c (do_ftruncate): Simplify overflow checking,
 4457 	and don’t rely on theoretically-nonportable assumptions
 4458 	like assuming that OFF_MAX < UINTMAX_MAX.
 4459 
 4460 	numfmt: avoid unlikely integer overflow
 4461 	* src/numfmt.c (parse_format_string): Report overflow if
 4462 	pad < -LONG_MAX, since that can’t be negated.
 4463 
 4464 	nl: fix integer-overflow bug
 4465 	Problem reported by Roland Illig (Bug#37585)
 4466 	* src/nl.c (print_lineno): Don’t rely on undefined behavior when
 4467 	checking for integer overflow.
 4468 
 4469 	cp: simplify integer overflow checking
 4470 	* src/copy.c (sparse_copy): Use INT_ADD_WRAPV instead
 4471 	of doing overflow checking by hand.
 4472 
 4473 2019-09-08  Pádraig Brady  <pbrady@fb.com>
 4474 
 4475 	seq: use faster processing for integer steps from 2 to 200
 4476 	* src/seq.c: (seq_fast): Accept STEP as a parameter and use that
 4477 	to skip the output of generated numbers.
 4478 	(main): Relax to using seq_fast for integer steps between 1 and 200.
 4479 	For larger steps the throughput was faster using the standard
 4480 	incrementing procedure.
 4481 	(cmp): Use the equivalent but faster memcmp for equal len strings.
 4482 	* tests/misc/seq.pl: Update fast path cases.
 4483 	Addresses https://bugs.gnu.org/37241
 4484 
 4485 2019-09-08  Pádraig Brady  <P@draigBrady.com>
 4486 
 4487 	maint: use consistent header ordering and spacing in NEWS
 4488 	* NEWS: Move "Changes in behavior" before "New features",
 4489 	and ensure there is only a single blank line between sections.
 4490 
 4491 2019-08-15  Paul Eggert  <eggert@cs.ucla.edu>
 4492 
 4493 	build: update gnulib submodule to latest
 4494 
 4495 2019-08-15  Assaf Gordon  <assafgordon@gmail.com>
 4496 
 4497 	scripts: document how to build older versions on newer systems
 4498 	Based on https://lists.gnu.org/r/coreutils/2019-08/msg00011.html .
 4499 
 4500 	* scripts/build-older-versions/README.older-versions: Documentation
 4501 	* scripts/build-older-versions/build-older-versions.sh: Helper script.
 4502 	* scripts/build-older-versions/.gitignore: Ignore build directory.
 4503 	* scripts/build-older-versions/coreutils-5.0-on-glibc-2.28.diff,
 4504 	scripts/build-older-versions/coreutils-5.97-on-glibc-2.28.diff,
 4505 	scripts/build-older-versions/coreutils-6.10-on-glibc-2.28.diff,
 4506 	scripts/build-older-versions/coreutils-6.11-on-glibc-2.28.diff,
 4507 	scripts/build-older-versions/coreutils-6.12-on-glibc-2.28.diff,
 4508 	scripts/build-older-versions/coreutils-7.2-on-glibc-2.28.diff,
 4509 	scripts/build-older-versions/coreutils-8.13-on-glibc-2.28.diff,
 4510 	scripts/build-older-versions/coreutils-8.17-on-glibc-2.28.diff,
 4511 	scripts/build-older-versions/coreutils-8.18-on-glibc-2.28.diff,
 4512 	scripts/build-older-versions/coreutils-8.24-on-glibc-2.28.diff,
 4513 	scripts/build-older-versions/coreutils-8.4-on-glibc-2.28.diff: Patches.
 4514 
 4515 2019-08-12  Bruno Haible  <bruno@clisp.org>
 4516 
 4517 	build: adjust for recent gnulib pthread changes
 4518 	Discussed in https://lists.gnu.org/r/coreutils/2019-08/msg00030.html .
 4519 
 4520 	* bootstrap.conf (gnulib_modules): Replace 'pthread' with
 4521 	pthread-* modules.
 4522 	* src/sort.c: Remove GNULIB_defined_pthread_functions conditional.
 4523 
 4524 2019-08-11  Assaf Gordon  <assafgordon@gmail.com>
 4525 
 4526 	date: mention military timezone changes from gnulib
 4527 	Gnulib commits f1f10d47be8762e4ca17c8957a0520b08d28abfb and
 4528 	0673d8ab42c9bb0cf618a21b537cdd8fb976fb73 negated the meaning of
 4529 	military timezones parsed in gnu date.
 4530 	See https://lists.gnu.org/r/bug-gnulib/2019-08/msg00005.html and
 4531 	https://lists.gnu.org/r/coreutils/2019-08/msg00021.html
 4532 
 4533 	* NEWS: Mention this user-visible change.
 4534 	* tests/misc/date.pl: Add tests for the new behavior.
 4535 
 4536 2019-08-11  Bernhard Voelker  <mail@bernhard-voelker.de>
 4537 
 4538 	maint: add lib/argmatch.h to po/POTFILES.in
 4539 	* po/POTFILES.in (lib/argmatch.h): Add to avoid sc_po_check error:
 4540 	    "maint.mk: you have changed the set of files with translatable \
 4541 	     diagnostics;"
 4542 
 4543 2019-08-11  Assaf Gordon  <assafgordon@gmail.com>
 4544 
 4545 	gnulib: update to latest
 4546 
 4547 2019-08-08  Pádraig Brady  <P@draigBrady.com>
 4548 
 4549 	doc: clarify that truncate creates sparse files
 4550 	* src/truncate.c (usage): Explicitly mention "sparse".
 4551 	* doc/coreutils.texi (truncate invocation): Likewise.
 4552 	Addresses https://bugs.gnu.org/36963
 4553 
 4554 2019-08-07  Mike Swanson  <mikeonthecomputer@gmail.com>
 4555 
 4556 	dircolors: recognize the WebP image format
 4557 	* src/dircolors.hin: Add .webp for the WebP image format.
 4558 	Fixes https://bugs.gnu.org/36899
 4559 
 4560 2019-08-07  Bernhard Voelker  <mail@bernhard-voelker.de>
 4561 
 4562 	maint: fix error in syntax-check checking
 4563 	The previous commit introduced a bug into the following syntax-check,
 4564 	and thus effectively turned it off:
 4565 
 4566 	  $ make sc_prohibit_test_calls_print_ver_with_irrelevant_argument; \
 4567 	      echo $?
 4568 	  prohibit_test_calls_print_ver_with_irrelevant_argument
 4569 	  fatal: cannot change to 'grep': No such file or directory
 4570 	  0
 4571 
 4572 	* cfg.mk (sc_prohibit_test_calls_print_ver_with_irrelevant_argument):
 4573 	Remove changing directory, and pass $(srcdir) as argument to 'git -C'.
 4574 
 4575 2019-08-04  Akim Demaille  <akim.demaille@gmail.com>
 4576 
 4577 	maint: fix issues in syntax-check
 4578 	* cfg.mk (sc_prohibit_colon_redirection): Don't expect `|` to denote
 4579 	the pipe character in git grep.
 4580 	(sc_tests_executable)
 4581 	(sc_case_insensitive_file_names)
 4582 	(sc_some_programs_must_avoid_exit_failure)
 4583 	(sc_prohibit_test_background_without_cleanup_)
 4584 	(sc_prohibit_test_calls_print_ver_with_irrelevant_argument)
 4585 	(sc_prohibit_test_ulimit_without_require_)
 4586 	(sc_prohibit_test_background_without_cleanup_)
 4587 	(sc_THANKS_in_duplicates)
 4588 	*sc_prohibit_test_calls_print_ver_with_irrelevant_argument):
 4589 	Don't expect builddir to be a descendant of srcdir.
 4590 	(sc_strftime_check): Don't check file size against 0 when "N\nq\n" was
 4591 	already put in the file.
 4592 	* THANKS.in: Remove me.
 4593 
 4594 2019-08-03  Assaf Gordon  <assafgordon@gmail.com>
 4595 
 4596 	seq: fix superfluous output line
 4597 	Under certain circumstances seq prints an extra line when the output
 4598 	format has custom format with characters following the printed numbers:
 4599 
 4600 	    $ seq -f "%g " 1000000 1000000
 4601 	     1e+06
 4602 	     1e+06
 4603 
 4604 	This is due to the "print_extra_number" logic using strings to determine
 4605 	whether a 'extra number' is needed, but only one string was trimmed
 4606 	when using a custom printf format.
 4607 
 4608 	Prompted by https://lists.gnu.org/r/coreutils/2019-08/msg00001.html
 4609 
 4610 	* NEWS: Mention fix.
 4611 	* src/seq.c (print_numbers): Trim the 'x0_str' string before comparing
 4612 	it to the previous 'x_str' string.
 4613 	* tests/misc/seq-extra-number.sh: Add this scenario.
 4614 	* tests/local.mk (all_tests): Add new test.
 4615 
 4616 2019-07-22  Bernhard Voelker  <mail@bernhard-voelker.de>
 4617 
 4618 	doc: improve new version sort chapter
 4619 	* doc/sort-version.texi: Fix some typos, avoid overly long lines in
 4620 	the generated PDF, enclose some sample strings in @samp{...} for better
 4621 	readability, etc.  This also avoids an sc-avoid-builtin error:
 4622 	s/builtin/built-in/
 4623 
 4624 2019-07-15  Assaf Gordon  <assafgordon@gmail.com>
 4625 
 4626 	doc: add "version sort ordering" chapter
 4627 	* doc/sort-version.texi: New file.
 4628 	* doc/local.mk (doc_coreutils_TEXINFOS): Add new file.
 4629 	* doc/coreutils.texi: @include new file, replace previous "Details about
 4630 	version sort" section.
 4631 
 4632 2019-07-12  Andreas Dilger  <adilger@whamcloud.com>
 4633 
 4634 	stat: don't explicitly request file size for filenames
 4635 	When calling 'stat -c %N' to print the filename, don't explicitly
 4636 	request the size of the file via statx(), as it may add overhead on
 4637 	some filesystems.  The size is only needed to optimize an allocation
 4638 	for the relatively rare case of reading a symlink name, and the worst
 4639 	effect is a somewhat-too-large temporary buffer may be allocated for
 4640 	areadlink_with_size(), or internal retries if buffer is too small.
 4641 
 4642 	The file size will be returned by statx() on most filesystems, even
 4643 	if not requested, unless the filesystem considers this to be too
 4644 	expensive for that file, in which case the tradeoff is worthwhile.
 4645 
 4646 	* src/stat.c: Don't explicitly request STATX_SIZE for filenames.
 4647 
 4648 2019-06-20  Paul Eggert  <eggert@cs.ucla.edu>
 4649 
 4650 	od: use fseek on non-regular files
 4651 	Problem reported by Szőts Ákos (Bug#36291).
 4652 	* NEWS: Mention this.
 4653 	* src/od.c (skip): Try fseek even on files that do not have usable
 4654 	sizes, falling back on fread if fseek fails.
 4655 
 4656 2019-06-18  Paul Eggert  <eggert@cs.ucla.edu>
 4657 
 4658 	doc: mention ls -l user/group justification
 4659 	* doc/coreutils.texi (What information is listed):
 4660 	Document justification of user and group columns in ls -l output
 4661 	(Bug#36220).
 4662 
 4663 2019-06-14  Jeff Layton  <jlayton@kernel.org>
 4664 
 4665 	stat: fix enabling of statx logic
 4666 	* src/stat.c: STATX_INO isn't defined until stat.h is included.
 4667 	Move the test down so it works properly.
 4668 
 4669 2019-06-13  Assaf Gordon  <assafgordon@gmail.com>
 4670 
 4671 	tests: avoid false-positive in date-debug test
 4672 	When debugging an invalid date due to DST switching, the intermediate
 4673 	'normalized time' should not be checked - its value can differ between
 4674 	systems (e.g. glibc vs musl).
 4675 
 4676 	Reported by Niklas Hambüchen in
 4677 	https://lists.gnu.org/r/coreutils/2019-05/msg00031.html
 4678 	Analyzed by Rich Felker in
 4679 	https://lists.gnu.org/r/coreutils/2019-05/msg00039.html
 4680 
 4681 	* tests/misc/date-debug.sh: Replace the exact normalized time
 4682 	with 'XX:XX:XX' so different values would not trigger test failure.
 4683 
 4684 2019-06-10  Jeff Layton  <jlayton@kernel.org>
 4685 
 4686 	stat: Use statx where available and support --cached
 4687 	* src/stat.c: Drop statbuf argument from out_epoch_sec().
 4688 	Use statx() rather than [lf]stat() where available,
 4689 	so a separate call is not required to get birth time.
 4690 	Set STATX_* mask bits only for things we want to print,
 4691 	which can be more efficient on some file systems.
 4692 	Add a new --cache= command-line option that sets the appropriate hint
 4693 	flags in the statx call.  These are primarily used with network
 4694 	file systems to indicate what level of cache coherency is desired.
 4695 	The new option is available unconditionally for better portability,
 4696 	and ignored where not implemented.
 4697 	* doc/coreutils.texi: Add documention for --cached.
 4698 	* man/stat.x (SEE ALSO): Mention statx().
 4699 	* NEWS: Mention the new feature.
 4700 
 4701 2019-06-09  Pádraig Brady  <P@draigBrady.com>
 4702 
 4703 	doc: fix description of tail -f on truncated files
 4704 	* doc/coreutils.texi (tail invocation): Update to match
 4705 	the new behavior following commit v8.23-189-gb28ff6a
 4706 
 4707 2019-06-08  Pádraig Brady  <P@draigBrady.com>
 4708 
 4709 	split: fix failure for certain number of specified files
 4710 	* src/split.c (set_suffix_length): Use a more standard
 4711 	zero based logN calculation for the number of units.
 4712 	* tests/split/suffix-auto-length.sh: Add a test case.
 4713 	* THANKS.in: Mention the reporter.
 4714 	* NEWS: Mention the fix.
 4715 	Fixes https://bugs.gnu.org/35291
 4716 
 4717 2019-05-30  Paul Eggert  <eggert@cs.ucla.edu>
 4718 
 4719 	dd: be more careful about signal handling
 4720 	Problem reported by Hans Henrik Bergan (Bug#36007).
 4721 	* NEWS: Mention this.
 4722 	* src/dd.c (iclose, ifdatasync, ifstat, ifsync):
 4723 	New functions, which are more careful about SIGINT.
 4724 	(cleanup): Use iclose instead of close.
 4725 	(finish_up): Process signals first.
 4726 	(skip, dd_copy, main): Use ifstat instead of fstat.
 4727 	(dd_copy): Use ifdatasync and ifsync instead of fdatasync and fsync.
 4728 
 4729 	maint: fix version number in NEWS
 4730 
 4731 2019-05-28  Paul Eggert  <eggert@cs.ucla.edu>
 4732 
 4733 	cp: fix /dev/stdin problem on Solaris
 4734 	Problem reported by Jakub Kulik (Bug#35713).
 4735 	* NEWS: Mention this.
 4736 	* configure.ac (DEV_FD_MIGHT_BE_CHR): New macro.
 4737 	* src/copy.c (DEV_FD_MIGHT_BE_CHR): Default to false.
 4738 	(follow_fstatat): New function.
 4739 	(copy_internal): Use it.
 4740 	* src/copy.h (XSTAT): Remove; no longer used.
 4741 
 4742 2019-05-26  Kevin Locke  <kevin@kevinlocke.name>
 4743 
 4744 	doc: clarify dd sparse detection is by *output* block
 4745 	The wording of the dd --help text suggests that output will be skipped
 4746 	for sparse *input* blocks (i.e. that NUL-checking is done on input
 4747 	blocks) while the code actually checks/skips all-NUL *output* blocks.[1]
 4748 
 4749 	* src/dd.c (usage): Update the --help text to clarify the above.
 4750 	* tests/dd/sparse.sh: Ensure sparseness is controlled with obs.
 4751 
 4752 	[1]: https://superuser.com/a/1136358
 4753 
 4754 2019-05-22  Martin Castillo  <castilma@uni-bremen.de>
 4755 
 4756 	doc: fix typo in sort set operations example
 4757 	* doc/coreutils.texi (sort invocation): Add a missing -u
 4758 	option to uniq.
 4759 	Addresses https://bugs.gnu.org/35849
 4760 
 4761 2019-05-17  Paul Eggert  <eggert@cs.ucla.edu>
 4762 
 4763 	b2sum: port blake2b-ref.c to HP-UX aCC
 4764 	Continue the fix for Bug#35650.
 4765 	* src/blake2/blake2b-ref.c [HAVE_CONFIG_H]: Include <config.h>.
 4766 
 4767 2019-05-15  Paul Eggert  <eggert@cs.ucla.edu>
 4768 
 4769 	b2sum: sync better with upstream
 4770 	* src/blake2/b2sum.c: Reorder source code to minimize diffs from:
 4771 	https://github.com/BLAKE2/BLAKE2/blob/master/b2sum/b2sum.c
 4772 
 4773 	b2sum: port to HP-UX aCC
 4774 	Its support for the -include option is flaky.  Problem reported by
 4775 	Michael Osipov (Bug#35650).  Plus, we could run into other
 4776 	compilers that don’t support any option like -include.  Change the
 4777 	code so that -include is not needed.  Although this causes us to
 4778 	depart from the upstream version, we’re already doing that for
 4779 	other reasons.
 4780 	* configure.ac (USE_XLC_INCLUDE): Remove, as there’s no
 4781 	guarantee a compiler will support something like -include.
 4782 	* src/blake2/b2sum.c [HAVE_CONFIG_H]: Include <config.h>.
 4783 	* src/local.mk (src_b2sum_CPPFLAGS): Add -DHAVE_CONFIG_H.
 4784 	Do not use -include or a substitute.
 4785 
 4786 2019-05-14  Paul Eggert  <eggert@cs.ucla.edu>
 4787 
 4788 	stdbuf: port configure-time checking to HP-UX aCC
 4789 	Problem reported by Michael Osipov (Bug#35650).
 4790 	* configure.ac: Use AC_LANG_WERROR to pay attention to compiler
 4791 	and linker warnings when testing whether stdbuf will work.
 4792 
 4793 2019-05-11  Paul Eggert  <eggert@cs.ucla.edu>
 4794 
 4795 	b2sum: port to HP-UX C
 4796 	* src/blake2/blake2.h (BLAKE2_PACKED):
 4797 	Don’t assume __attribute__ ((packed)) works on non-Microsoft
 4798 	compilers.  Instead, assume it works only if we have good
 4799 	reason to assume so, and fall back on Microsoft (or not packing)
 4800 	otherwise.  In practice, not packing is good enough and the
 4801 	BLAKE2_PACKED macro is mostly just for documentation.
 4802 
 4803 	cp: port fiemap.h to C99
 4804 	* src/extent-scan.c (extent_scan_read): Adjust to change in
 4805 	struct fiemap.
 4806 	* src/fiemap.h (struct fiemap): Use FLEXIBLE_ARRAY_MEMBER
 4807 	to port to C99.
 4808 
 4809 	basenc: port to C99
 4810 	* src/basenc.c: Various minor style cleanups.
 4811 	(struct base_decode_context): Do not use anonymous unions, as
 4812 	they’re not in C99.  Use a named union instead.  All uses changed.
 4813 
 4814 	maint: adjust to recent verify_true removal
 4815 	* src/system.h (X2NREALLOC, X2REALLOC, DECIMAL_DIGIT_ACCUMULATE):
 4816 	Use verify_expr instead of verify_true, which has been removed.
 4817 	(DECIMAL_DIGIT_ACCUMULATE): Remove unnecessary size check.
 4818 
 4819 	build: update gnulib submodule to latest
 4820 
 4821 2019-04-19  Bernhard Voelker  <mail@bernhard-voelker.de>
 4822 
 4823 	gnulib: update to the latest
 4824 	* gnulib: Update to latest, mainly for:
 4825 	  > mountlist: make parsing /proc/self/mountinfo more robust
 4826 	* NEWS: Mention the fix.
 4827 
 4828 	Fixes https://bugs.gnu.org/33468
 4829 
 4830 2019-03-31  Shugo Maeda  <shugo@ruby-lang.org>
 4831 
 4832 	factor: output immediately if stdout is a tty but stdin is not
 4833 	* src/factor.c (lbuf_putc): Use line buffered mode if the standard
 4834 	output is a terminal in the same way as the stdio library.
 4835 	User programs might use pty only for the standard out
 4836 	like the example of Ruby's PTY module:
 4837 	https://docs.ruby-lang.org/en/2.6.0/PTY.html#module-PTY-label-Example
 4838 	* NEWS: Mention the fix.
 4839 	Fixes https://bugs.gnu.orv/35046
 4840 
 4841 2019-03-30  Pádraig Brady  <P@draigBrady.com>
 4842 
 4843 	maint: fix syntax check failure
 4844 	* src/ln.c: Remove leading TAB.
 4845 
 4846 2019-03-30  Martin Castillo  <castilma@uni-bremen.de>
 4847 
 4848 	maint: tee: use STDIN_FILENO rather than 0
 4849 	* src/tee.c (tee_files): Use the name rather than the value.
 4850 	Addresses https://bugs.gnu.org/35041
 4851 
 4852 2019-03-20  Paul Eggert  <eggert@cs.ucla.edu>
 4853 
 4854 	dd: improve doc of stderr output
 4855 	* doc/coreutils.texi (dd invocation):
 4856 	Document stderr output more carefully.
 4857 	Say that conv=block can lose input data.
 4858 
 4859 2019-03-18  Kamil Dudka  <kdudka@redhat.com>
 4860 
 4861 	md5sum,b2sum,sha*sum: --help: add note about binary/text mode
 4862 	* src/md5sum.c (usage): Make it clear that there is no difference
 4863 	between binary mode and text mode on GNU systems.
 4864 
 4865 	Bug: https://bugzilla.redhat.com/406981
 4866 	Bug: https://bugzilla.redhat.com/1688740
 4867 
 4868 2019-03-17  Paul Eggert  <eggert@cs.ucla.edu>
 4869 
 4870 	doc: add NEWS item for Solaris symlink fix
 4871 
 4872 	ln: port to symlink ("x", ".") failing with EINVAL
 4873 	Problem reported by John Marino (Bug#34894).
 4874 	* src/ln.c (main): Port ln -s to Solaris symlink function,
 4875 	where symlink ("x", ".") fails with errno == EINVAL.
 4876 
 4877 2019-03-16  Pádraig Brady  <P@draigBrady.com>
 4878 
 4879 	doc: add a NEWS entry for the ln O_DIRECTORY fix
 4880 	* NEWS: Mention the bugfix.
 4881 
 4882 2019-03-16  Paul Eggert  <eggert@cs.ucla.edu>
 4883 
 4884 	ln: port to platforms lacking O_DIRECTORY
 4885 	* src/ln.c (main): Port to older platforms lacking
 4886 	support for POSIX.1-2008’s O_DIRECTORY flag (Bug#34876).
 4887 
 4888 2019-03-15  Kamil Dudka  <kdudka@redhat.com>
 4889 
 4890 	doc: improve wording of the --kibibytes option description
 4891 	Bug: https://bugzilla.redhat.com/1527391 , https://bugs.gnu.org/33646
 4892 
 4893 	* doc/coreutils.texi (General output formatting): Improve wording of
 4894 	'--kibibytes' option.
 4895 
 4896 2019-03-11  Bernhard Voelker  <mail@bernhard-voelker.de>
 4897 
 4898 	maint: sync extra files from gnulib
 4899 	Some files are physically copied from gnulib, and should get sync'ed
 4900 	after each update to latest gnulib.  This was forgotten during recent
 4901 	updates.
 4902 
 4903 	* COPYING: Merge from gnulib/doc/COPYINGv3.
 4904 	* tests/init.sh: Merge from gnulib/tests/init.sh.
 4905 
 4906 2019-03-11  Pádraig Brady  <P@draigBrady.com>
 4907 
 4908 	maint: post-release administrivia
 4909 	* NEWS: Add header line for next release.
 4910 	* .prev-version: Record previous version.
 4911 	* cfg.mk (old_NEWS_hash): Auto-update.
 4912 
 4913 2019-03-10  Pádraig Brady  <P@draigBrady.com>
 4914 
 4915 	version 8.31
 4916 	* NEWS: Record release date.
 4917 
 4918 	tests: test-N: include subsecond values in gating check
 4919 	* tests/misc/test-N.sh: The subsecond values for atime and mtime
 4920 	were potentially seen to differ on newlyl created files.
 4921 	So we include the subsecond portion when comparing stat values.
 4922 
 4923 	tests: wc-nbsp: fix false failures on various systems
 4924 	* tests/misc/wc-nbsp.sh: Add gating checks for all characters,
 4925 	as there are disparate classifications on various systems:
 4926 	SunOS 5.10 treats \u202F, \u2060 as !iswprint()
 4927 	SunOS 5.10 treats \u00A0, \u2007 as iswspace()
 4928 	AIX 7.2, Darwin 17.4.0, NetBSD 7.1 treat \u2060 as !iswprint()
 4929 
 4930 2019-03-07  Pádraig Brady  <P@draigBrady.com>
 4931 
 4932 	tests: tail-2/pipe-f: avoid false failure closing stdout
 4933 	* tests/tail-2/pipe-f.sh: Check closing stdout with >&-
 4934 	is effective, which avoids a false failure on NetBSD 7.1
 4935 	Reported by Assaf Gordon
 4936 
 4937 	tests: tac-2-nonseekable: ensure we don't block indefinitely
 4938 	* tests/misc/tac-2-nonseekable.sh: Add a timeout to both
 4939 	protect and check whether we can close stdin correctly.
 4940 
 4941 	tests: id/zero: avoid false failure due to sed differences
 4942 	* tests/id/zero.sh: sed on OSX will output a \n even
 4943 	if the input doesn't have a \n on the last "line".
 4944 	So ensure we always have a trailing '\n' to avoid the disparity.
 4945 
 4946 2019-03-07  Pádraig Brady  <P@draigBrady.com>
 4947 
 4948 	tests: test-N: fix false positives on some systems
 4949 	Testing by Assaf Gordon on OSX showed the atime wasn't
 4950 	being updated when explicitly set back in time.
 4951 	Also Debian 8.11 / mips64 was seen to not update the
 4952 	mtime when truncating an empty file.
 4953 
 4954 	* tests/misc/test-N.sh: Isolate from different timestamping
 4955 	behaviors of various (file) systems, by correlating
 4956 	the timestamps with stat(1) before using `test -N`.
 4957 
 4958 2019-03-07  Assaf Gordon  <assafgordon@gmail.com>
 4959 
 4960 	doc: replace @hashchar{} with actual hash character
 4961 	Very old makeinfo-4.13 fails with:
 4962 	  ./doc/coreutils.texi:2286: Unknown command `hashchar'.
 4963 	  ./doc/coreutils.texi:2286: Misplaced {.
 4964 	  ./doc/coreutils.texi:2286: Misplaced }.
 4965 
 4966 	Reported Bernhard Voelker in
 4967 	https://lists.gnu.org/r/coreutils/2019-03/msg00016.html .
 4968 
 4969 	* doc/coreutils.texi (basenc invocation): Replace @hashchar{} with
 4970 	actual hash character.  The special syntax is only required
 4971 	when referring to #line directives.
 4972 
 4973 2019-03-06  Pádraig Brady  <P@draigBrady.com>
 4974 
 4975 	build: avoid statx related build failure on AIX
 4976 	* src/stat.c (get_birthtime): Check also for STATX_BTIME define,
 4977 	as a different statx is available on AIX 7.2.
 4978 
 4979 	tests: wc-nbsp.sh: avoid failure on FreeBSD
 4980 	* tests/misc/wc-nbsp.sh: FreeBSD and OS X don't
 4981 	treat non breaking space as printable characters.
 4982 	So use wc -L to determine printability before
 4983 	testing non breaking space functionality.
 4984 
 4985 	build: fix env build where SIGNUM_BOUND is not constant
 4986 	* src/env.c (initialize_signals): A new function to initialize
 4987 	the signals array on the heap, to avoid a build failure on
 4988 	opensolaris, where SIGNUM_BOUND is not a constant.
 4989 
 4990 2019-03-04  Pádraig Brady  <P@draigBrady.com>
 4991 
 4992 	doc: remove older ChangeLog items
 4993 	* Makefile.am: Update the oldest documented version
 4994 	to 8.22 which is now about 5 years old.
 4995 
 4996 	build: revert recent change with distributed man page handling
 4997 	* man/local.mk: commit f114495e added an extra check to ensure
 4998 	a binary was working before using it to generate the man page.
 4999 	However this was not working for the false(1) command,
 5000 	and also one can generally specify that one should not
 5001 	be using generated commands on the current system by passing
 5002 	'cross_compiling=yes' to the configure invocation.
 5003 
 5004 	env: add --list-signal-handling to output non default handling
 5005 	* src/env.c (main): Output blocked or ignored signals
 5006 	before a command is executed.
 5007 	* doc/coreutils.texi (env invocation): Add the option.
 5008 	* tests/misc/env-signal-handler.sh: Add a test case.
 5009 	* NEWS: Mention the new feature.
 5010 
 5011 2019-03-04  Assaf Gordon  <assafgordon@gmail.com>
 5012 
 5013 	env: new options --{default,ignore,block}-signal[=SIG]
 5014 	New options to set signal handlers for the command being executed.
 5015 	--block-signal suggested by Paul Eggert in http://bugs.gnu.org/34488#71
 5016 	--default-signal is useful to overcome the POSIX limitation that shell
 5017 	must not override inherited signal state, e.g. the second 'trap' here is
 5018 	a no-op:
 5019 
 5020 	   trap '' PIPE && sh -c 'trap - PIPE ; seq inf | head -n1'
 5021 
 5022 	Instead use:
 5023 
 5024 	   trap '' PIPE && sh -c 'env --default-signal=PIPE seq inf | head -n1'
 5025 
 5026 	Similarly, the following will prevent CTRL-C from terminating the
 5027 	program:
 5028 
 5029 	   env --ignore-signal=INT seq inf > /dev/null
 5030 
 5031 	See https://bugs.gnu.org/34488#8
 5032 
 5033 	* NEWS: Mention new options.
 5034 	* doc/coreutils.texi (env invocation): Document new options.
 5035 	* man/env.x: Add example of --default-signal=SIG usage.
 5036 	(SEE ALSO): Mention sigprocmask.
 5037 	* src/env.c (signals): New global variable.
 5038 	(longopts): Add new options.
 5039 	(usage): Print new options.
 5040 	(parse_signal_params): Parse comma-separated list of signals, store in
 5041 	signals variable.
 5042 	(reset_signal_handlers): Set each signal to SIG_DFL/SIG_IGN.
 5043 	(parse_block_signal_params): Parse command-line options.
 5044 	(set_signal_proc_mask): Call sigprocmask to block/unblock signals.
 5045 	(main): Process new options.
 5046 	* src/local.mk (src_env_SOURCES): Add operand2sig.c.
 5047 	* tests/misc/env-signal-handler.sh: New test.
 5048 	* tests/local.mk (all_tests): Add new test.
 5049 
 5050 2019-03-04  Martin Bukatovic  <martin.bukatovic@gmail.com>
 5051 
 5052 	stat: print birth time on systems supporting statx
 5053 	* configure.ac: Check for statx(), available on glibc >= 2.28.
 5054 	* src/stat.c (get_birthtime): Call statx() when available.
 5055 	* NEWS: Mention the improvement.
 5056 
 5057 2019-03-04  Pádraig Brady  <P@draigBrady.com>
 5058 
 5059 	df: support different file system encodings when not using tty
 5060 	* src/df.c (replace_problematic_chars): A new wrapper to be
 5061 	more conservative in our replacement when not connected to a tty.
 5062 	* tests/df/problematic-chars.sh: Add a test case.
 5063 
 5064 	maint: tidy up recent additions to NEWS
 5065 	* NEWS: Move date change to improvements and fix nohup grammar.
 5066 
 5067 2019-02-27  Bernhard Voelker  <mail@bernhard-voelker.de>
 5068 
 5069 	doc: further clarify 'yes' alternative in seq invocation
 5070 	* doc/coreutils.texi (node seq invocation): Clarify to use the tool
 5071 	'yes'; otherwise the reader may interpret the sentence as if one
 5072 	could pass 'yes' as the INCREMENT value.
 5073 
 5074 2019-02-26  Pádraig Brady  <P@draigBrady.com>
 5075 
 5076 	wc: treat non breaking space as a word separator
 5077 	* src/wc.c (iswnbspace): A new function to match
 5078 	characters in this class.
 5079 	(isnbspace): Likewise for single byte charsets.
 5080 	(main): Initialize posixly_correct from the environment,
 5081 	to allow disabling honoring NBSP in non C locales.
 5082 	(wc): Call is[w]nbspace() along with is[w]space.
 5083 	* bootstrap.conf: Ensure btowc is available.
 5084 	* tests/misc/wc-nbsp.sh: A new test.
 5085 	* tests/local.mk: Reference the new test.
 5086 	* NEWS: Mention the change in behavior.
 5087 
 5088 2019-02-25  Paul Eggert  <eggert@cs.ucla.edu>
 5089 
 5090 	doc: more date +%F clarifications
 5091 	* doc/coreutils.texi (Date conversion specifiers):
 5092 	Plain %F is actually like %+4Y-%m-%d.
 5093 	(Padding and other flags): Mention POSIX restrictions.
 5094 	* src/date.c (usage): Document recent changes.
 5095 
 5096 	doc: give date +%+F example
 5097 	* doc/coreutils.texi (Padding and other flags):
 5098 	Give example for + conversion specification.
 5099 
 5100 	doc: fix typo in previous patch
 5101 
 5102 	date: ‘+’ conversion specification flag
 5103 	The recent Gnulib update fixed Bug#34608; document and test this.
 5104 	* NEWS: Mention the change.
 5105 	* doc/coreutils.texi (Padding and other flags):
 5106 	Update doc to cover new flag and other POSIX.1-2017 changes.
 5107 	* tests/misc/date.pl (date-century-plus): New test.
 5108 
 5109 	build: update gnulib submodule to latest
 5110 
 5111 2019-02-24  Bernhard Voelker  <mail@bernhard-voelker.de>
 5112 
 5113 	all: detect --help and --version more consistently
 5114 	For select programs which accept only --help and --version options
 5115 	(in addition to non-option arguments), process these options before
 5116 	any other options.
 5117 
 5118 	Before:
 5119 
 5120 	  $ dd bs=1 --help
 5121 	  dd: unrecognized option '--help'
 5122 	  Try 'dd --help' for more information.
 5123 
 5124 	  $ yes me --help
 5125 	  me --help
 5126 	  me --help
 5127 	  ...
 5128 
 5129 	After:
 5130 	Any occurrence of '--help' in the arguments (prior to '--') will
 5131 	show the help screen.
 5132 
 5133 	Discussed in https://bugs.gnu.org/33468 .
 5134 
 5135 	* NEWS: Mention change.
 5136 	* src/cksum.c, src/dd.c, src/hostid.c, src/hostname.c, src/link.c,
 5137 	src/logname.c, src/nohup.c, src/sleep.c, src/tsort.c, src/unlink.c,
 5138 	src/uptime.c, src/users.c, src/whoami.c, src/yes.c (main): Replace
 5139 	parse_long_options() + getopt_long() calls with
 5140 	parse_gnu_standard_options_only(); Remove <getopt.h> inclusion;
 5141 	Remove empty 'struct long_options' variable;
 5142 	* tests/misc/help-version-getopt.sh: Add test.
 5143 	* tests/local.mk (all_tests): Reference it.
 5144 
 5145 2019-02-24  Pádraig Brady  <P@draigBrady.com>
 5146 
 5147 	gnulib: update to the latest
 5148 	update to a version with parse_gnu_standard_options_only()
 5149 
 5150 2019-02-20  Martin Castillo  <castilma@uni-bremen.de>
 5151 
 5152 	doc: fix join examples in texinfo
 5153 	* doc/coreutils.texi (join invocation): Fix various errors.
 5154 	Fixes https://bugs.gnu.org/34583
 5155 	Fixes https://bugs.gnu.org/34584
 5156 
 5157 2019-02-19  Daming Yang  <lion@aosc.io>
 5158 
 5159 	ls: better align month abbreviations containing digits
 5160 	* src/ls.c (abmon_init): Align numeric abbreviations right.
 5161 	* NEWS: Mention the improvement.
 5162 
 5163 2019-02-18  Pádraig Brady  <P@draigBrady.com>
 5164 
 5165 	sort: clarify in --debug; only text comparisons affected
 5166 	* src/sort.c (main): Adjust the debug info regarding locales,
 5167 	to clarify that only textual comparisons are affected.
 5168 	* tests/misc/sort-debug-warn.sh: Adjust accordingly.
 5169 	Fixes https://bugs.gnu.org/34490
 5170 
 5171 2019-02-12  Pádraig Brady  <P@draigBrady.com>
 5172 
 5173 	comm,join: ensure warnings are apparent upon exit
 5174 	* src/comm.c (main): Output a warning right before exit,
 5175 	in case previous errors have scrolled from view.
 5176 	* src/join.c (main): Likewise.
 5177 	* tests/misc/comm.pl: Addjust accordingly.
 5178 	* tests/misc/join.pl: Likewise.
 5179 	Fixes https://bugs.gnu.org/34347
 5180 
 5181 2019-02-12  Filipp Gunbin  <fgunbin@fastmail.fm>
 5182 
 5183 	doc: fix typo referencing RFC 2822
 5184 	* doc/coreutils.texi (date invocation): s/822/2822/.
 5185 	Fixes https://bugs.gnu.org/34438
 5186 
 5187 2019-02-11  Pádraig Brady  <P@draigBrady.com>
 5188 
 5189 	gnulib: update to use new strtold module
 5190 	* gnulib: Update to make the new strtold module available.
 5191 	* bootstrap.conf: strtod is now a dependency of c-strtod,
 5192 	which in turn is a dependency of cl-strtod.  This treats
 5193 	strtold and strtod similarly.
 5194 	* gl/lib/cl-strtod.c: Adjust to assume strtold is available.
 5195 	* tests/misc/sort-float.sh: Likewise.
 5196 	* src/sort.c: Likewise.
 5197 	(nan_compare): Adjust comment to indicate
 5198 	we still have to init padding bits as per
 5199 	https://sourceware.org/bugzilla/show_bug.cgi?id=13246
 5200 
 5201 2019-02-04  Pádraig Brady  <P@draigBrady.com>
 5202 
 5203 	seq: output decimal points consistently with invalid locales
 5204 	* src/seq.c (print_numbers): Only reset the locale if it
 5205 	was successfully set originally.
 5206 	* tests/misc/seq-locale.sh: Add a new test.
 5207 	* tests/local.mk: Reference the new test.
 5208 	* NEWS: Mention the fix.
 5209 
 5210 	build: ensure sys/select.h is included
 5211 	bootstrap.conf: Explicitly depend on select, rather than transitively.
 5212 	* src/tail.c: Unconditionally include select.h as we use select()
 5213 	outside inotify contexts now.
 5214 
 5215 	stat,tail: fix android build and support inotify
 5216 	* src/extract-magic: Treat android like linux,
 5217 	which fixes the build by ensuring the constants are defined.
 5218 	* src/stat.c: Support all constants on android, including
 5219 	the android specific "sdcardfs".
 5220 	* src/tail.c: Fix inclusion of statfs headers to be independent
 5221 	of inotify availability, as fremote() is used on linux even
 5222 	if inotify has been disabled.  Also enable fremote() on android.
 5223 	* NEWS: Mention the improvment.
 5224 	Fixes https://bugs.gnu.org/34239
 5225 
 5226 2019-01-31  Pádraig Brady  <P@draigBrady.com>
 5227 
 5228 	tests: add test for locale decimal processing
 5229 	* tests/misc/sleep.sh: Check locale processing of printf, sleep,
 5230 	and timeout, when the french locale data is available.
 5231 
 5232 2019-01-31  Pádraig Brady  <P@draigBrady.com>
 5233 
 5234 	build: fix recent build failure on systems without strtold
 5235 	Recently introduced in commit v8.30-50-geb73e23
 5236 
 5237 	* gl/lib/cl-strtod.c: Fall back to strtod() on systems
 5238 	without strtold() (like we already do in sort).
 5239 
 5240 2019-01-28  Pádraig Brady  <P@draigBrady.com>
 5241 
 5242 	maint: fix new syntax-check failure from recent change
 5243 	* cfg.mk: Exclude cl-strtold.c wrapper from requiring config.h
 5244 
 5245 2019-01-27  Paul Eggert  <eggert@cs.ucla.edu>
 5246 
 5247 	printf,seq: remove c-strtod dependency
 5248 	* gl/modules/cl-strtold (Files): Add lib/cl-strtod.c, lib/cl-strtod.h.
 5249 	(Depends-on): Remove cl-strtod.
 5250 	(configure.ac): Redquire AC_C_RESTRICT.
 5251 
 5252 	printf,seq: improve long double accuracy
 5253 	This fixes a thinko in the previous patch.
 5254 	* gl/lib/cl-strtod.c (STRTOD): New macro.
 5255 	(CL_STRTOD): Use it.
 5256 
 5257 	printf,seq,sleep,tail,timeout: accept current-locale floats
 5258 	These commands now accept floating-point numbers in the
 5259 	current locale, as well as in the C locale.
 5260 	Compatibility problem reported by Robert Elz.
 5261 	* NEWS: Document this.
 5262 	* bootstrap.conf (gnulib_modules): Add cl-strtod, cl-strtold.
 5263 	Remove c-strtold.
 5264 	* doc/coreutils.texi (Floating point, tail invocation)
 5265 	(printf invocation, timeout invocation, sleep invocation)
 5266 	(seq invocation): Document this.
 5267 	* gl/lib/cl-strtod.c, gl/lib/cl-strtod.h, gl/lib/cl-strtold.c:
 5268 	* gl/modules/cl-strtod, gl/modules/cl-strtold: New files.
 5269 	* src/printf.c, src/seq.c, src/sleep.c, src/tail.c, src/timeout.c:
 5270 	Include cl-strtod.h instead of c-strtod.
 5271 	* src/printf.c (vstrtold):
 5272 	* src/seq.c (scan_arg, print_numbers):
 5273 	* src/sleep.c (main):
 5274 	* src/tail.c (parse_options):
 5275 	* src/timeout.c (parse_duration):
 5276 	Use cl_strtold instead of c_strtold.
 5277 
 5278 2019-01-25  Paul Eggert  <eggert@cs.ucla.edu>
 5279 
 5280 	doc: update Goldberg URL
 5281 	* doc/coreutils.texi (Floating point): Update URL.
 5282 
 5283 	sleep: improve doc
 5284 	Problem reported by Robert Elz.
 5285 	* doc/coreutils.texi (sleep invocation):
 5286 	Say that arguments must be non-negative, which means they cannot
 5287 	be arbitrary floating-point numbers.  Mention POSIX, not
 5288 	“historical implementations” that are no longer of practical
 5289 	interest.  List the extensions to POSIX.
 5290 	* src/sleep.c (usage): Omit needless words, removing dubious
 5291 	commentary about “most implementations” and incorrect commentary
 5292 	about “arbitrary”.  Details about exactly which numbers are
 5293 	allowed can be found in the documentation.
 5294 
 5295 2019-01-20  Pádraig Brady  <P@draigBrady.com>
 5296 
 5297 	tail: fix handling of broken pipes with SIGPIPE ignored
 5298 	* init.cfg (trap_sigpipe_or_skip_): A new function refactored from...
 5299 	* tests/misc/printf-surprise.sh: ...here.
 5300 	* tests/misc/seq-epipe.sh. Likewise.
 5301 	* src/tail.c (die_pipe): Ensure we exit upon sending SIGPIPE.
 5302 	* tests/tail-2/pipe-f.sh: Ensure we exit even if SIGPIPE is ignored.
 5303 	* NEWS: Mention the bug fix.
 5304 
 5305 2019-01-20  Ayappan  <ayappap2@in.ibm.com>
 5306 
 5307 	tail: fix recent ineffective AIX change
 5308 	* src/tail.c: Fix commit v8.30-40-gd5ab4cb which was ineffective.
 5309 	Fixes http://bugs.gnu.org/33946
 5310 
 5311 2019-01-20  Pádraig Brady  <P@draigBrady.com>
 5312 
 5313 	build: ensure VLAs are not used
 5314 	Fail developer builds if VLAs are used,
 5315 	as there are portability concerns to consider with them.
 5316 
 5317 	* configure.ac: Enable -Wvla which is implicit in the full list added.
 5318 	* m4/jm-macros.m4: Define GNULIB_NO_VLA which disables use of
 5319 	VLAs within gnulib code.
 5320 
 5321 2019-01-20  Pádraig Brady  <P@draigBrady.com>
 5322 
 5323 	gnulib: update to the latest
 5324 	* gnulib: Update to a version supporting GNULIB_NO_VLA
 5325 	* bootstrap: Sync with latest
 5326 
 5327 2019-01-16  Bernhard Voelker  <mail@bernhard-voelker.de>
 5328 
 5329 	build: use distributed man pages when running with --help fails
 5330 	When building against an incompatible GLIBC version compared to that
 5331 	on the build host, then running the just-built binary might fail
 5332 	although it is the same platform - thus CROSS_COMPILING is false.
 5333 	As a result, generating the man pages fails.
 5334 
 5335 	* man/local.mk (.x.1): Add a check to verify that running the utility
 5336 	with --help succeeds, otherwise falling back to using 'dummy-man'.
 5337 
 5338 2019-01-13  Pádraig Brady  <P@draigBrady.com>
 5339 
 5340 	ls: with --group-directories-first, also group symlinked dirs
 5341 	* src/ls.c (is_linked_directory): A new function to
 5342 	also consider symlinked directories.
 5343 	(main): Rename check_symlink_color to check_symlink_mode,
 5344 	and enable that with --group-directories-first.
 5345 	(DIRFIRST_CHECK): Adjust to use is_linked_directory,
 5346 	rather than just is_directory.
 5347 	(gobble_file): Simplify to always update f->linkmode
 5348 	if the stat() succeeds.
 5349 	* tests/ls/group-dirs.sh: A new test.
 5350 	* tests/local.mk: Reference the new test.
 5351 	* NEWS: Mention the change in behavior.
 5352 	Suggested by Amin Bandali in
 5353 	https://lists.gnu.org/r/coreutils/2018-12/msg00017.html
 5354 
 5355 	tail: don't exit immediately with filters on AIX
 5356 	* src/tail.c: Fix the check_output_available check on AIX.
 5357 	Note we don't use poll for all systems as the overhead
 5358 	of adding the gnulib poll module wouldn't be worth it
 5359 	just for this single use.
 5360 	* tests/tail-2/pipe-f.sh: Fix the test which always passed
 5361 	due to only the exit code of sleep being checked.
 5362 	* NEWS: Mention the bug fix and rearrange alphabetically.
 5363 	Fixes http://bugs.gnu.org/33946
 5364 
 5365 2019-01-06  Assaf Gordon  <assafgordon@gmail.com>
 5366 
 5367 	basenc: allocate buffers on heap
 5368 	Allocate the encoding/decoding buffers dynamically on the heap instead
 5369 	of using variable-length-array (VLA) on the stack.
 5370 	Discussed in https://lists.gnu.org/r/coreutils/2019-01/msg00004.html .
 5371 
 5372 	* src/basenc.c (do_encode,do_decode): Allocate inbuf/outbuf using
 5373 	xmalloc, and free if using LINT.
 5374 
 5375 2019-01-04  Pádraig Brady  <P@draigBrady.com>
 5376 
 5377 	doc: adjust URLs in help to avoid wrapping
 5378 	* src/system.h: Adjust lines containing URLs so that
 5379 	they don't wrap on 80 column terminals.  One could also
 5380 	use .UR macros, but these aren't universally available.
 5381 	Note the adjustments here need to be compatible with
 5382 	the pattern matching done in help2man.
 5383 	Addresses https://bugs.gnu.org/33914
 5384 
 5385 2019-01-01  Assaf Gordon  <assafgordon@gmail.com>
 5386 
 5387 	maint: update all copyright year number ranges
 5388 	Run "make update-copyright" and then...
 5389 
 5390 	* gnulib: Update to latest with copyright year adjusted.
 5391 	* tests/init.sh: Sync with gnulib to pick up copyright year.
 5392 	* bootstrap: Likewise.
 5393 	* tests/sample-test: Adjust to use the single most recent year.
 5394 
 5395 2019-01-01  Bernhard Voelker  <mail@bernhard-voelker.de>
 5396 
 5397 	maint: mention base32 in the title line of common basenc.c
 5398 	* src/basenc.c: Do the above, and remove a redundant comment.
 5399 
 5400 2019-01-01  Assaf Gordon  <assafgordon@gmail.com>
 5401 
 5402 	base64,base32: fix 'extra operand' error message
 5403 	In the following invocation, 'a' is the input file, and 'b' is the extra
 5404 	operand:
 5405 
 5406 	  $ base64 a b
 5407 
 5408 	Report 'b' in the error message instead of 'a':
 5409 
 5410 	  $ base64 a b
 5411 	  base64: extra operand 'b'
 5412 
 5413 	Discussed in https://lists.gnu.org/r/coreutils/2018-12/msg00008.html .
 5414 
 5415 	* src/basenc.c (main): If there is more than one non-option operand,
 5416 	report the second one (assuming the first is a the input file name).
 5417 	* tests/misc/base64.pl: Add tests.
 5418 	* tests/misc/basenc.pl: Adjust expectedc error message in tests.
 5419 	* NEWS: Mention bugfix.
 5420 
 5421 2018-12-31  Pádraig Brady  <P@draigBrady.com>
 5422 
 5423 	doc: mention that more than 8 colors are supported by ls
 5424 	* src/dircolors.hin: Mention any codes supported by the terminal
 5425 	are allowed.
 5426 	Addresses https://bugs.gnu.org/33915
 5427 
 5428 2018-12-28  Assaf Gordon  <assafgordon@gmail.com>
 5429 
 5430 	basenc: A new program complementary to base64/base32
 5431 	Encodes/decodes data in various common formats:
 5432 	base64,base64url,base32,base32,base16,base2,z85.
 5433 
 5434 	Discussed here:
 5435 	https://lists.gnu.org/r/coreutils/2018-11/msg00014.html
 5436 	https://lists.gnu.org/r/coreutils/2018-12/msg00019.html
 5437 
 5438 	* AUTHORS: Add basenc.
 5439 	* README: Reference the new program.
 5440 	* NEWS: Mention the new program.
 5441 	* build-aux/gen-lists-of-programs.sh: Add basenc.
 5442 	* doc/coreutils.texi: (basenc invocation): Document the new command.
 5443 	* man/.gitignore: Ignore the generated man page.
 5444 	* man/basenc.x: A new template, with few examples.
 5445 	* man/local.mk: Reference the new man page.
 5446 	* scripts/git-hooks/commit-msg: Allow basenc as program prefix.
 5447 	* src/.gitignore: Ignore the new binary.
 5448 	* src/basenc.c:
 5449 	(usage): Mention new options.
 5450 	(main): Handle new options.
 5451 	(isbase*, base*_length, base*_encode, base*_decode_ctx): Implement new
 5452 	encoding/decoding formats.
 5453 	* src/local.mk: Add new program.
 5454 	* tests/local.mk: Add new test.
 5455 	* tests/misc/basenc.pl: New tests.
 5456 	* tests/misc/help-version.sh (basenc_setup): use '--version' for default
 5457 	invocation (basenc errors with no parameters).
 5458 
 5459 2018-12-21  Assaf Gordon  <assafgordon@gmail.com>
 5460 
 5461 	maint: rename base64.c to basenc.c
 5462 	In preparation for adding 'basenc' program.
 5463 	Suggested in https://lists.gnu.org/r/coreutils/2018-11/msg00019.html .
 5464 
 5465 	* src/base64.c: Rename to src/basenc.c.
 5466 	* src/local.mk: Update base*_SOURCES definitions.
 5467 	* po/POTFILEs.in: Rename base64 to basenc.
 5468 
 5469 2018-12-15  Paul Eggert  <eggert@cs.ucla.edu>
 5470 
 5471 	shred,sort,split: add NEWS item
 5472 
 5473 	shred,sort,split: fix ftruncate error reporting
 5474 	Problem reported for split by Scott Worley (Bug#33761):
 5475 	* src/shred.c (do_wipefd):
 5476 	Also report an error if ftruncate fails	on a shared memory object.
 5477 	* src/sort.c (get_outstatus): New function.
 5478 	(stream_open, avoid_trashing_input): Use it.
 5479 	* src/sort.c (stream_open):
 5480 	* src/split.c (create):
 5481 	If ftruncate fails, do not report an error
 5482 	unless it is a regular file or a shared memory object.
 5483 
 5484 2018-11-07  Bernhard Voelker  <mail@bernhard-voelker.de>
 5485 
 5486 	sync: add NEWS and test for the fix in the previous commit
 5487 	* NEWS (Bug fixes): Mention the fix in commit 94d364f157f0.
 5488 	While at it, remove duplicate "Changes in behavior" heading.
 5489 	* tests/misc/sync.sh: Add a test with a write-only file for the fix.
 5490 
 5491 2018-11-06  Paul Eggert  <eggert@cs.ucla.edu>
 5492 
 5493 	sync: fix open fallback bug
 5494 	Problem caught by Coverity Analysis
 5495 	and reported by Kamil Dudka (Bug#33287).
 5496 	* src/sync.c (sync_arg): Fix typo in fallback code.
 5497 
 5498 2018-10-28  Paul Eggert  <eggert@cs.ucla.edu>
 5499 
 5500 	ln: use linkat and symlinkat
 5501 	Open a target directory and use its file descriptor in linkat,
 5502 	symlinkat, etc. syscalls, instead of constructing long file names
 5503 	by concatenating the target directory name to a basename.
 5504 	This avoids O(N²) behavior with ‘ln F1 F2 ... Fn DIR’ when DIR is
 5505 	a long file name with many slashes.  It also avoids some races if
 5506 	DIR is renamed while ln is running.
 5507 	* bootstrap.conf (gnulib_modules): Add openat-safer.
 5508 	* src/ln.c: Include fcntl-safer.h.
 5509 	(O_PATHSEARCH): New constant.
 5510 	(errno_nonexisting, target_directory_operand): Remove; no longer used.
 5511 	(atomic_link, do_link): New arg DESTDIR_FD.  All uses changed.
 5512 	(do_link): New arg DEST_BASE.  All uses changed.
 5513 	(main): Open target directory and use its file descriptor
 5514 	as DESTDIR_FD.
 5515 
 5516 	build: update gnulib submodule to latest
 5517 	* src/copy.c (copy_internal):
 5518 	* src/cp.c (do_copy):
 5519 	* src/ln.c (do_link):
 5520 	Adjust to Gnulib API change.
 5521 
 5522 2018-10-27  Bernhard Voelker  <mail@bernhard-voelker.de>
 5523 
 5524 	tests: provide 100% coverage for echo
 5525 	*  src/echo.c (usage): Assert that STATUS is always EXIT_SUCCESS.
 5526 	* tests/misc/echo.sh: Add further tests for all hex and escape and
 5527 	escape characters.
 5528 
 5529 	To get coverage statistics, run:
 5530 	  make coverage -j 4 TESTS=tests/misc/echo.sh SUBDIRS=.
 5531 	  xdg-open doc/coverage/src/echo.c.gcov.frameset.html
 5532 
 5533 2018-10-27  Pádraig Brady  <P@draigBrady.com>
 5534 
 5535 	echo: always process escapes when POSIXLY_CORRECT is set
 5536 	* src/echo.c (main): Always enable backslash processing if
 5537 	POSIXLY_CORRECT is set.
 5538 	* tests/misc/echo.sh: Add (the first) test for the echo command.
 5539 	* tests/local.mk: Reference the new test.
 5540 	* tests/misc/printf.sh: Update a stale comment.
 5541 	* doc/coreutils.texi (echo invocation). Mention that POSIXLY_CORRECT
 5542 	now always enables backslash processing.
 5543 	* NEWS: Mention the change in behavior.
 5544 	Fixes https://bugs.gnu.org/32703
 5545 	Issue identified by Eric Blake.
 5546 
 5547 2018-10-26  Bernhard Voelker  <mail@bernhard-voelker.de>
 5548 
 5549 	test: add -N unary operator
 5550 	Bash knows 'test -N FILE'.  Add it to GNU 'test' as well.
 5551 
 5552 	* src/test.c (unary_operator): Add a case for 'N'.
 5553 	(usage): Document it.
 5554 	* doc/coreutils.texi (node File characteristic tests): Likewise.
 5555 	* NEWS (New features): Likewise.
 5556 	* tests/misc/test-N.sh: Add a test.
 5557 	* tests/local.mk (all_tests): Reference it.
 5558 
 5559 2018-10-26  Bernhard Voelker  <mail@bernhard-voelker.de>
 5560 
 5561 	test: simplify redundant code
 5562 	Remove the function 'test_unop', as the cases therein are redundant to
 5563 	those handled by 'unary_operator'; exception: the cases 'o' and 'N':
 5564 	they had been present in test_unop and handling the commands
 5565 	  test -N STR
 5566 	  test -o STR
 5567 	and
 5568 	  test x = x -a -N STR
 5569 	  test x = x -a -o STR
 5570 	which ran into an error later on anyway.
 5571 	With this commit, the error diagnostic will change from ...
 5572 	  $ /usr/bin/test -N STR
 5573 	  /usr/bin/test: extra argument '-N'
 5574 	  $ /usr/bin/test -o STR
 5575 	  /usr/bin/test: extra argument '-o'
 5576 	... to ...
 5577 	  $ src/test -N STR
 5578 	  src/test: '-N': unary operator expected
 5579 	  $ src/test -o STR
 5580 	  src/test: '-o': unary operator expected
 5581 
 5582 	* src/test.c (test_unop): Remove.
 5583 	(unary_operator): Fail with test_syntax_error in the default case.
 5584 	(term): Directly call unary_operator.
 5585 	(two_arguments): Likewise.
 5586 	* tests/misc/test-diag.pl: Adjust error diagnostic.
 5587 
 5588 2018-10-26  Bernhard Voelker  <mail@bernhard-voelker.de>
 5589 
 5590 	test: remove support for the ambigous -a unary operator
 5591 	* src/test.c (unary_operator): Remove case 'a'.
 5592 	(test_unop): Likewise.
 5593 	* NEWS (Changes in behavior): Document the change.
 5594 
 5595 	Discussed at https://bugs.gnu.org/33097
 5596 
 5597 2018-10-21  Bernhard Voelker  <mail@bernhard-voelker.de>
 5598 
 5599 	test: avoid FP in chroot-credentials.sh for different group list order
 5600 	On my openSUSE:Tumbleweed system, I get a false positive test failure
 5601 	in the above 'check-root' test because the group lists inside and
 5602 	outside the chroot have a different order:
 5603 
 5604 	  ++ chroot --userspec=berny / id -G
 5605 	  ++ id -G berny
 5606 	  + test '100 454 457 480 492' = '100 480 492 457 454'
 5607 	  + fail=1
 5608 
 5609 	* tests/misc/chroot-credentials.sh (num_sort): Add function to sort
 5610 	group lists, and use it in the test cases which test multiple groups.
 5611 
 5612 2018-10-20  Paul Eggert  <eggert@cs.ucla.edu>
 5613 
 5614 	doc: tidy up setuid commentary
 5615 	* doc/perm.texi (Mode Structure): Improve wording.
 5616 	(Numeric Modes): Don’t say “on execution” (Bug#9594).
 5617 
 5618 2018-10-19  Paul Eggert  <eggert@cs.ucla.edu>
 5619 
 5620 	ln: avoid directory hard-link races
 5621 	Previously, 'ln A B' did 'stat("B"), lstat("A"), link("A","B")'
 5622 	where the stat and lstat were necessary to avoid hard-linking
 5623 	directories on systems that can hard-link directories.
 5624 	Now, in situations that prohibit hard links to directories,
 5625 	'ln A B' merely does 'link("A","B")'.  The new behavior
 5626 	avoids some races and should be more efficient.
 5627 	This patch was inspired by Bug#10020, which was about 'ln'.
 5628 	* bootstrap.conf (gnulib_modules): Add unlinkdir.
 5629 	* src/force-link.c (force_linkat, force_symlinkat): New arg for
 5630 	error number of previous try.  Return error number, 0, or -1 if
 5631 	error, success, or success after removal.  All callers changed.
 5632 	* src/ln.c: Include priv-set.h, unlinkdir.h.
 5633 	(beware_hard_dir_link): New static var.
 5634 	(errnoize, atomic_link): New functions.
 5635 	(target_directory_operand): Use errnoize for simplicity.
 5636 	(do_link): New arg for error number of previous try.  All callers
 5637 	changed.  Do each link atomically if possible.
 5638 	(main): Do -r check earlier.  Remove linkdir privileges so we can
 5639 	use a single linkat/symlinkat instead of a racy substitute for the
 5640 	common case of 'ln A B' and 'ln -s A B'.  Set beware_hard_dir_link
 5641 	to disable this optimization.
 5642 
 5643 	cp: 'cp -il A B' no longer fails if user OKs it
 5644 	* NEWS: Mention the change.
 5645 	* src/copy.c (copy_internal): Replace the link if the
 5646 	user has okayed it.
 5647 
 5648 	build: update gnulib submodule to latest
 5649 	* gl/modules/tempname.diff: Update to match Gnulib.
 5650 
 5651 2018-10-17  Paul Eggert  <eggert@cs.ucla.edu>
 5652 
 5653 	doc: add chmod examples
 5654 	Discussed in https://bugs.gnu.org/11043 .
 5655 
 5656 	* doc/coreutils.texi (chmod invocation): Add examples.
 5657 
 5658 2018-10-02  Bjarni Ingi Gislason  <bjarniig@rhi.hi.is>
 5659 
 5660 	doc: fix minor mistakes in "env.x"
 5661 	* man/env.x (OPTIONS): Fix a spelling mistake.  Protect a period at the
 5662 	beginning of a line.
 5663 
 5664 2018-09-30  Achilles Gaikwad  <agaikwad@redhat.com>
 5665 
 5666 	id: support multiple specified users
 5667 	  $ id root nobody
 5668 	  uid=0(root) gid=0(root) groups=0(root)
 5669 	  uid=99(nobody) gid=99(nobody) groups=99(nobody)
 5670 
 5671 	* src/id.c (main): Make variables opt_zero, just_group_list,
 5672 	just_group, use_real, just_user global to be used in a new
 5673 	function.
 5674 	(print_stuff): New function that will print user and group
 5675 	information for the specified USER.
 5676 	When using -G option delimit each record with two NULs.
 5677 	Restructure the code in the file to have global variables
 5678 	followed by functions.
 5679 	* tests/id/zero.sh: Add test cases to check the usage
 5680 	of -z option with multiple users.
 5681 	* tests/id/uid.sh: Add a test case to ensure all users
 5682 	are queried in the presence of errors.
 5683 	* doc/coreutils.texi: Document the interface changes.
 5684 	* NEWS: Mention the new feature.
 5685 
 5686 2018-09-25  Stéphane Campinas  <stephane.campinas@gmail.com>
 5687 
 5688 	doc: csplit: clarify handling of regexps with negative offsets
 5689 	* doc/coreutils.texi (csplit invocation): Detail the behavior
 5690 	with regexp patterns and negative offsets, which differs from
 5691 	line number patterns, to avoid looping on the input.  For example:
 5692 	  $ seq 50 | csplit -s - /15/-5 /12/
 5693 	  csplit: ‘/12/’: match not found
 5694 
 5695 2018-09-24  Pádraig Brady  <P@draigBrady.com>
 5696 
 5697 	doc: csplit: clarify input may not be reproducible from output
 5698 	* doc/coreutils.texi (csplit invocation): Clarify that
 5699 	portions of the input may be skipped and thus the input
 5700 	may not be reproducible by just concatenating the output files.
 5701 	Fixes https://bugs.gnu.org/32317
 5702 
 5703 2018-07-27  Paul Eggert  <eggert@cs.ucla.edu>
 5704 
 5705 	df: omit redundant comparison
 5706 	Trivial inefficiency reported by Bruno Haible in:
 5707 	http://lists.gnu.org/r/bug-gnulib/2018-07/msg00109.html
 5708 	* src/df.c (hide_problematic_chars): Omit redundant test.
 5709 
 5710 	df: tune slightly
 5711 	* src/df.c (get_header, get_dev):
 5712 	Avoid calling mbswidth twice when once will do.
 5713 
 5714 	df: avoid multibyte character corruption on macOS
 5715 	This improves on the earlier fix for the problem reported by
 5716 	Chih-Hsuan Yen (Bug#32236), by also looking for other control
 5717 	characters and for encoding errors.
 5718 	* src/df.c: Include wchar.h and wctype.h instead of c-ctype.h.
 5719 	(hide_problematic_chars): Process the string as multibyte.
 5720 	Use iswcntrl, not c_iscntrl.
 5721 
 5722 2018-07-26  Chih-Hsuan Yen  <yan12125@gmail.com>
 5723 
 5724 	df: avoid multibyte character corruption on macOS
 5725 	* src/df.c (hide_problematic_chars): Use c_iscntrl() as
 5726 	passing 8 bit characters to iscntrl() is not supported on macOS.
 5727 	* NEWS: Mention the bug fix.
 5728 	Fixes https://bugs.gnu.org/32236
 5729 
 5730 2018-07-22  Wodry  <coreutils3422@runbox.com>  (tiny change)
 5731 
 5732 	doc: improve documentation of binary prefixes
 5733 	* doc/coreutils.texi (Common options):
 5734 	* src/dd.c, src/head.c, src/od.c, src/stdbuf.c, src/tail.c (usage):
 5735 	* src/system.h (emit_size_note):
 5736 	Mention binary prefixes (Bug#32242).
 5737 
 5738 2018-07-21  Pádraig Brady  <P@draigBrady.com>
 5739 
 5740 	tests: avoid false failure on sparc 32 bit
 5741 	* tests/rm/rm-readdir-fail.sh: Skip the test entirely on 32 bit,
 5742 	so we avoid conflating the 32bit and 64 bit types, as that
 5743 	triggers alignment issues (SIGBUS) on Gentoo sparc.
 5744 	Fixes https://bugs.gnu.org/29886
 5745 
 5746 2018-07-05  Paul Eggert  <eggert@cs.ucla.edu>
 5747 
 5748 	build: update gnulib submodule to latest
 5749 	* bootstrap.conf, src/copy.c, src/mv.c, src/shred.c:
 5750 	Adjust to renaming of renameat2 to renameatu.
 5751 
 5752 2018-07-05  Pádraig Brady  <P@draigBrady.com>
 5753 
 5754 	tests: fix skipping in some tests
 5755 	* tests/cp/cp-a-selinux.sh: Use 'skip_' rather than the probably
 5756 	undefined 'skip'.
 5757 	* tests/du/2g.sh: Likewise.
 5758 	* tests/install/install-Z-selinux.sh: Likewise.
 5759 	* tests/misc/chcon.sh: Likewise.
 5760 	* tests/misc/selinux.sh: Likewise.
 5761 	* tests/mkdir/restorecon.sh: Likewise.
 5762 	* cfg.mk (sc_prohibit-skip): A new syntax check to catch the issue.
 5763 
 5764 2018-07-02  Jim Meyering  <meyering@fb.com>
 5765 
 5766 	maint: init.cfg: fix a minor test-related quoting bug
 5767 	* init.cfg (require_membership_in_two_groups_): This fixes a bug
 5768 	introduced by me in v8.15-8-gdd0e4c562.  Luckily, the consequence
 5769 	of low-probability triggering the bug was the mere added backslash
 5770 	in the diagnostic: "...but running id -G\ either...".  It would be
 5771 	triggered in a test failure for one who is a member of only one or
 5772 	fewer groups.
 5773 
 5774 2018-07-02  Pádraig Brady  <P@draigBrady.com>
 5775 
 5776 	maint: post-release administrivia
 5777 	* NEWS: Add header line for next release.
 5778 	* .prev-version: Record previous version.
 5779 	* cfg.mk (old_NEWS_hash): Auto-update.
 5780 
 5781 	version 8.30
 5782 	* NEWS: Record release date.
 5783 
 5784 2018-07-01  Pádraig Brady  <P@draigBrady.com>
 5785 
 5786 	tests: standardize perl usage in tests
 5787 	* tests/cp/fiemap-FMR.sh: Ensure perl is parameterized to $PERL,
 5788 	and ensure require_perl_ is used, so tests are skipped appropriately.
 5789 	* tests/cp/preserve-gid.sh: Likewise.
 5790 	* tests/du/long-from-unreadable.sh: Likewise.
 5791 	* tests/misc/env-S-script.sh: Likewise.
 5792 	* tests/misc/sort-benchmark-random.sh: Likewise.
 5793 	* tests/rm/deep-2.sh: Likewise.
 5794 
 5795 	maint: copy: avoid new static analyzer warnings
 5796 	* src/copy.c (copy_internal): Use the lint protected src_mode,
 5797 	rather than accessing the src_sb again.  Also unconditionally
 5798 	populate src_sb when !x->move_mode and in lint mode.
 5799 	Reported by Kamil Dudka with coverity and clang analyzer.
 5800 
 5801 	maint: fix recent stale comments and spelling mistakes
 5802 	* doc/coreutils.texi: s/seperator/separator/.
 5803 	* tests/misc/env-S.pl: Likewise.
 5804 	* src/env.c: Fix stale comment.
 5805 
 5806 2018-06-27  Pádraig Brady  <P@draigBrady.com>
 5807 
 5808 	maint: disable overly agressive sc_gitignore_redundant
 5809 	* cfg.mk (sc_gitignore_redundant): Disabled for now as too
 5810 	aggressive flagging entries like /lib/arg-nonnull.h in
 5811 	a newly checked out repo.
 5812 
 5813 	env: adjust diagnostics provided for shebang usage
 5814 	* src/env.c (main): Don't process '-' specially since
 5815 	that causes an issue on the openbsd getopt implementation
 5816 	where a lone '-' is now processed as an option, and anyway
 5817 	it doesn't particuarly help diagnosing common shebang
 5818 	usage issues.  Also don't restrict the extra diagnostics
 5819 	for shebang usage to the case with 3 arguments, as
 5820 	further arguments can be passed to a script.
 5821 	* tests/misc/env-S.pl: Adjust accordingly.
 5822 
 5823 2018-06-27  Assaf Gordon  <assafgordon@gmail.com>
 5824 
 5825 	tests: accept getopt errors without single-quotes
 5826 	On OpenBSD 6.2, invalid single options produce error messages
 5827 	without single quotes:
 5828 
 5829 	    $ ./src/chroot -/
 5830 	    chroot: unknown option -- /
 5831 
 5832 	As opposed to other systems:
 5833 
 5834 	    ./src/chroot: invalid option -- '/'
 5835 
 5836 	Modify the grep search to accept this.
 5837 
 5838 	* tests/misc/usage_vs_getopt.sh (checkprg): Change the grep pattern
 5839 	to accomodate no-single-quotes cases.
 5840 
 5841 2018-06-27  Pádraig Brady  <P@draigBrady.com>
 5842 
 5843 	tests: fix false failures when perl not available
 5844 	* tests/local.mk: Reference the stub that skips perl tests,
 5845 	with the correct path.
 5846 
 5847 	tests: fix false failure with limited shebang lines
 5848 	* tests/misc/env-S-script.sh: Provide a wrapper to
 5849 	emulate shebang processing, but without length limits,
 5850 	which are 127 on Linux for example.
 5851 
 5852 	maint: update gnulib to latest
 5853 	* gnulib: Update to latest, which incorporates
 5854 	a thread linking fix from Bruno Haible,
 5855 	which was seen on newer Ubuntu systems.
 5856 
 5857 2018-06-27  Assaf Gordon  <assafgordon@gmail.com>
 5858 
 5859 	tests: remove unused Data::Dumper perl module
 5860 	The module is not needed anymore (was used during development).
 5861 	Despite being a Perl core module, platforms like CentOS don't install
 5862 	it by default.  Reported by Bruno Haible at
 5863 	https://lists.gnu.org/r/coreutils/2018-06/msg00093.html.
 5864 
 5865 	* tests/misc/csplit-suppress-matched.pl: Remove Data::Dumper.
 5866 
 5867 2018-06-25  Carlos Santos  <casantos@datacom.com.br>
 5868 
 5869 	maint: fix -Werror=suggest-attribute=malloc in expr.c
 5870 	Add attribute 'malloc' to mpz_get_str to prevent
 5871 	the following on GCC 8.1.1
 5872 
 5873 	  src/expr.c:117:1: error: function might be candidate for attribute
 5874 	    'malloc' if it is known to return normally
 5875 	      [-Werror=suggest-attribute=malloc]
 5876 	   mpz_get_str (char const *str, int base, mpz_t z)
 5877 	   ^~~~~~~~~~~
 5878 	  cc1: all warnings being treated as errors
 5879 
 5880 	* src/expr.c (mpz_get_str): Add _GL_ATTRIBUTE_MALLOC.
 5881 
 5882 2018-06-25  Pádraig Brady  <P@draigBrady.com>
 5883 
 5884 	maint: update gnulib to latest
 5885 	* gnulib: Update to latest.
 5886 	* .gitignore: Add new entries.
 5887 	* bootstrap.conf: Enable wchar-single, which will enable more
 5888 	efficient replacements of wcwidth and mbrtowc, as we indicate
 5889 	that the charset will no change between invocations of these functions.
 5890 
 5891 	maint: sync longlong.h from gmp repo
 5892 	* src/longlong.h: Sync changes.  No functional change.
 5893 
 5894 	maint: avoid false positive in src/fs-magic-compare
 5895 	* src/local.mk (fs_normalize_perl_subst): `make src/fs-magic-compare`
 5896 	was reporting incorrectly that AFS was not being handled.
 5897 	Add a mapping to our KAFS identifier.
 5898 	* .gitignore: Add intermediate files from `make src/fs-magic-compare`
 5899 
 5900 2018-06-23  Bernhard Voelker  <mail@bernhard-voelker.de>
 5901 
 5902 	tests: initialize fail=0 to avoid "unary operator expected" errors
 5903 	With an uninitialized variable 'fail', the unquoted use like
 5904 	  test $fail = 1
 5905 	lead to the shell error
 5906 	  "unary operator expected".
 5907 
 5908 	The uninitialized 'fail' variable was a side effect of
 5909 	  https://git.sv.gnu.org/cgit/gnulib.git/commit/?id=e91c0d4f9
 5910 	which was pulled into coreutils-v8.26 with
 5911 	  https://git.sv.gnu.org/cgit/coreutils.git/commit/?id=ef9650170
 5912 	Coreutils test code relied and relies on 'fail' to be initialized,
 5913 	so initialize that variable here.
 5914 
 5915 	* tests/local.mk (TESTS_ENVIRONMENT): Initialize fail=0.
 5916 
 5917 2018-06-21  Jim Meyering  <meyering@fb.com>
 5918 
 5919 	maint: do not depend directly on gnulib's now-unused ftello module
 5920 	* bootstrap.conf (gnulib_modules): Remove ftello, since it is
 5921 	no longer used directly, since v8.9-11-geab97b307.
 5922 
 5923 2018-06-21  Pádraig Brady  <P@draigBrady.com>
 5924 
 5925 	tests: provide an option to relax the need for gdb
 5926 	* tests/rm/r-root.sh: gdb provides extra protection,
 5927 	but is not strictly necessary.  So provide an option
 5928 	for maintainers to relax the requirements.
 5929 
 5930 	rm: add --preserve-root=all to protect mounts
 5931 	* src/remove.c (rm_fts): With the --preserve-root=all extension,
 5932 	reject command line arguments that are mount points.
 5933 	* src/remove.h (rm_options): Add preserve_all_root to store config.
 5934 	* src/mv.c (rm_option_init): Init preserve_all_root to false.
 5935 	* src/rm.c (main): Init preserve_all_root as per option.
 5936 	(usage): Describe the new option.
 5937 	* src/remove.c (rm_fts): Lookup the parent device id,
 5938 	and reject the cli argument if a separate file system.
 5939 	* tests/rm/one-file-system.sh: Add a test case.
 5940 	* NEWS: Mention the new feature.
 5941 
 5942 2018-06-21  Adam Borowski  <kilobyte@angband.pl>
 5943 
 5944 	cp: add --reflink=never to force standard copy mode
 5945 	This mode is currently the default, but most if not all users of
 5946 	reflink-capable filesystems want --reflink=auto, which is often
 5947 	encapsulated into an alias.  Adding --reflink=never allows overriding
 5948 	such an alias.
 5949 
 5950 	* doc/coreutils.texi (cp invocation): Describe the new option.
 5951 	* src/cp.c: Support --reflink=never.
 5952 	* tests/cp/reflink-auto.sh: Add a test case.
 5953 	* NEWS: Mention the new feature.
 5954 
 5955 2018-06-21  Assaf Gordon  <assafgordon@gmail.com>
 5956 
 5957 	env: add -S/--split-string option
 5958 	Adopted from FreeBSD's env(1), useful for specifing multiple
 5959 	parameters on a shebang (#!) script line, e.g:
 5960 
 5961 	   #!/usr/bin/env -S perl -w -T
 5962 
 5963 	Discussed in https://lists.gnu.org/r/coreutils/2018-04/msg00011.html
 5964 
 5965 	* src/env.c (valid_escape_sequence,escape_char,scan_varname,
 5966 	  extract_varname,validate_split_str,build_argv,
 5967 	  parse_split_string): New functions.
 5968 	  (main): Process new option and call parse_split_string.
 5969 	  (usage): Mention new option.
 5970 	* tests/misc/env-S.pl: Test new option from the command line.
 5971 	* tests/misc/env-S-script.sh: Test new option from shebang scripts.
 5972 	* tests/local.mk (all_tests): Add new tests.
 5973 	* man/env.x (OPTIONS): Show a brief example of -S usage and point to
 5974 	the full documentation for more information.
 5975 	* doc/coreutils.texi (env invocation): Detail usage of -S/--split-string
 5976 	option.
 5977 	* NEWS: Mention new option.
 5978 
 5979 2018-06-21  Assaf Gordon  <assafgordon@gmail.com>
 5980 
 5981 	env: add -v/--debug option
 5982 	Prints verbose information about each step:
 5983 
 5984 	  $ env -v -uFOO  -C /tmp BAR=BAZ date -u
 5985 	  env: unset:    FOO
 5986 	  env: setenv:   BAR=BAZ
 5987 	  env: chdir:    '/tmp'
 5988 	  env: executing: date
 5989 	  env:    arg[0]= ‘date’
 5990 	  env:    arg[1]= ‘-u’
 5991 	  Sun Apr 22 08:52:30 UTC 2018
 5992 
 5993 	Inspired by FreeBSD's env(1).
 5994 
 5995 	* src/env.c (usage): Mention new option.
 5996 	  (main): Print debug information if requested.
 5997 	* NEWS: Mention new option.
 5998 	* doc/coreutils.texi (env invocation): Mention -v/--debug.
 5999 
 6000 2018-06-21  Assaf Gordon  <assafgordon@gmail.com>
 6001 
 6002 	maint: refactor unsetenv call in env
 6003 	Keep unset envvars (-uFOO) in an array for later deletion,
 6004 	instead of reiterating over argv.  Done in preparation for
 6005 	'-S string' feature. Related to '-u' discussion in
 6006 	https://lists.gnu.org/r/coreutils/2018-04/msg00013.html
 6007 
 6008 	* src/env.c (append_unset_var,unset_envvars): New functions.
 6009 	 (main): Use new functions.
 6010 
 6011 2018-06-21  Kaxandra Labat  <kaxandra.labat@gmail.com>
 6012 
 6013 	ls: ignore case when coloring file extensions
 6014 	* src/ls.c (get_color_indicator): s/STREQ_LEN/c_strncasecmp/
 6015 	* src/dircolors.hin: Remove a now redundant entry.
 6016 	* tests/ls/color-ext.sh: Add a new test.
 6017 	* tests/local.mk: Reference the new test.
 6018 	* NEWS: Mention the change in behavior.
 6019 
 6020 2018-06-21  Pádraig Brady  <P@draigBrady.com>
 6021 
 6022 	md5sum,b2sum,sha*sum: support -z,--zero option
 6023 	* doc/coreutils.texi (md5sum invocation): Describe the new option,
 6024 	and how it's not supported by --check, and how it disables escaping.
 6025 	* src/md5sum.c (delim): A new global to parmeterize the out delimiter.
 6026 	(main): Don't enable file name escaping with -z, and output '\0'.
 6027 	* tests/misc/md5sum-newline.pl: Add a test case.
 6028 	* NEWS: Mention the new feature.
 6029 
 6030 2018-06-21  Pádraig Brady  <P@draigBrady.com>
 6031 
 6032 	wc: optimize processing of ASCII in multi byte locales
 6033 	===== Benchmark setup (on GNU/Linux) ====
 6034 	$ yes áááááááááááááááááááá | head -n100000 > mbc.txt
 6035 	$ yes 12345678901234567890 | head -n100000 > num.txt
 6036 
 6037 	===== Before ====
 6038 	$ time src/wc -Lm < mbc.txt
 6039 	real    0m0.186s
 6040 	$ time src/wc -m < mbc.txt
 6041 	real    0m0.186s
 6042 	$ time src/wc -Lm < num.txt
 6043 	real    0m0.055s
 6044 	$ time src/wc -m < num.txt
 6045 	real    0m0.056s
 6046 
 6047 	==== After ====
 6048 	$ time src/wc -Lm < mbc.txt
 6049 	real    0m0.196s
 6050 	$ time src/wc -m < mbc.txt
 6051 	real    0m0.173s
 6052 	$ time src/wc -Lm < num.txt
 6053 	real    0m0.031s
 6054 	$ time src/wc -m < num.txt
 6055 	real    0m0.028s
 6056 
 6057 	* src/wc.c (wc): Only call wide variant functions like
 6058 	iswprint() and wcwidth() for non is_basic() characters.
 6059 	I.E. non ISO C "basic character set" characters.
 6060 	This is especially significant on OSX where wcwidth()
 6061 	is very expensive (about 10x in tests).
 6062 	* NEWS: Mention the improvement.
 6063 	Suggested by Eric Fischer.
 6064 
 6065 2018-06-14  Paul Eggert  <eggert@cs.ucla.edu>
 6066 
 6067 	doc: port test.1 to doclifter
 6068 	* man/test.x: Use \& instead of quoting (Bug#31803).
 6069 
 6070 	doc: port man pages to doclifter
 6071 	Problem reported by Eric S. Raymond (Bug#31803).
 6072 	* man/test.x: Add SYNOPSIS section, since help2man
 6073 	understandably gets confused by the square brackets.
 6074 	* src/ln.c (usage): Omit parenthetical "(Nth form)" in usage,
 6075 	as it confuses doclifter.
 6076 
 6077 2018-06-04  Pádraig Brady  <P@draigBrady.com>
 6078 
 6079 	cp: preserve existing permissions with --no-preserve=mode
 6080 	This issue was introduced in commit v8.19-145-g24ebca6
 6081 
 6082 	* src/copy.c (copy_internal): With --no-preserve=mode,
 6083 	only reset permissions for newly created files.
 6084 	(copy_reg): Likewise.
 6085 	* NEWS: Mention the fix.
 6086 	* tests/cp/preserve-mode.sh: Add a test case.
 6087 	Fixes https://bugs.gnu.org/31675
 6088 
 6089 2018-05-29  Pádraig Brady  <P@draigBrady.com>
 6090 
 6091 	tests: fix periodic false failure in month alignment
 6092 	* tests/ls/abmon-align.sh: Base relative month adjustment
 6093 	from the middle of the month, to avoid failures due
 6094 	to months being repeated.
 6095 	Fixes https://bugs.gnu.org/31644
 6096 
 6097 2018-05-26  Bjarni Ingi Gislason  <bjarniig@rhi.hi.is>
 6098 
 6099 	doc: formatting fixes in "du.x" and "rm.x"
 6100 	Avoid warnings from: groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
 6101 
 6102 	* man/du.x: Change ".BR" to ".B" if there is only one argument.
 6103 	Protect an end-of-sentence indicator (.?!) with '\&'
 6104 	if it does not mean an end of a sentence.
 6105 	Change '--' to '\-\-' if it indicates an option.
 6106 	* man/rm.x: Change '\=' to '='.
 6107 
 6108 2018-05-18  Pádraig Brady  <P@draigBrady.com>
 6109 
 6110 	cp: with --force; replace self referential symlinks
 6111 	* src/copy.c (copy_internal): Don't fail immediately upon
 6112 	getting ELOOP when running stat() on the destination,
 6113 	rather proceeding if -f specified, allowing the link
 6114 	to be removed.  If the loop is not in the final component
 6115 	of the destination path, we still fail but at the
 6116 	subsequent unlink() stage.
 6117 	* doc/coreutils.texi (cp invocation): Adjust wording to say
 6118 	that --force doesn't work with dangling links, rather than
 6119 	all links that can't be traversed.
 6120 	* tests/cp/thru-dangling.sh: Add a test case.
 6121 	* NEWS: Mention the change in behavior.
 6122 	Discussed in https://bugs.gnu.org/31335
 6123 
 6124 2018-05-15  Pádraig Brady  <P@draigBrady.com>
 6125 
 6126 	cp: fix symlink checks when overwriting files
 6127 	Ensure this _does_ recreate the symlink
 6128 	  Given "path1" and "path2" are on different devices.
 6129 	  $ touch "path1/file"
 6130 	  $ cd path2/; ln -s path1/file
 6131 	  $ cp -dsf path1/file .
 6132 
 6133 	Ensure this does _not_ overwrite file
 6134 	  $ touch file
 6135 	  $ ln -s file l1
 6136 	  $ cp -sf l1 file
 6137 
 6138 	* src/copy.c (same_file_ok): Remove device ids from consideration,
 6139 	instead deferring to future EXDEV with --link or allowing
 6140 	the first case above to work.
 6141 	Also ensure that we do not exist this function too early,
 6142 	when the destination file is not a symlink, which protects
 6143 	against the second case.
 6144 	* tests/cp/cross-dev-symlink.sh: Add a test for the first case.
 6145 	* tests/cp/same-file.sh: Add a test for the second case above.
 6146 	* NEWS: Mention the bug fixes.
 6147 	* THANKS.in: Mention the reporters who also analyzed the code.
 6148 	Fixes https://bugs.gnu.org/31364
 6149 
 6150 2018-05-15  Pádraig Brady  <P@draigBrady.com>
 6151 
 6152 	cp: ensure --remove-destination doesn't traverse symlinks
 6153 	* src/cp.c (target_directory_operand): Allow through inaccessible
 6154 	arguments with -f or --remove.
 6155 	* doc/coreutils.texi (cp invocation): Clarify that -f doesn't directly
 6156 	impact the removal of non-traversable symlinks.
 6157 	* tests/cp/dir-rm-dest.sh: Test the new behavior.
 6158 	* tests/cp/thru-dangling.sh: Enforce -f behavior wrt symlinks.
 6159 	* NEWS: Mention the bug fix.
 6160 	Fixes https://bugs.gnu.org/31335
 6161 
 6162 	maint: make chmod/chgrp/chown leak free under valgrind
 6163 	* src/chmod.c: Deallocate the mode change array in dev mode.
 6164 	* src/chown.c: Make chopt_free() actually deallocate, but
 6165 	only call in dev mode.
 6166 	* src/chgrp.c: Likewise.
 6167 
 6168 	doc: improve formatting of nl --help
 6169 	* src/nl.c (usage): Better delineate the information.
 6170 
 6171 2018-05-14  Paul Eggert  <eggert@cs.ucla.edu>
 6172 
 6173 	who: simplify port to GCC 8
 6174 	* src/who.c (make_id_equals_comment): Use simpler workaround
 6175 	for GCC bug 85602.  Suggested by Martin Sebor in:
 6176 	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85602#c3
 6177 
 6178 2018-05-04  Pádraig Brady  <P@draigBrady.com>
 6179 
 6180 	build: make GCC 8 adjustments more portable
 6181 	* src/chown-core.h (chopt_free): Just define away this noop.
 6182 	* src/chown-core.c (chopt_free): Remove the empty implementation.
 6183 
 6184 2018-05-04  Paul Eggert  <eggert@cs.ucla.edu>
 6185 
 6186 	build: update gnulib submodule to latest
 6187 
 6188 2018-05-03  Paul Eggert  <eggert@cs.ucla.edu>
 6189 
 6190 	maint: port to GCC 8
 6191 	* src/chown-core.h (chopt_free, gid_to_name, uid_to_name):
 6192 	No longer const.
 6193 	* src/make-prime-list.c (xalloc): Add malloc attribute.
 6194 	* src/who.c (make_id_equals_comment): Work around GCC bug 85602
 6195 	by using mempcpy rather than strncat.  Although the old code
 6196 	was correct, strncat raises so many hackles that it’s not
 6197 	worth maintaining its use here.
 6198 
 6199 	maint: remove strpbrk module
 6200 	* bootstrap.conf (gnulib_modules): Remove obsolete module strpbrk.
 6201 
 6202 	build: update gnulib submodule to latest
 6203 
 6204 2018-04-21  Pádraig Brady  <P@draigBrady.com>
 6205 
 6206 	doc: retroactively adjust info about tail and closed output
 6207 	* NEWS: Expand on the 8.28 description of how tail more
 6208 	responsively reacts to closed output, and move from "Improvements"
 6209 	to "Changed behavior".
 6210 	* cfg.mk (old_NEWS_hash): Regenerate.
 6211 	Fixes https://bugs.gnu.org/31225
 6212 
 6213 2018-04-19  Pádraig Brady  <P@draigBrady.com>
 6214 
 6215 	doc: timeout --help: mention 0 DURATION disables timeout
 6216 	* src/timeout.c (usage): Mention that a duration of 0 disables
 6217 	the associated timeout, which is both concise info and useful
 6218 	functionality as timeouts are frequently configured.
 6219 
 6220 2018-04-06  Eric Blake  <eblake@redhat.com>
 6221 
 6222 	doc: retroactively document -e/-u addition in NEWS
 6223 	Prompted by https://bugs.gnu.org/31045
 6224 
 6225 	* NEWS: Update 8.8 blurb to mention other split additions.
 6226 	* cfg.mk (old_NEWS_hash): Regenerate.
 6227 
 6228 2018-04-03  Paul Eggert  <eggert@cs.ucla.edu>
 6229 
 6230 	doc: Clarify octal bits in permissions
 6231 	* doc/perm.texi (Numeric Modes): Briefly explain octal.
 6232 	Reorder description to make it more intuitive (Bug#29069).
 6233 
 6234 2018-03-28  Tobias Stoeckmann  <tobias@stoeckmann.org>
 6235 
 6236 	cut: improve large file support on 32 bit
 6237 	Increase max range from SIZE_MAX to UINTMAX_MAX, which will
 6238 	allow cut to support line lengths up to the max file size
 6239 	on all systems. The inherent SIZE_MAX limitation in cut was
 6240 	removed with the enhancements in https://bugs.gnu.org/13127.
 6241 	Also numfmt gets similarly increased --field ranges due to
 6242 	shared code.
 6243 
 6244 	* src/cut.c: s/size_t/uintmax_t/.
 6245 	* src/numfmt.c: Likewise.
 6246 	* src/set-fields.c: Likewise.
 6247 	* src/set-fields.h: Likewise.
 6248 	* tests/misc/cut-huge-range.sh: Adjust accordingly.
 6249 	* tests/misc/numfmt.pl: Likewise.
 6250 	* NEWS: Mention the improvement.
 6251 
 6252 2018-03-28  Pádraig Brady  <P@draigBrady.com>
 6253 
 6254 	tests: avoid a recent syntax-check failure
 6255 	* tests/ls/a-option.sh: s/framework_failure/&_/.
 6256 
 6257 2018-03-27  Paul Eggert  <eggert@cs.ucla.edu>
 6258 
 6259 	ls: -A now overrides -a
 6260 	Problem reported by Karl Berry (Bug#30963).
 6261 	* NEWS: Mention this.
 6262 	* src/ls.c (decode_switches): Implement this.
 6263 	* tests/ls/a-option.sh: New file.
 6264 	* tests/local.mk (all_tests): Add it.
 6265 
 6266 2018-03-24  Roland Hieber  <rohieb@rohieb.name>
 6267 
 6268 	doc: fix two typos in github templates
 6269 	* .github/ISSUE_TEMPLATE.txt: Fix typo "coreitils" in the URL to the bug
 6270 	tracker.
 6271 	* .github/PULL_REQUEST_TEMPLATE.txt: Likewise.
 6272 
 6273 2018-03-16  Pádraig Brady  <P@draigBrady.com>
 6274 
 6275 	ls: increase the allowed abmon width from 5 to 12
 6276 	This will impact relatively few languages,
 6277 	and will make Arabic or Catalan etc.
 6278 	output unambiguous abbreviated month names.
 6279 
 6280 	* src/ls.c (MAX_MON_WIDTH): Increase from 5 to 12.
 6281 	* NEWS: Mention the bug fix.
 6282 	* tests/ls/abmon-align.sh: Augment to check for ambiguous output.
 6283 	Fixes https://bugs.gnu.org/30814
 6284 
 6285 2018-03-14  Brent Petit  <brent.petit@hpe.com>
 6286 
 6287 	stat,tail: add support for the EXFS file system
 6288 	Enhanced XFS (EXFS) is a version of XFS maintained by HPE.
 6289 	EXFS uses a unique magic number to allow the use of community
 6290 	XFS, and EXFS filesystems at the same time.
 6291 
 6292 	* src/stat.c (human_fstype): Add file system ID definition,
 6293 	and use "exfs" as the name.
 6294 	* NEWS: Mention the Improvement.
 6295 
 6296 2018-03-06  Paul Eggert  <eggert@cs.ucla.edu>
 6297 
 6298 	build: update gnulib submodule to latest
 6299 
 6300 2018-03-05  Paul Eggert  <eggert@cs.ucla.edu>
 6301 
 6302 	stat: work around IBM xlC bug
 6303 	Problem reported by John Wiersba (Bug#30718)
 6304 	* src/stat.c (human_time): Avoid giving an integer constant
 6305 	expression a name, as it runs afoul of a bug in IBM XL C/C++ for
 6306 	AIX 12.01.0000.0002.
 6307 
 6308 2018-03-04  Bernhard Voelker  <mail@bernhard-voelker.de>
 6309 
 6310 	maint: adjust email address of Keith Thompson in THANKS.in
 6311 	* THANKS.in (Keith Thompson): Update email address as requested by
 6312 	himself at https://lists.gnu.org/r/coreutils/2018-03/msg00004.html
 6313 
 6314 2018-02-25  Pádraig Brady  <P@draigBrady.com>
 6315 
 6316 	cp: set appropriate default permissions for special files
 6317 	This issue was introduced in commit v8.19-145-g24ebca6
 6318 
 6319 	* src/copy.c (copy_internal): When setting default permissions
 6320 	to use with --no-preserve=mode, only set executable bits for
 6321 	directories or sockets.
 6322 	* NEWS: Mention the fix.
 6323 	* tests/cp/preserve-mode.sh: Add a test case.
 6324 	Fixes https://bugs.gnu.org/30534
 6325 
 6326 2018-01-21  Pádraig Brady  <P@draigBrady.com>
 6327 
 6328 	doc: use consistent example format in manual
 6329 	* doc/coreutils.texi: Use @example consistently
 6330 	as we don't need the smaller or fixed width representation.
 6331 	This is especially true for the synopsis of commands.
 6332 	@smallexample is rendered left aligned for HTML
 6333 	which is awkward to read with the center aligned main content.
 6334 
 6335 2018-01-10  Paul Eggert  <eggert@cs.ucla.edu>
 6336 
 6337 	mv: clarify ‘mv -n A A’ change
 6338 
 6339 	mv: fewer syscalls for ‘mv a b’
 6340 	This builds on a previous patch for mv atomicity (Bug#29961).
 6341 	It merely improves performance; it does not fix bugs.
 6342 	* src/copy.h (struct cp_options): New members last_file, rename_errno.
 6343 	* src/copy.c (copy_internal): Support new rename_errno member
 6344 	for the copy options.  Avoid calling stat when new members
 6345 	suggest it’s not needed.
 6346 	(cp_options_default): Initialize new members.
 6347 	* src/mv.c: Include renameat2.h.
 6348 	(main): With two arguments, first call ‘renamat2 (AT_FDCWD, "a",
 6349 	AT_FDCWD, "b", RENAME_NOREPLACE)’.  Use its results to skip
 6350 	remaining processing if possible; for example, if it succeeds
 6351 	there is no need to stat either "a" or "b".  Also, set
 6352 	x.last_file when it is the last file to rename.
 6353 
 6354 	mv: improve -n atomicity
 6355 	Problem reported by Kamil Dudka (Bug#29961).
 6356 	* NEWS: Mention this.
 6357 	* src/copy.c: Include renameat2.h.
 6358 	(copy_internal): If mv, try renameat2 first thing, with
 6359 	RENAME_NOREPLACE.  If this works, skip most of the remaining code.
 6360 	Also, fail quickly if it fails with EEXIST, and we are using -n.
 6361 
 6362 2018-01-10  Michael Orlitzky  <michael@orlitzky.com>
 6363 
 6364 	doc: warn about following symlinks recursively in chown/chgrp
 6365 	In both chown and chgrp (which shares its code with chown), operating
 6366 	on symlinks recursively has a window of vulnerability where the
 6367 	destination user or group can change the target of the operation.
 6368 	Warn about combining the --dereference, --recursive, and -L flags.
 6369 
 6370 	* doc/coreutils.texi (warnOptDerefWithRec): Add macro.
 6371 	(node chown invocation): Add it to --dereference and -L.
 6372 	(node chgrp invocation): Likewise.
 6373 
 6374 	See also: CVE-2017-18018
 6375 
 6376 2018-01-06  Paul Eggert  <eggert@cs.ucla.edu>
 6377 
 6378 	cp: remove ASSIGN_BASENAME_STRDUPA
 6379 	* src/cp.c (do_copy): Just use ASSIGN_STRDUPA, as this simplifies
 6380 	the code and uses less memory.
 6381 
 6382 2018-01-04  Paul Eggert  <eggert@cs.ucla.edu>
 6383 
 6384 	mv: -n overrides -u
 6385 	* NEWS: Mention these fixes.
 6386 	* doc/coreutils.texi (cp invocation, mv invocation):
 6387 	Mention that -n is silent, and that it overrides -u.
 6388 	* src/cp.c, src/mv.c (main): -n overrides -u.
 6389 
 6390 2018-01-03  Paul Eggert  <eggert@cs.ucla.edu>
 6391 
 6392 	tr: add -A, for compatibility with AIX tr
 6393 	Problem reported by Michael (Bug#29946).
 6394 	* src/tr.c (main): Add undocumented -A option.
 6395 
 6396 2018-01-03  Michael Orlitzky  <michael@orlitzky.com>
 6397 
 6398 	doc: clarify chown/chgrp --dereference defaults
 6399 	* doc/coreutils.texi: the documentation for the --dereference
 6400 	  flag of chown/chgrp states that it is the default mode of
 6401 	  operation. Document that this is only the case when operating
 6402 	  non-recursively.
 6403 
 6404 2018-01-02  Pádraig Brady  <P@draigBrady.com>
 6405 
 6406 	tests: avoid false failure with xargs on AIX
 6407 	* tests/misc/shred-remove.sh: AIX xargs defaults to using
 6408 	'_' to indicate end of input, thus ignoring it.
 6409 	Rather than specifying -E to avoid this behavior, simplify
 6410 	by removing sed and xargs usage.
 6411 
 6412 2018-01-01  Pádraig Brady  <P@draigBrady.com>
 6413 
 6414 	maint: update all copyright year number ranges
 6415 	Run "make update-copyright" and then...
 6416 
 6417 	* gnulib: Update to latest with copyright year adjusted.
 6418 	* tests/init.sh: Sync with gnulib to pick up copyright year.
 6419 	* bootstrap: Likewise.
 6420 	* tests/sample-test: Adjust to use the single most recent year.
 6421 
 6422 2017-12-27  Pádraig Brady  <P@draigBrady.com>
 6423 
 6424 	maint: post-release administrivia
 6425 	* NEWS: Add header line for next release.
 6426 	* .prev-version: Record previous version.
 6427 	* cfg.mk (old_NEWS_hash): Auto-update.
 6428 
 6429 	version 8.29
 6430 	* NEWS: Record release date.
 6431 
 6432 2017-12-23  Pádraig Brady  <P@draigBrady.com>
 6433 
 6434 	tests: avoid false failure on AIX 7.2
 6435 	* tests/tail-2/pipe-f.sh: Close stdout in a subshell
 6436 	to ensure the current shell isn't impacted.  Subsequent
 6437 	piped commands like `echo foo | blah` were seen to fail
 6438 	due to the previous closing of stdout.
 6439 	Reported by Assaf Gordon.
 6440 
 6441 	doc: describe recent build checks for 32 bit time_t
 6442 	* README: Document the new handling of 32 bit time_t,
 6443 	with examples of how to build in 64 bit mode on AIX.
 6444 	Also mention that GNU make is desired on AIX
 6445 	due to its mishandling of the "[" target.
 6446 	Suggested by Assaf Gordon.
 6447 
 6448 2017-12-21  Pádraig Brady  <P@draigBrady.com>
 6449 
 6450 	tests: fix recent portability issues on solaris 10
 6451 	* tests/misc/ptx.pl: Escape the '^' character which is
 6452 	otherwise considered as a line continuation character.
 6453 	* tests/misc/shred-remove.sh: sed doesn't support \n.
 6454 
 6455 	maint: remove reference to excluded changelog item
 6456 	* build-aux/git-log-fix: Remove old entry.
 6457 
 6458 2017-12-20  Pádraig Brady  <P@draigBrady.com>
 6459 
 6460 	maint: add doc/coverage to .gitignore
 6461 	* .gitignore: Ignore the generated coverage report.
 6462 
 6463 	doc: remove older ChangeLog items
 6464 	* Makefile.am: Update the oldest documented version
 6465 	to 8.20 which is now about 5 years old.
 6466 
 6467 2017-12-18  Bernhard Voelker  <mail@bernhard-voelker.de>
 6468 
 6469 	doc: mention which privileges are needed to chmod
 6470 	POSIX specification for chmod(1):
 6471 	https://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html
 6472 
 6473 	* doc/coreutils.texi (chmod invocation): Add a sentence about who can
 6474 	change the file mode bits of a file - (almost) a copy from what POSIX
 6475 	requires.
 6476 
 6477 	Fixes https://bugs.gnu.org/29207.
 6478 
 6479 2017-12-16  Pádraig Brady  <P@draigBrady.com>
 6480 
 6481 	tests: fix recent regressions with dash
 6482 	* tests/misc/timeout.sh: dash outputs the "Killed"
 6483 	message to stderr rather than the terminal.
 6484 	* tests/misc/usage_vs_getopt.sh: dash doesn't yet
 6485 	support the POSIX proposed $'...' shell quoting syntax.
 6486 
 6487 	build: avoid a signed overflow warning in ptx
 6488 	* src/ptx.c (fix_output_parameters): GCC 6.3.1 with
 6489 	./configure --enable-single-binary would give:
 6490 	  error: assuming signed overflow does not occur
 6491 	  when simplifying conditional to constant [-Werror=strict-overflow]
 6492 	    if (file_index > 0)
 6493 	So change the type of file_index to signed (size_t).
 6494 
 6495 2017-12-11  Bernhard Voelker  <mail@bernhard-voelker.de>
 6496 
 6497 	maint: adjust for the renamed nstrfime gnulib module
 6498 	* bootstrap.conf: s/strftime/nstrfrime/.
 6499 
 6500 2017-12-11  Pádraig Brady  <P@draigBrady.com>
 6501 
 6502 	build: update gnulib submodule to latest
 6503 	* gnulib: Update with various build/test fixes.
 6504 
 6505 	tests: fix false failure in new dd/nocache_eof test
 6506 	* test/dd/nocache_eof.sh: Also handle fadvise64_64 which is
 6507 	used on 32 bit x86.  Note strace internally maps fadvise64_64
 6508 	to {arm,xtensa}_fadvise64_64.
 6509 
 6510 	tail: fix tailing non seekable files on certain systems
 6511 	* src/tail.c (tail_bytes): On systems were blksize_t is unsigned
 6512 	and the same size or wider than off_t (android for example),
 6513 	our initialized (off_t) -1 would be promoted to unsigned before
 6514 	comparison, and thus fail to follow the appropriate path.
 6515 	* tests/tail-2/tail-c.sh: Add a test case.
 6516 	* NEWS: Mention the fix.
 6517 	This issue was introduced in commit v8.23-47-g2662702
 6518 	Reported at https://github.com/termux/termux-app/issues/233
 6519 
 6520 	build: avoid build failure without sys/mtio.h
 6521 	* m4/jm-macros.m4: Check for the header.
 6522 	* src/dd.c: Avoid the workaround where the header
 6523 	is not available (on non glibc systems).
 6524 	* src/shred.c: Likewise.
 6525 
 6526 	doc: reorganize ls -k and --time-style help
 6527 	* src/ls.c (usage): Clarify -k only applies to -s usage
 6528 	and directory 'total' lines.  Move the description
 6529 	of TIME_STYLE out of the option section as it was awkward
 6530 	to read and write there within 80 columns.
 6531 
 6532 2017-12-10  Pádraig Brady  <P@draigBrady.com>
 6533 
 6534 	doc: clarify numeric setuid handling in chmod man page
 6535 	* man/chmod.x: Update the information to state one can
 6536 	clear the setuid and setgid bits for directories numerically
 6537 	using an additional leading '0' or a leading '='.
 6538 	That has been supported since v8.15-64-g8931cdb.
 6539 	Fixes https://bugs.gnu.org/29390
 6540 
 6541 	doc: shred: change 'truncate' to the more descriptive 'deallocate'
 6542 	* doc/coreutils.texi (shred invocation): s/truncate/deallocate/.
 6543 	* src/shred.c (usage): Likewise.
 6544 	Fixes https://bugs.gnu.org/29317
 6545 
 6546 	doc: clarify that cp --force may recreate files
 6547 	* doc/coreutils.texi (cp invocation): The language used
 6548 	to describe recreating the file was a little confusing
 6549 	as it mentioned opening a removed file.
 6550 	Fixes https://bugs.gnu.org/29315
 6551 
 6552 2017-12-04  Kamil Dudka  <kdudka@redhat.com>
 6553 
 6554 	doc: fix default QUOTING_STYLE for %N format of stat(1)
 6555 	* doc/coreutils.texi (stat invocation): The default value
 6556 	of QUOTING_STYLE for the %N format of 'stat --printf' is
 6557 	'shell-escape-always'.
 6558 	Fixes https://bugs.gnu.org/29563
 6559 	Reported by Christian Groessler at
 6560 	https://bugzilla.redhat.com/1520399#c3
 6561 
 6562 2017-12-02  Jean Delvare  <jdelvare@suse.de>
 6563 
 6564 	tests: make ls/block-size more readable
 6565 	* tests/ls/block-size.sh: The output of the test was hard to read. Add
 6566 	comments saying what we are testing to make it easier to understand.
 6567 
 6568 2017-11-29  Bernhard Voelker  <mail@bernhard-voelker.de>
 6569 	    Pádraig Brady  <P@draigBrady.com>
 6570 
 6571 	tests: verify usage vs. getopt
 6572 	Verify that all options mentioned in usage are actually recognized
 6573 	by the program.
 6574 
 6575 	* tests/misc/usage_vs_getopt.sh: Add test.
 6576 	* tests/local.mk (all_tests): Reference it.
 6577 
 6578 2017-11-29  Pádraig Brady  <P@draigBrady.com>
 6579 
 6580 	readlink: remove superfluous comma from usage output
 6581 	* src/readlink.c (usage): Remove ',' after --quiet option.
 6582 
 6583 2017-11-29  Bernhard Voelker  <mail@bernhard-voelker.de>
 6584 
 6585 	all: use consistent diagnostics for unknown long options
 6586 	Previously, e.g. cksum failed to output the offending unknown long
 6587 	option:
 6588 	  $ cksum --unknown-opt
 6589 	  cksum: invalid option -- '-'
 6590 	  Try 'cksum --help' for more information.
 6591 	i.e., it tried to diagnose '-' as short option.
 6592 	Instead, it should diagnose the unknown long option:
 6593 	  $ cksum --unknown-opt
 6594 	  cksum: unrecognized option '--unknown-opt'
 6595 	  Try 'cksum --help' for more information.
 6596 
 6597 	* src/cksum.c (long_options): Add struct with null entry only.
 6598 	(main): Use it in the getopt_long call.
 6599 	* src/dd.c: Likewise.
 6600 	* src/hostid.c: Likewise.
 6601 	* src/hostname.c: Likewise.
 6602 	* src/link.c: Likewise.
 6603 	* src/logname.c: Likewise.
 6604 	* src/nohup.c: Likewise.
 6605 	* src/sleep.c: Likewise.
 6606 	* src/tsort.c: Likewise.
 6607 	* src/unlink.c: Likewise.
 6608 	* src/uptime.c: Likewise.
 6609 	* src/users.c: Likewise.
 6610 	* src/whoami.c: Likewise.
 6611 	* src/yes.c: Likewise.
 6612 	* NEWS (Improvements): Mention the fix.
 6613 
 6614 2017-11-29  Pádraig Brady  <P@draigBrady.com>
 6615 
 6616 	test: fix issues with tests/cp/preserve-mode.sh
 6617 	* tests/cp/preserve-mode.sh: This was the only use of awk,
 6618 	which may not be available on the system resulting
 6619 	in an ineffective test.  Also the permissions bits for
 6620 	directories were not being checked at all.
 6621 
 6622 	build: update gnulib submodule to latest
 6623 	* gnulib: Update with various build/test fixes.
 6624 
 6625 2017-11-28  Pádraig Brady  <P@draigBrady.com>
 6626 
 6627 	build: update gnulib submodule to latest
 6628 	* gnulib: Update including various build fixes.
 6629 
 6630 2017-11-27  Bernhard Voelker  <mail@bernhard-voelker.de>
 6631 
 6632 	timeout: also support short -v option
 6633 	* src/timeout.c (main): Add short option character 'v' to getopt_long
 6634 	call.
 6635 	* tests/misc/timeout.sh: Run the test both for the long and the short
 6636 	option.
 6637 
 6638 2017-11-25  Pádraig Brady  <P@draigBrady.com>
 6639 
 6640 	dd: support iflag=direct with arbitrary sized files
 6641 	* src/dd.c (iread): Handle read error with a non-aligned
 6642 	file offset in the O_DIRECT case.  This is not an issue
 6643 	on XFS at least, but on EXT4 the final read will return
 6644 	EINVAL rather than the expected 0 to indicate EOF.
 6645 	* tests/dd/direct.sh: Test the iflag=direct case also.
 6646 	* NEWS: Mention the improvement.
 6647 
 6648 2017-11-24  Pádraig Brady  <P@draigBrady.com>
 6649 
 6650 	timeout: add --verbose to diagnose timeouts
 6651 	This is useful as handling in shell is complicated
 6652 	with the varying exit status in the --kill-after case.
 6653 
 6654 	* src/timeout.c (main): Handle '-v' and store
 6655 	COMMAND for the diagnostic.
 6656 	(cleanup): Diagnose the signal name before sending.
 6657 	(usage): Document -v, --verbose.
 6658 	* doc/coreutils.texi (timeout invocation): Likewise.
 6659 	* tests/misc/timeout.sh: Add a test case.
 6660 	* NEWS: Mention the new feature
 6661 	Fixes https://bugs.gnu.org/21760
 6662 
 6663 2017-11-19  Pádraig Brady  <P@draigBrady.com>
 6664 
 6665 	tail: seek to the end of block devices
 6666 	* src/tail.c (tail_bytes): Try lseek(..., SEEK_END) when
 6667 	we can't determine the file size.
 6668 	* tests/tail-2/end-of-device.sh: Add a new root only test.
 6669 	* tests/local.mk: Reference the new test.
 6670 	* NEWS: Mention the improvement.
 6671 	Paul Eggert suggested using lseek() (rather than ioctl(BLKGETSIZE64)).
 6672 	Fixes https://bugs.gnu.org/29259
 6673 
 6674 2017-11-14  Bernhard Voelker  <mail@bernhard-voelker.de>
 6675 
 6676 	maint: include the module year2038 from gnulib
 6677 	* bootstrap.conf (gnulib_modules): Add 'year2038' to ensure that time_t
 6678 	is 64-bit (and thus works after 2038).
 6679 
 6680 	Suggested by Bruno Haible in
 6681 	https://lists.gnu.org/r/bug-gnulib/2017-11/msg00022.html
 6682 
 6683 2017-11-14  Bernhard Voelker  <mail@bernhard-voelker.de>
 6684 
 6685 	maint: update gnulib to latest
 6686 	* gnulib: Update - mainly for the recent year2038 changes.
 6687 	* tests/init.sh: Update from gnulib/tests/init.sh.
 6688 
 6689 2017-11-09  Assaf Gordon  <assafgordon@gmail.com>
 6690 
 6691 	doc: add github issue/pull-request templates
 6692 	These templates instruct contributors not to use github, and instead
 6693 	use the upstream GNU development resources. Discussed in
 6694 	http://lists.gnu.org/archive/html/coreutils/2017-11/msg00007.html .
 6695 
 6696 	* .github/ISSUE_TEMPLATE.txt,
 6697 	  .github/PULL_REQUEST_TEMPLATE.txt: New files.
 6698 
 6699 2017-11-08  Jim Meyering  <meyering@fb.com>
 6700 
 6701 	maint: make hook script reject "/archive/html" in lists.gnu.org URLS
 6702 	* scripts/git-hooks/commit-msg: Require the abbreviated "/r/"
 6703 	form in any log message URL.
 6704 
 6705 	maint: shorten https://lists.gnu.org/archive/html/... links
 6706 	Each /archive/html/ part can be replace with /r/.
 6707 	Run this to induce the change:
 6708 	git grep -l archive/html|xargs perl -pi -e 's,/archive/html/,/r/,g'
 6709 	* TODO: Perform that substitution.
 6710 	* bootstrap: Likewise.
 6711 	* src/sort.c (sequential_sort): Likewise.
 6712 	* src/tail.c (tail_file): Likewise.
 6713 	* tests/misc/sort-merge-fdlimit.sh: Likewise.
 6714 	* tests/misc/stty-row-col.sh: Likewise.
 6715 	* tests/misc/unexpand.pl: Likewise.
 6716 	* tests/rm/readdir-bug.sh: Likewise.
 6717 	* tests/tail-2/inotify-rotate.sh: Likewise.
 6718 
 6719 2017-11-07  Thomas Deutschmann  <whissi@gentoo.org>
 6720 
 6721 	tests: avoid false failure with inaccessible mount points
 6722 	* tests/ls/readdir-mountpoint-inode.sh: Skip the test
 6723 	if any mount points are inaccessible by the current user.
 6724 	Fixes https://bugs.gnu.org/29167
 6725 	Reported at: https://bugs.gentoo.org/353164
 6726 
 6727 2017-11-06  Bernhard Voelker  <mail@bernhard-voelker.de>
 6728 
 6729 	doc: fix "Up" field of realpath usage examples
 6730 	Older versions of 'makeinfo' choke on a missing reference:
 6731 
 6732 	  ./doc/coreutils.texi:14177: `Realpath usage examples' has no Up field\
 6733 	  (perhaps incorrect sectioning?).
 6734 	  makeinfo: Removing output file `doc/coreutils.info' due to errors; \
 6735 	  use --force to preserve.
 6736 
 6737 	* doc/coreutils.texi (realpath invocation): Add a menu referencing
 6738 	the usage examples - introduced in v8.27-91-g7449f0d.
 6739 
 6740 2017-11-06  Pádraig Brady  <P@draigBrady.com>
 6741 
 6742 	maint: ensure https:// URLs are used in --help and man pages
 6743 	* configure.ac(AC_INIT): Specify the URL explicitly, so we're
 6744 	not dependent on unreleased autoconf.
 6745 
 6746 2017-10-31  Assaf Gordon  <assafgordon@gmail.com>
 6747 
 6748 	stat: output default formats for --terse in usage
 6749 	Suggested by L A Walsh in https://bugs.gnu.org/28763 .
 6750 
 6751 	* src/stat.c (fmt_terse_fs): Define format for --terse -f here.
 6752 	(fmt_terse_regular): Define format for --terse here.
 6753 	(fmt_terse_selinux): Likewise for when SELinux is enabled.
 6754 	(default_format): Use the above constants.
 6755 	(usage): Output the formats for the terse modes.
 6756 
 6757 2017-10-30  Pádraig Brady  <P@draigBrady.com>
 6758 
 6759 	df: fix hang with fifo argument
 6760 	* src/df.c (main): stat() before open(), and avoid
 6761 	the optional open when given a fifo argument.
 6762 	* tests/df/unreadable.sh: Add a test case.
 6763 	* NEWS: Mention the fix.
 6764 	Fixes https://bugs.gnu.org/29038
 6765 
 6766 2017-10-28  Jim Meyering  <meyering@fb.com>
 6767 
 6768 	build: ls.c: apply _GL_ATTRIBUTE_PURE to more functions
 6769 	* src/ls.c (DEFINE_SORT_FUNCTIONS): Apply _GL_ATTRIBUTE_PURE
 6770 	to each strcmp-derived function definition, since GCC8 with
 6771 	-Wsuggest-attribute=pure now warns it is needed.
 6772 
 6773 2017-10-26  Vincent Lefevre  <vincent@vinc17.net>
 6774 
 6775 	doc: reference statfs(2) in the stat(1) man page
 6776 	* man/stat.x (SEE ALSO): Mention statfs(2) in addition to stat(2).
 6777 	Note statfs() is generally used rather than statvfs(),
 6778 	so we'll defer that reference to the SEE ALSO section of statfs(2).
 6779 	Fixes https://bugs.gnu.org/28989
 6780 
 6781 2017-10-25  Pádraig Brady  <P@draigBrady.com>
 6782 
 6783 	tests: avoid false failure when O_DIRECT isn't supported
 6784 	* tests/dd/nocache_eof.sh: Only run the O_DIRECT tests
 6785 	when 512 byte alignment is supported.  Otherwise with older
 6786 	XFS on systems with > 1MiB pages, or on file systems not
 6787 	supporting O_DIRECT, there would have been false failures.
 6788 	* tests/dd/direct.sh: Clarify the skip message.
 6789 
 6790 2017-10-25  Pádraig Brady  <P@draigBrady.com>
 6791 
 6792 	dd: fix nocache regions passed to posix_fadvise()
 6793 	Previously with oflag=direct the call to invalidate_cache()
 6794 	was not passed to the kernel, as it was less than a page size,
 6795 	and a subsequent call was not made to invalidate the pending space.
 6796 	Similarly with oflag=nocache the pending space at EOF was
 6797 	not invalidated.  Even though these amount to only a single page
 6798 	in the page cache it can be significant.  For example on
 6799 	XFS before kernel patch v4.9-rc1-4-g0ee7a3f, O_DIRECT files
 6800 	would have been read inefficiently if any pages were cached,
 6801 	even if they were already synced to storage.
 6802 
 6803 	* src/dd.c (i_nocache_eof, o_nocache_eof): New bools used
 6804 	to control when we want invalidate_cache(,0) to clear to EOF.
 6805 	(cache_round): Use IO_BUFSIZE (currently 132KiB) to minimize
 6806 	calls to the relatively expensive advise function, rather
 6807 	than page_size.  This also makes it clear that while the
 6808 	kernel function operates on pages, this size is chosen for
 6809 	performance reasons.
 6810 	(invalidate_cache): Refactor to share more code between
 6811 	input and output paths. Use i_nocache_eof and o_nocache_eof
 6812 	rather than proxying off max_records.  Ensure we
 6813 	invalidate full pages when clearing to EOF as the kernel
 6814 	will ignore any non complete pages.  Fix the offset used
 6815 	for the output path.
 6816 	(dd_copy): Invalidate the cache of the input after the
 6817 	offset is updated, for consistency and so we don't try to
 6818 	invalidate before the start of the file.  When we read
 6819 	EOF on input, set flags so that we invalidate to EOF.
 6820 	(main): Invalidate to EOF in more cases, by depending
 6821 	on the i_nocache_eof and o_nocache_eof flags.
 6822 	* doc/coreutils.texi (dd invocation): Clarify the alignment
 6823 	and persisted caveats on the example applying "nocache"
 6824 	to part of a file.
 6825 	* tests/dd/nocache_eof.sh: A new test.
 6826 	* tests/local.mk: Reference the new test.
 6827 	* NEWS: Mention the bug fix.
 6828 	Issue reported by Eric Bergen.
 6829 
 6830 2017-10-24  Michael Stone  <mstone@debian.org>
 6831 
 6832 	doc: mention QUOTING_STYLE env var in ls man page
 6833 	* src/ls.c (usage): Mention QUOTING_STYLE with the --quoting-style
 6834 	option, and indicate it has lower precedence than that option.
 6835 
 6836 2017-10-24  Pádraig Brady  <P@draigBrady.com>
 6837 
 6838 	maint: apply suggested cleanup to recent stty.c change
 6839 	This should have been part of commit v8.28-17-gf926f7c
 6840 	* src/stty.c (check_argument): Align line continuation chars,
 6841 	and ensure the function macro is immune to usage with if/else.
 6842 	Suggested by Jim Meyering and Paul Eggert.
 6843 
 6844 	b2sum: fix crash with --check and truncated input
 6845 	* src/md5sum.c (split_3): Ensure we don't walk off
 6846 	the end of the string.
 6847 	* tests/misc/b2sum.sh: Add test cases.
 6848 	Fixes https://bugs.gnu.org/28860
 6849 
 6850 2017-10-24  Pádraig Brady  <P@draigBrady.com>
 6851 
 6852 	stty: fix processing of options when -F is specified
 6853 	This was a latent issue that became significant with
 6854 	the addition of the -F option in FILEUTILS-3_16n-56-ge46a424
 6855 
 6856 	* src/stty.c (apply_settings): Refactor argument checking
 6857 	to a function macro.  Augment the argument check to ignore
 6858 	NULLed out arguments (already processed -F).
 6859 	* NEWS: Mention the fix.
 6860 	* tests/misc/stty-invalid.sh: Add a test case.
 6861 	Fixes https://bugs.gnu.org/28859
 6862 
 6863 2017-10-24  Pádraig Brady  <P@draigBrady.com>
 6864 
 6865 	timeout: fix a small race that would ignore command exit
 6866 	This fixes a regression from commit v8.26-39-g2f69dba
 6867 
 6868 	* src/timeout.c (block_cleanup_and_chld): Rename from block_cleanup
 6869 	to indicate we also block SIGCHLD to avoid the race where SIGCHLD
 6870 	fires between waitpid() polling and sigsuspend() waiting for a signal.
 6871 	* NEWS: Mention the fix.
 6872 
 6873 2017-10-24  Thomas Jarosch  <thomas.jarosch@intra2net.com>
 6874 
 6875 	timeout: fix regression when invoked with blocked SIGCHLD
 6876 	We inherit the signal mask from our parent process,
 6877 	therefore ensure SIGCHLD is not blocked.
 6878 
 6879 	If SIGCHLD is blocked, sigsuspend() won't be interrupted
 6880 	when the child process exits and we hang until the timeout (SIGALRM).
 6881 
 6882 	This fixes a regression from commit v8.26-39-g2f69dba
 6883 
 6884 	* src/timeout.c (install_sigchld): Ensure SIGCHLD is unblocked.
 6885 	* NEWS: Mention the issue.
 6886 
 6887 2017-10-02  Pádraig Brady  <P@draigBrady.com>
 6888 
 6889 	build: reinstate distribution of man pages
 6890 	man pages change little between systems,
 6891 	so falling back to distributed pages make sense
 6892 	when cross compiling or lacking perl.
 6893 
 6894 	* man/local.mk: Add all man pages to EXTRA_DIST
 6895 	so that they're distributed in the generated tarball.
 6896 	Use the dummy-man page generator if cross compiling.
 6897 	Set TZ to avoid a distcheck failure where man pages
 6898 	used a diffent month than those rebuilt (with a .timestamp).
 6899 	* man/dummy-man: Only fall back to generating a stub
 6900 	if copying an existing man page fails.
 6901 	* man/help2man: Sync portable TZ=UTC0 specification
 6902 	from upstream help2man.
 6903 	* NEWS: Mention the build-related change.
 6904 	Fixes https://bugs.gnu.org/28574
 6905 
 6906 2017-10-02  Pádraig Brady  <P@draigBrady.com>
 6907 
 6908 	maint: remove a duplicate entry from THANKS
 6909 	* .mailmap: Prefer Colin Watson's last used email address.
 6910 
 6911 2017-09-25  Paul Eggert  <eggert@cs.ucla.edu>
 6912 
 6913 	copy: revert recent patch for vulnerable dirs
 6914 	I plan to propose a better patch to catch vulnerable parent
 6915 	directories.
 6916 	* NEWS, doc/coreutils.texi (Target directory): Document this.
 6917 	* src/cp.c, src/install.c, src/ln.c, src/mv.c:
 6918 	Do not include targetdir.h.
 6919 	(target_directory_operand): Remove test for vulnerable parents.
 6920 	* src/cp.c (stat_target_operand): Remove.  All uses removed.
 6921 	* src/local.mk (noinst_HEADERS): Remove src/targetdir.h.
 6922 	(src_ginstall_SOURCES, src_cp_SOURCES, src_ln_SOURCES)
 6923 	(src_mv_SOURCES): Remove src/targetdir.c.
 6924 	* src/targetdir.c, src/targetdir.h: Remove.
 6925 	* tests/mv/vulnerable-target.sh: Remove.
 6926 	* tests/local.mk (all_root_tests): Remove it.
 6927 
 6928 2017-09-24  Pádraig Brady  <P@draigBrady.com>
 6929 
 6930 	tests: fix test hang on case insenitive file systems
 6931 	* tests/split/filter.sh: Due to an invalid 'FILE = zero.in'
 6932 	construct trying to initialize a FILE variable, it would
 6933 	instead try to run the FILE command which is present on
 6934 	macOS 10.13 with APFS.
 6935 	We also remove a redundant duplicate test clause introduced
 6936 	during a rebase, and simplify the piped timeout command,
 6937 	to avoid requiring a subshell and associated quoting.
 6938 	* THANKS.in: Add the reporter Jack Howarth.
 6939 	Fixes https://bugs.gnu.org/28506
 6940 
 6941 2017-09-21  Pádraig Brady  <P@draigBrady.com>
 6942 
 6943 	tests: avoid a false failure in expr test with UTF8
 6944 	* tests/misc/expr.pl: Skip the quote varying tests in
 6945 	the multi-byte locales as these tests aren't that interesting
 6946 	in those locales.  Also ERR_SUBST is already defined for
 6947 	some tests so awkward to redefine to munge UTF8 quotes to ASCII.
 6948 
 6949 2017-09-20  Assaf Gordon  <assafgordon@gmail.com>
 6950 
 6951 	expr: add detailed syntax error messages
 6952 	Show offending argument instead of a generic 'syntax error' message.
 6953 	Suggested by Bernhard Voelker in https://bugs.gnu.org/28461#13 .
 6954 
 6955 	* src/expr.c (syntax_error): Remove.
 6956 	(required_more_args): New function.
 6957 	(eval7, main): Replace syntax_error call with detailed die message.
 6958 	* tests/misc/expr.pl: Add tests for new messages.
 6959 
 6960 2017-09-20  Pádraig Brady  <P@draigBrady.com>
 6961 
 6962 	maint: fix new syntax-check failures from HTTPS adjustments
 6963 	* cfg.mk [old_NEWS_hash]: update with `make update-NEWS-hash`.
 6964 	[sc_long_lines]: Avoid flagging (long) URLs in NEWS.
 6965 	* src/sort.c: Tweak to a shorter line.
 6966 	* src/tail.c: Likewise.
 6967 	Introduced in v8.28-4-gbe87d61
 6968 
 6969 	maint: fix new syntax check failures from copy restrictions
 6970 	* doc/coreutils.texi: Remove doubled word.
 6971 	* src/targetdir.c: Explicitly mark exported function.
 6972 	* tests/local.mk: This is not a root only test.
 6973 	* tests/mv/vulnerable-target.sh: Use returns_.
 6974 	Introduced in v8.28-3-g44ccd1c
 6975 
 6976 	shred: reinstate --remove file name length obfuscation
 6977 	This was unintentionally removed in v8.27-60-g2ae1460
 6978 	* src/shred.c (wipename): Interate through all name lengths.
 6979 	* tests/misc/shred-remove.sh: Add test cases.
 6980 	* NEWS: Mention the bug fix.
 6981 	Fixes https://bugs.gnu.org/28507
 6982 
 6983 2017-09-19  Paul Eggert  <eggert@cs.ucla.edu>
 6984 
 6985 	maint: copy bootstrap from Gnulib
 6986 
 6987 	all: prefer HTTPS in URLs
 6988 
 6989 	copy: check for vulnerable target dirs
 6990 	* NEWS, doc/coreutils.texi (Target directory): Document this.
 6991 	* src/cp.c, src/install.c, src/ln.c, src/mv.c: Include targetdir.h.
 6992 	(target_directory_operand): Use the new targetdir_operand_type
 6993 	function to check for vulnerable target directories.
 6994 	* src/cp.c (stat_target_operand): New function.
 6995 	(target_directory_operand, do_copy): Use it.
 6996 	* src/local.mk (noinst_HEADERS): Add src/targetdir.h.
 6997 	(src_ginstall_SOURCES, src_cp_SOURCES, src_ln_SOURCES)
 6998 	(src_mv_SOURCES): Add src/targetdir.c.
 6999 	* src/targetdir.c, src/targetdir.h: New files.
 7000 	* tests/mv/vulnerable-target.sh: New test.
 7001 	* tests/local.mk (all_root_tests): Add it.
 7002 
 7003 2017-09-14  Bernhard Voelker  <mail@bernhard-voelker.de>
 7004 
 7005 	ptx: avoid infloop due to zero-length matches with -S regex
 7006 	* src/ptx.c (find_occurs_in_text): Die with an appropriate error
 7007 	diagnostic when the given regular expression returns a match of
 7008 	length 0.
 7009 	* tests/misc/ptx.pl (S-infloop): Add a test.
 7010 	* NEWS (Bug fixes): Mention the fix.
 7011 
 7012 	Fixes https://bugs.gnu.org/28417 which was detected using
 7013 	Symbolic Execution techniques developed in the course of the
 7014 	SYMBIOSYS research project at COMSYS, RWTH Aachen University.
 7015 
 7016 2017-09-02  Pádraig Brady  <P@draigBrady.com>
 7017 
 7018 	maint: post-release administrivia
 7019 	* NEWS: Add header line for next release.
 7020 	* .prev-version: Record previous version.
 7021 	* cfg.mk (old_NEWS_hash): Auto-update.
 7022 
 7023 	version 8.28
 7024 	* NEWS: Record release date.
 7025 
 7026 2017-09-01  Pádraig Brady  <P@draigBrady.com>
 7027 
 7028 	tests: fix false failure in recent ls --hyperlink test
 7029 	* tests/ls/hyperlink.sh: If the hostname or any part of
 7030 	the absolute path would be changed due to URL encoding,
 7031 	the test would fail.  Therefore simplify to remove
 7032 	these components of the URL from consideration.
 7033 
 7034 	maint: avoid a syntax-check failure
 7035 	* .gitignore: Remove lines indicated by sc_gitignore_redundant
 7036 	in a freshly checked out repo.
 7037 
 7038 2017-08-31  Pádraig Brady  <P@draigBrady.com>
 7039 
 7040 	tests: exclude the expensive gnulib fts-tests
 7041 	* gnulib: The only change in this gnulib update
 7042 	is the tagging of the fts-tests module as longrunning,
 7043 	which gnulib-tool currently implicitly excludes.
 7044 	This test was seen to take about 20s and 285MB.
 7045 	Reported by Assaf Gordon on space restricted VMs.
 7046 
 7047 	tty: don't distinguish input errors
 7048 	* src/tty.c (main): Don't distinguish ENOTTY from other errors,
 7049 	because isatty() doesn't portably distinguish errors.
 7050 	Solaris returns ENOENT for all input errors for example.
 7051 	Musl also returns ENOENT, and ENODEV may be returned as disscussed at:
 7052 	http://openwall.com/lists/musl/2017/04/06/6
 7053 	* tests/misc/tty.sh: Adjust accordingly.
 7054 
 7055 	tests: avoid printf '0*d' construct unsupported by ash
 7056 	* tests/ln/sf-1.sh: Generate specific length with space padding
 7057 	which is supported.
 7058 	Reported by Assaf Gordon on Alpine Linux.
 7059 
 7060 2017-08-31  Pádraig Brady  <P@draigBrady.com>
 7061 
 7062 	tests: skip tests upon failure to set SELinux context
 7063 	On some setups the root:object_r:tmp_t context is invalid.
 7064 	This does indicate a limitation in the test framework,
 7065 	but for now we'll relax this to skipping the tests.
 7066 	The tests still run on a Fedora 25 system for example.
 7067 
 7068 	* tests/cp/cp-a-selinux.sh: Upon chcon error, skip rather than ERROR.
 7069 	* tests/install/install-Z-selinux.sh: Likewise.
 7070 	* tests/misc/chcon.sh: Likewise.
 7071 	* tests/misc/runcon-no-reorder.sh: Likewise.
 7072 	* tests/misc/selinux.sh: Likewise.
 7073 	* tests/mkdir/restorecon.sh: Likewise.
 7074 
 7075 2017-08-30  Kamil Dudka  <kdudka@redhat.com>
 7076 
 7077 	expr: fix a recently introduced memory leak
 7078 	* src/expr.c (eval6): Free memory allocated by mbs_logical_substr().
 7079 
 7080 	Introduced in v8.27-47-ga9f2be5.  Detected by Coverity Analysis:
 7081 
 7082 	Error: RESOURCE_LEAK:
 7083 	src/expr.c:851: leaked_storage: Variable "s" going out of scope
 7084 	leaks the storage it points to.
 7085 	849|             char *s = mbs_logical_substr (l->u.s, pos, len);
 7086 	850|             v = str_value (s);
 7087 	851|->         }
 7088 	852|         freev (l);
 7089 	853|         freev (i1);
 7090 
 7091 2017-08-30  Pádraig Brady  <P@draigBrady.com>
 7092 
 7093 	build: fix build of renameat2 on Alpine Linux
 7094 	* gnulib: The only change included in this update
 7095 	it the added check for the presence of <linux/fs.h>
 7096 	which is not present on Alpine Linux by default.
 7097 
 7098 	tty: fix exit code with EINVAL
 7099 	* src/tty.c (main): All systems mention that isatty()
 7100 	man return EINVAL as well as (the POSIX compliant) ENOTTY.
 7101 	Also Centos 6 was seen to return EINVAL from ttyname().
 7102 	* tests/misc/tty.sh: Fix a test issue where we assume
 7103 	standard input is always a valid tty.
 7104 	Reported by Assaf Gordon on OpenSolaris 5.10 and 5.11,
 7105 	and Centos 6.5
 7106 
 7107 2017-08-30  Pádraig Brady  <P@draigBrady.com>
 7108 
 7109 	runcon: revert "disable use of the TIOCSTI ioctl"
 7110 	This reverts commit v8.27-97-g8cb06d4 because
 7111 	the setsid() fallback was not implemented correctly
 7112 	and disabling the ioctl was not a complete solution
 7113 	to the security issue of the child being passed
 7114 	the tty of the parent.
 7115 
 7116 	Given runcon is not really a sandbox command,
 7117 	the advice is to use `runcon ... setsid ...`
 7118 	to avoid this particular issue.
 7119 
 7120 2017-08-30  Pádraig Brady  <P@draigBrady.com>
 7121 
 7122 	stat: fix determination of max name length on BSD systems
 7123 	We only use one of statfs or statvfs for `stat -f`
 7124 	and on the BSDs we use statfs which doesn't have the
 7125 	f_namelen member.  However on OpenBSD and later FreeBSD
 7126 	systems statfs does provide f_namemax, so use that.
 7127 
 7128 	* NEWS: Mention the improvement for OpenBSD and FreeBSD.
 7129 	* m4/stat-prog.m4: Check for f_namemax in the statfs struct.
 7130 	* src/stat.c: Return '?' rather than '*' when we can't
 7131 	determine the max length of the file system.
 7132 	* tests/ln/sf-1.sh: This test was failing on all BSDs
 7133 	due to '*' being returned for the max length which
 7134 	caused the test to attempt to create 1Mi+1 names.
 7135 	The test now uses a short name when we can't determine
 7136 	the max name length to use.
 7137 
 7138 	Reported by Assaf Gordon on various BSD based systems.
 7139 
 7140 2017-08-29  Pádraig Brady  <P@draigBrady.com>
 7141 
 7142 	stat,tail: support "AAFS" AppArmor file system
 7143 	* src/stat.c (human_fstype): This file system is used
 7144 	to manage AppArmor policy in the Linux kernel.
 7145 
 7146 	all: update gnulib submodule to latest
 7147 	* bootstrap: Sync timestamp update.
 7148 
 7149 2017-08-29  Pádraig Brady  <P@draigBrady.com>
 7150 
 7151 	runcon: disable use of the TIOCSTI ioctl
 7152 	Similar to the issue with SELinux sandbox (CVE-2016-7545),
 7153 	children of runcon can inject arbitrary input to the terminal
 7154 	that would be run at the originating terminal privileges.
 7155 
 7156 	The new libseccomp dependency is widely available and used
 7157 	on modern SELinux systems, but is not available by default
 7158 	on older systems like RHEL6 etc.
 7159 
 7160 	* m4/jm-macros.m4: Check for libseccomp and
 7161 	warn if unavailable on selinux supporting systems.
 7162 	* src/local.mk: Link runcon with -lseccomp.
 7163 	* src/runcon.c (disable_tty_inject): A new function to
 7164 	disable use of the TIOCSTI using libseccomp, or with setsid()
 7165 	where libseccomp is unavailable.
 7166 	* tests/misc/runcon-no-inject.sh: A new test that uses
 7167 	python to make the TIOCSTI call, and ensure that doesn't succeed.
 7168 	* tests/local.mk: Reference the new test
 7169 	* NEWS: Mention the fix.
 7170 	Addresses http://bugs.gnu.org/24541
 7171 
 7172 2017-08-29  Pádraig Brady  <P@draigBrady.com>
 7173 
 7174 	ls: support --hyperlink to output file:// URIs
 7175 	Terminals such as iTerm2 and VTE based terminals
 7176 	(as of version 0.49.1), support hyperlinks when
 7177 	passed terminals codes as described at:
 7178 	https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
 7179 
 7180 	* src/ls.c (gobble_file): Allocate an absolute file name to output.
 7181 	(quote_name): Output the absolute name with the appropriate codes.
 7182 	(file_escape): A new function to encode file names as per rfc8089.
 7183 	(main): Handle the new option and call the file_escape_init() helper.
 7184 	Disable --dired when --hyperlink is specified.
 7185 	(print_dir): Get the absolute file name here too, so that the
 7186 	directory name can be linkified.
 7187 	* NEWS: Mention the new feature.
 7188 	* tests/ls/hyperlink.sh: Add a new test.
 7189 	* tests/local.mk: Reference the new test.
 7190 	* doc/coreutils.texi (ls invocation): Describe --hyperlink.
 7191 
 7192 2017-08-29  Pádraig Brady  <P@draigBrady.com>
 7193 
 7194 	doc: remove older ChangeLog items
 7195 	This saves about 0.5MB uncompressed from the tarball.
 7196 
 7197 	* Makefile.am: Following on from v8.26-34-g2c64bc8
 7198 	update the oldest documented version to 8.18 which
 7199 	is now about 5 years old.  Also remove older ChangeLogs
 7200 	that were previously thought to be for changes not
 7201 	in the git history, but are adequately recorded upon review.
 7202 	* build-aux/ChangeLog-2007: Remove file.
 7203 	* lib/ChangeLog-2007: Likewise.
 7204 	* m4/ChangeLog-2007: Likewise.
 7205 
 7206 2017-08-29  Colin Watson  <cjwatson@debian.org>
 7207 
 7208 	env: add --chdir option
 7209 	This is useful when chaining with other commands that run commands in a
 7210 	different context, while avoiding using the shell to cd, and thus
 7211 	having to consider shell quoting the chained command.
 7212 
 7213 	* NEWS (New features): Document the new option.
 7214 	* doc/coreutils.texi (env invocation): Likewise.
 7215 	* src/env.c (usage): Likewise.
 7216 	(main): Implement the new option.
 7217 	* tests/misc/env.sh: Test the new option.
 7218 
 7219 2017-08-29  Pádraig Brady  <P@draigBrady.com>
 7220 
 7221 	tests: don't fail tests when failing to write files
 7222 	* tests/sample-test: Use framework_error_ rather than fail=1
 7223 	* tests/chown/deref.sh: Likewise.
 7224 	* tests/chown/preserve-root.sh: Likewise.
 7225 	* tests/cp/src-base-dot.sh: Likewise.
 7226 	* tests/dd/unblock-sync.sh: Likewise.
 7227 	* tests/du/2g.sh: Likewise.
 7228 	* tests/du/inacc-dest.sh: Likewise.
 7229 	* tests/du/one-file-system.sh: Likewise.
 7230 	* tests/fmt/goal-option.sh: Likewise.
 7231 	* tests/ln/hard-backup.sh: Likewise.
 7232 	* tests/ls/color-dtype-dir.sh: Likewise.
 7233 	* tests/ls/m-option.sh: Likewise.
 7234 	* tests/ls/stat-dtype.sh: Likewise.
 7235 	* tests/ls/time-style-diag.sh: Likewise.
 7236 	* tests/ls/x-option.sh: Likewise.
 7237 	* tests/misc/chcon.sh: Likewise.
 7238 	* tests/misc/nohup.sh: Likewise.
 7239 	* tests/misc/od-N.sh: Likewise.
 7240 	* tests/misc/sort-compress.sh: Likewise.
 7241 	* tests/misc/tac-continue.sh: Likewise.
 7242 	* tests/misc/time-style.sh: Likewise.
 7243 	* tests/mv/backup-dir.sh: Likewise.
 7244 	* tests/mv/dir2dir.sh: Likewise.
 7245 	* tests/rm/dir-no-w.sh: Likewise.
 7246 	* tests/rm/dir-nonrecur.sh: Likewise.
 7247 	* tests/rm/inaccessible.sh: Likewise.
 7248 	* tests/rm/interactive-always.sh: Likewise.
 7249 	* tests/rm/interactive-once.sh: Likewise.
 7250 	* tests/rm/rm3.sh: Likewise.
 7251 	* tests/rm/v-slash.sh: Likewise.
 7252 	* tests/touch/relative.sh: Likewise.
 7253 
 7254 2017-08-29  Josef Cejka  <jcejka@suse.com>
 7255 	    Bernhard Voelker  <mail@bernhard-voelker.de>
 7256 
 7257 	df: avoid stat() for dummy file systems with -l
 7258 	When systemd is configured to automount a remote file system - see
 7259 	'man systemd.automount(5)', then the mount point is initially
 7260 	mounted by systemd with the file system type "autofs".
 7261 	When the resource is used later on, then the wanted file system is
 7262 	mounted over that mount point on demand.
 7263 	'df -l' triggered systemd to mount the file system because it called
 7264 	stat() on the mount point.
 7265 	Instead of single-casing "autofs" targets, we can avoid stat()ing
 7266 	all dummy file systems (which includes "autofs"), because those are
 7267 	skipped later on in get_dev() anyway.
 7268 
 7269 	*src/df.c (filter_mount_list): Also skip dummy file systems unless
 7270 	the -a option or a specific target are given.
 7271 	* NEWS: Mention the fix.
 7272 
 7273 
 7274 	Fixes http://bugzilla.suse.com/show_bug.cgi?id=1043059
 7275 
 7276 2017-08-29  Assaf Gordon  <assafgordon@gmail.com>
 7277 
 7278 	doc: add 'realpath usage examples' section
 7279 	* doc/coreutils.texi (Realpath usage examples): New section.
 7280 
 7281 2017-08-29  Assaf Gordon  <assafgordon@gmail.com>
 7282 
 7283 	doc: fix realpath index entry
 7284 	The 'readlink' node has '@findex realpath' in it. This results in
 7285 	    info doc/coreutils.info realpath
 7286 	incorrectly jumping to the 'readlink' node (instead of the 'realpath'
 7287 	node). Change it to @cindex instead.
 7288 
 7289 	* doc/coreutils.texi (readlink): Change '@findex realpath' to @cindex.
 7290 
 7291 2017-08-29  Assaf Gordon  <assafgordon@gmail.com>
 7292 
 7293 	realpath: improve usage description for --relative-{to,base}
 7294 	* src/realpath.c (usage): Explicitly say 'DIR' instead of 'FILE' for
 7295 	--relative-{to,base} parameters, to avoid giving the impression
 7296 	that regular files can be used as relative base.
 7297 	* doc/coreutils.texi (realpath): Same.
 7298 
 7299 2017-08-25  Pádraig Brady  <P@draigBrady.com>
 7300 
 7301 	ls: consistently quote symlink targets
 7302 	* src/ls.c (gobble_file): Disable the optimization to avoid quoting
 7303 	if the symlink target itself needs quoting.  This was introduced
 7304 	with the quoting alignment adjustments in v8.25-106-g01971c0
 7305 	* tests/ls/symlink-quote.sh: Add a test.
 7306 	* tests/local.mk: Reference the test.
 7307 	* NEWS: Mention the fix.
 7308 
 7309 2017-08-25  Pádraig Brady  <P@draigBrady.com>
 7310 
 7311 	tail: reinstate inotify use with FIFOs
 7312 	commit v8.27-44-g18f6b22 was too aggressive in
 7313 	only allowing inotify use with regular files. This will
 7314 	support responsive processing of `tail -f fifo | ...`
 7315 
 7316 	* src/tail.c (any_non_regular): Adjust to allow FIFOs
 7317 	since inotify supports these well.
 7318 	* tests/tail-2/inotify-only-regular.sh: Adjust comment.
 7319 
 7320 2017-08-19  Pádraig Brady  <P@draigBrady.com>
 7321 
 7322 	maint: avoid a syntax check failure
 7323 	* src/sort.c: Don't include stdio--.h as fopen() is no longer used.
 7324 
 7325 	tests: fix issues on alpine linux
 7326 	* tests/misc/seq-epipe.sh: Remove stale comment.
 7327 	* tests/misc/sort-debug-warn.sh: musl doesn't indicate a set_locale()
 7328 	failure with missing locales, so avoid a test portion in that case.
 7329 	* tests/misc/wc-files0.sh: Avoid a bug on older ash implementations.
 7330 	Addresses http://bugs.gnu.org/28054
 7331 
 7332 2017-08-17  Paul Eggert  <eggert@cs.ucla.edu>
 7333 
 7334 	ptx: fix some integer overflow bugs
 7335 	Problem reported by Lukas Zachar at:
 7336 	http://bugzilla.redhat.com/1482445
 7337 	* src/ptx.c (line_width, gap_size, maximum_word_length)
 7338 	(reference_max_width, half_line_width, before_max_width)
 7339 	(keyafter_max_width, truncation_string_length, compare_words)
 7340 	(compare_occurs, search_table, find_occurs_in_text, print_spaces)
 7341 	(fix_output_parameters, define_all_fields):
 7342 	Use ptrdiff_t, not int, for object offsets and sizes.
 7343 	(WORD, OCCURS): Use ptrdiff_t, not short int.
 7344 	(WORD_TABLE, number_of_occurs, generate_all_output):
 7345 	Prefer ptrdiff_t to size_t where either will do.
 7346 	(total_line_count, file_line_count, OCCURS, fix_output_parameters)
 7347 	(define_all_fields):
 7348 	Use intmax_t, not int, for line counts.
 7349 	(DELTA): Remove.  All uses changed.
 7350 	(OCCURS, find_occurs_in_text, fix_output_parameters):
 7351 	Use int, not size_t, for file indexes.
 7352 	(tail_truncation, before_truncation, keyafter_truncation)
 7353 	(head_truncation, search_table, define_all_fields)
 7354 	(generate_all_output):
 7355 	Use bool for booleans.
 7356 	(digest_word_file, find_occurs_in_text):
 7357 	Use x2nrealloc instead of checking for overflow by hand.
 7358 	(find_occurs_in_text, fix_output_parameters, define_all_fields):
 7359 	Omit unnecessary cast.
 7360 	(fix_output_parameters): Don’t assume integers fit in 11 digits.
 7361 	(fix_output_parameters, define_all_fields):
 7362 	Use sprintf return value rather than calling strlen.
 7363 	(define_all_fields): Do not rely on sprintf to generate a string
 7364 	that may contain more than INT_MAX bytes.
 7365 	(main): Use xstrtoimax, not xstrtoul.
 7366 	Use xnmalloc to catch integer overflow.
 7367 
 7368 	nohup: simplify by using fcntl
 7369 	* src/nohup.c: Do not include cloexec.h.
 7370 	(main): Use fcntl rather than dup + set_cloexec_flag.
 7371 
 7372 	sort: use pthread_sigmask, not sigprocmask
 7373 	POSIX says sigprocmask has unspecified behavior in a multithreaded
 7374 	program like ‘sort’.
 7375 	* src/sort.c (pthread_sigmask) [GNULIB_defined_pthread_functions]:
 7376 	New macro, for use when ‘sort’ is not multithreaded.
 7377 	(cs_enter, cs_leave): Use it.  Pass address, not value, as
 7378 	this is typically a tad faster.  All callers changed.
 7379 
 7380 	sort: minor cleanups
 7381 	* src/sort.c (move_fd): Rename from move_fd_or_die,
 7382 	since it no longer can die.
 7383 
 7384 	sort: file descriptor discipline
 7385 	Use O_CLOEXEC when creating file descriptors, so that subsidiary
 7386 	processes do not inherit file descriptors that they do not need.
 7387 	This is helpful for ‘sort’, as it is a multithreaded program that
 7388 	forks and execs.
 7389 	* bootstrap.conf (gnulib_modules): Add mkostemp, open, pipe2.
 7390 	* src/sort.c (create_temp_file): Open temporary file with O_CLOEXEC.
 7391 	(stream_open): Open the stream with O_CLOEXEC.
 7392 	(pipe_fork): Create the pipe with O_CLOEXEC.
 7393 	(check_output): Open the output file with O_CLOEXEC.
 7394 	(main): Use xfopen/xfclose to handle --files0-from, so that
 7395 	O_CLOEXEC is used properly.  This is simpler anyway.
 7396 	* tests/misc/sort-files0-from.pl: Adjust to change in diagnostic
 7397 	wording.
 7398 
 7399 	build: update gnulib submodule to latest
 7400 
 7401 2017-08-14  Pádraig Brady  <P@draigBrady.com>
 7402 
 7403 	kill: fix signal number to name lookup on AIX
 7404 	* src/operand2sig.c (operand2sig): AIX uses a different bit pattern
 7405 	in the returned status from the wait() functions and from shells.
 7406 	Therefore hardcode the selection of the lower bits of the number.
 7407 	* NEWS: Mention the fix.
 7408 
 7409 	build: use the appropriate single file include option with xlc
 7410 	* configure.ac: Set USE_XLC_INCLUDE when __xlc__ is defined.
 7411 	* src/local.mk: Use it to select the appropriate include option.
 7412 	Reported by Michael Felt.
 7413 
 7414 	tests: avoid false failures on AIX
 7415 	* tests/ln/sf-1.sh: Limit the symlink size to 1MiB
 7416 	to avoid memory exhaustion seen on NFS on AIX, giving:
 7417 	  + printf '%0*d' 4294967296 0
 7418 	  + ./tests/ln/sf-1.sh: line 38: printf: warning: 0: Result too large
 7419 	* tests/id/setgid.sh: Skip the test when the adjusted gid
 7420 	would equal 4294967295, as that's reserved on AIX.
 7421 	Reported by Michael Felt.
 7422 
 7423 	sort: handle musl locale differences in --debug reporting
 7424 	* src/sort.c (main): Don't assume hard_LC_COLLATE implies
 7425 	a successful setting of the locale as musl defaults to
 7426 	UTF8 when failing to set the specified locale.
 7427 	* tests/misc/sort-debug-warn.sh: Adjust for the now
 7428 	separated locale debug info and map the musl specific
 7429 	message back to the common case.
 7430 	Addresses https://bugs.gnu.org/28054
 7431 
 7432 	seq: produce consistent error messages upon write error
 7433 	* src/seq.c (io_error): Use the same error message as would
 7434 	be generated at exit time when closing the stdout stream.
 7435 	The inconsistency was added with commit v8.25-26-gc92585b.
 7436 	This was noticed due to an inconsistency in the expected
 7437 	error message generated by seq on musl libc.
 7438 	Addresses https://bugs.gnu.org/28054
 7439 
 7440 	tests: fix false failure with large printf formats
 7441 	* tests/misc/printf-surprise.sh: With musl libc the
 7442 	large printf format does succeed, outputting data.
 7443 	To avoid SIGPIPE being generated we ignore that signal
 7444 	and then handle the subsequent EPIPE error.
 7445 	Addresses https://bugs.gnu.org/28054
 7446 
 7447 2017-08-12  Jim Meyering  <meyering@fb.com>
 7448 
 7449 	build: adjust warning options to work with latest GCC
 7450 	* configure.ac: Disable some new warnings to avoid false positives.
 7451 	Building with warnings enabled and latest gcc would evoke build
 7452 	failure without these changes.  Disable the following in coreutils
 7453 	proper: -Wformat-overflow=2 -Wformat-truncation=2, and
 7454 	disable these for gnulib: -Wformat-truncation=2 -Wduplicated-branches
 7455 
 7456 	gnulib: update to latest and adjust gl/modules/tempname.diff
 7457 	* gnulib: Update to latest.
 7458 	* gl/modules/tempname.diff: This patch failed to apply.
 7459 	Adjust it to reflect removal of the secure_getenv dependency.
 7460 
 7461 	chroot: fix typo in preceding change: didn't compile
 7462 	* src/chroot.c (usage): Add backslashes.
 7463 
 7464 2017-08-10  Jim Meyering  <meyering@fb.com>
 7465 
 7466 	doc: correct technicality in chroot's --help output
 7467 	* src/chroot.c (usage): Use correct quoting in descriptive diagnostic.
 7468 	We would run `"$SHELL" -i`, not `${SHELL} -i`.
 7469 
 7470 2017-08-09  Assaf Gordon  <assafgordon@gmail.com>
 7471 
 7472 	doc: fix join example
 7473 	* doc/coreutils.texi (join invocation): Fix incorrect output in example.
 7474 	Reported by Phlosioneer in https://bugs.gnu.org/28014 .
 7475 
 7476 2017-08-04  Paul Eggert  <eggert@cs.ucla.edu>
 7477 
 7478 	build: update gnulib submodule to latest
 7479 
 7480 2017-08-03  Paul Eggert  <eggert@cs.ucla.edu>
 7481 
 7482 	copy: more-accurate warning about destruction
 7483 	* src/copy.c (copy_internal):
 7484 	* tests/cp/backup-is-src.sh, tests/mv/backup-is-src.sh:
 7485 	Say "might destroy", not "would destroy".
 7486 
 7487 2017-08-03  Pádraig Brady  <P@draigBrady.com>
 7488 
 7489 	maint: avoid a syntax-check failure
 7490 	* src/shred.c (wipename): As per the comment, the arguments
 7491 	to error() are sufficiently quoted, so split the call over
 7492 	multiple lines to avoid the syntax-check.
 7493 
 7494 2017-08-02  Paul Eggert  <eggert@cs.ucla.edu>
 7495 
 7496 	build: update gnulib submodule to latest
 7497 
 7498 2017-08-01  Paul Eggert  <eggert@cs.ucla.edu>
 7499 
 7500 	copy: go back to failing 'cp --backup a~ a'
 7501 	Suggested by Kamil Dudka in:
 7502 	http://lists.gnu.org/archive/html/coreutils/2017-07/msg00072.html
 7503 	* NEWS: Document the changed nature of the fix.
 7504 	* doc/coreutils.texi, tests/cp/backup-is-src.sh:
 7505 	* tests/mv/backup-is-src.sh: Revert previous change.
 7506 	* src/copy.c (source_is_dst_backup): New function.
 7507 	(copy_internal): Use it.  Fail instead of falling back on numbered
 7508 	backups when it looks like the backup will overwrite the source.
 7509 	Although this reintroduces a race, it's more compatible with
 7510 	previous behavior.
 7511 
 7512 2017-07-31  Paul Eggert  <eggert@cs.ucla.edu>
 7513 
 7514 	copy: sanity-check --suffix
 7515 	* src/cp.c, src/install.c, src/ln.c, src/mv.c (main):
 7516 	Use set_simple_backup_suffix, to sanity-check the user-supplied
 7517 	backup suffix.
 7518 
 7519 	copy: make backup files more reliably
 7520 	* NEWS, doc/coreutils.texi (Backup options): Document the change.
 7521 	* bootstrap.conf (gnulib_modules): Add backup-rename.
 7522 	* src/copy.c (copy_internal): Silently switch to numbered backups
 7523 	if a simple backup might lose data.  Use backup_file_rename
 7524 	to avoid races with numbered backups.
 7525 	* tests/cp/backup-is-src.sh, tests/mv/backup-is-src.sh:
 7526 	Adjust to match new behavior.
 7527 
 7528 	shred: avoid rename race
 7529 	Use renameat2 to avoid a rename race condition, on recent-enough
 7530 	GNU/Linux.
 7531 	* bootstrap.conf (gnulib_modules): Add renameat2.
 7532 	* src/shred.c: Include renameat2.h.
 7533 	(wipename): Use renameat2 instead of rename.
 7534 
 7535 	build: update gnulib submodule to latest
 7536 
 7537 2017-07-25  Jim Meyering  <meyering@fb.com>
 7538 
 7539 	maint: fix grammar in a shred.c comment
 7540 	* src/shred.c: Remove spurious "to" in an old comment.
 7541 
 7542 2017-07-23  Pádraig Brady  <P@draigBrady.com>
 7543 
 7544 	maint: fix recent syntax-check failures
 7545 	* .gitignore: Add /lib/utime.h from the recent gnulib update.
 7546 	* src/nproc.c (usage): Adjust spacing to placate help2man.
 7547 
 7548 	shred: remove redundant zeroing of freed memory
 7549 	* src/shred.c (dopass): shred used to read the input file,
 7550 	and so needed to ensure internal memory was cleared.
 7551 	This is no longer the case since SH-UTILS-1_16f-260-gf381610
 7552 	so avoid this redundant clearing.
 7553 	(do_wipefd): Likewise.
 7554 	* NEWS: Remove the recent mention of this issue.
 7555 
 7556 	maint: resync with blake2 upstream
 7557 	* src/blake2/blake2-impl.h: Don't use the equivalent explicit_bzero().
 7558 
 7559 	tests: avoid a false failure on AIX
 7560 	* tests/misc/sync.sh: Normalize the error messages
 7561 	when syncing a non read/write directory, as AIX
 7562 	gives the "Is a directory" error.
 7563 	Also ensure that sync(1) returns an error for this
 7564 	case on all systems.
 7565 
 7566 2017-07-20  Paul Eggert  <eggert@cs.ucla.edu>
 7567 
 7568 	shred: use explicit_bzero
 7569 	* NEWS: Document this.
 7570 	* bootstrap.conf (gnulib_modules): Add explicit_bzero.
 7571 	* gl/lib/randint.c (randint_free):
 7572 	* gl/lib/randread.c (randread_free):
 7573 	* src/blake2/blake2-impl.h (secure_zero_memory):
 7574 	* src/shred.c (dopass, do_wipefd):
 7575 	Prefer explicit_bzero to memset when erasing secrets.
 7576 
 7577 	build: update gnulib submodule to latest
 7578 
 7579 2017-07-10  Andreas Schwab  <schwab@linux-m68k.org>
 7580 
 7581 	nproc: fix indentation of usage output
 7582 	* src/nproc.c (usage): Align output.
 7583 
 7584 2017-07-10  Jim Meyering  <meyering@fb.com>
 7585 
 7586 	groups: do not exit early
 7587 	Most programs take care to operate on all command-line-specified
 7588 	operands before exiting.  That is an important feature that allows
 7589 	to identify all problems with the first run.  However, groups would
 7590 	exit upon the first problematic user name.
 7591 	Bug introduced via commit v6.10-56-g167b8025ac.
 7592 	* src/groups.c (main): Do not exit immediately upon error.
 7593 	* tests/misc/groups-process-all.sh: New file. Test for this.
 7594 	* tests/local.mk (all_tests): Add it.
 7595 	* NEWS (Bug fixes): Mention this.
 7596 
 7597 2017-07-08  Jim Meyering  <jim@meyering.net>
 7598 
 7599 	tests: groups-dash.sh: avoid false failure
 7600 	* tests/misc/groups-dash.sh: Avoid false failure on a system for which
 7601 	"none" is a valid user name.  The first invocation would succeed, and
 7602 	the second would fail with "groups: ‘--’: no such user".
 7603 	Use a user name that cannot exist.
 7604 
 7605 	doc: tweak wording
 7606 	* NEWS (Bug fixes): Tweak wording of the mv/cp-vs-symlink-ownership
 7607 	entry and the one about df.
 7608 
 7609 2017-06-28  Assaf Gordon  <assafgordon@gmail.com>
 7610 
 7611 	expr: add multibyte support
 7612 	Discussed in https://bugs.gnu.org/26779 .
 7613 
 7614 	* NEWS: Mention the improvement.
 7615 	* bootstrap.conf: Add gnulib modules mbslen,mbschr.
 7616 	* src/expr.c (mbs_logical_substr): New function to return a substring
 7617 	based on logical character positions (instead of bytes).
 7618 	(mbs_logical_cspn): Similar to strcspn/mbscspn, but returns number of
 7619 	logical characters instead of byte offset.
 7620 	(mbs_offset_to_chars): New function to return number of logical
 7621 	characters fitting in a given byte offset.
 7622 	(docolon): Report matched logical characters instead of bytes.
 7623 	(eval6): For length/substr/index operations, use logical characters
 7624 	instead of bytes by calling the above new functions.
 7625 	* tests/misc/expr.pl: Repeat all tests with non-C locale to detect any
 7626 	regressions.
 7627 	* tests/misc/expr-multibyte.pl: New tests with multibyte input.
 7628 	* tests/local.mk: Add new test file.
 7629 
 7630 2017-06-21  Jim Meyering  <meyering@fb.com>
 7631 
 7632 	maint: avoid spurious "make distcheck" failure
 7633 	When the generated file, doc/constants.texi, happens to be older than
 7634 	doc/coreutils.info, it will not be updated until/unless its generated
 7635 	contents change.  This is due to way that rule is careful to update
 7636 	the file, to avoid provoking a pointless rerunning of makeinfo.
 7637 
 7638 	Note that this does not happen when one first runs "make distclean",
 7639 	as recommended in README-release.  However, I sometimes run it as
 7640 	a more-rigorous "make check", and shouldn't have to manually run
 7641 	"make distclean" first, in that case.
 7642 
 7643 	Before this change, one could reproduce the failure by running
 7644 	`touch -dyesterday doc/constants.texi && make distcheck`.  It would
 7645 	fail with "makeinfo: could not open ../../doc/coreutils.info-t
 7646 	for writing: Permission denied"
 7647 	* Makefile.am (dist-hook): Touch the two generated files, so that
 7648 	they cannot be out of date wrt doc/coreutils.texi.
 7649 
 7650 2017-06-17  Pádraig Brady  <P@draigBrady.com>
 7651 
 7652 	maint: use C99 for loop initial declarations where possible
 7653 	This results in a net reduction of about 120 lines.
 7654 
 7655 	tail: only use inotify with regular files
 7656 	* src/tail.c (any_non_regular): A new function to check passed files.
 7657 	(main): Use the above to skip inotify if any non regular files passed
 7658 	like /dev/tty or /dev/ttyUSB0 etc.
 7659 	* tests/tail-2/inotify-only-regular.sh: A new test.
 7660 	* tests/local.mk: Reference the new test.
 7661 	* NEWS: Mention the bug fix.
 7662 	Fixes http://bugs.gnu.org/21265 and http://bugs.gnu.org/27368
 7663 
 7664 	tail: with -f don't warn if doing a blocking read of a tty
 7665 	* src/tail.c: (main): Only issue the warning about -f being
 7666 	ineffective when we're not going into simple blocking mode.
 7667 	* tests/tail-2/follow-stdin.sh: Ensure the warning is output correctly.
 7668 	Fixes http://bugs.gnu.org/27368
 7669 
 7670 2017-06-11  Pádraig Brady  <P@draigBrady.com>
 7671 
 7672 	tail: exit promptly when output no longer writable
 7673 	This will support use cases like:
 7674 
 7675 	  tail -f file.log | grep -q trigger &&
 7676 	  process_immediately
 7677 
 7678 	* src/tail.c (check_output_alive): A new function that
 7679 	uses select on fifos or pipes to detect if they're broken.
 7680 	(tail_forever): Call check_output_alive() periodically.
 7681 	(tail_forever_inotify): Merge the select() call from
 7682 	check_output_alive() into the select() originally present
 7683 	for the --pid case, and adjust accordingly.
 7684 	* tests/tail-2/pipe-f.sh: Add test cases.
 7685 	* NEWS: Mention the improvement.
 7686 
 7687 2017-06-11  Jim Meyering  <meyering@fb.com>
 7688 
 7689 	maint: update to work with GCC7's -Werror=implicit-fallthrough=5
 7690 	* src/system.h (FALLTHROUGH): Define.
 7691 	* src/cp.c (main): Use new FALLTHROUGH macro in place of comments.
 7692 	* src/basename.c (main): Likewise.
 7693 	* src/dircolors.c (append_quoted): Likewise.
 7694 	* src/echo.c (main): Likewise.
 7695 	* src/fold.c (main): Likewise.
 7696 	* src/join.c (main): Likewise.
 7697 	* src/kill.c (main): Likewise.
 7698 	* src/ls.c (get_funky_string, gobble_file): Likewise.
 7699 	* src/sort.c (parse_field_count, main): Likewise.
 7700 	* src/stat.c (print_it): Likewise.
 7701 	* src/tail.c (parse_obsolete_option): Likewise.
 7702 	* src/test.c (posixtest): Likewise.
 7703 	* src/wc.c (wc): Likewise.
 7704 	* src/who.c (main): Likewise.
 7705 
 7706 2017-06-07  Pádraig Brady  <P@draigBrady.com>
 7707 
 7708 	tail: with --pid, ensure all inotify events are processed
 7709 	* NEWS: Mention the bug fix.
 7710 	* src/tail.c (tail_forever_inotify): With --pid, avoid waiting
 7711 	for new events if there are still events to process.
 7712 	* tests/tail-2/inotify-dir-recreate.sh: Adjust to trigger.
 7713 
 7714 	tests: fix issues with recently added tail test
 7715 	* tests/tail-2/inotify-dir-recreate.sh: Skip when
 7716 	inotify is not usable.  Also remove a bash specific &> construct.
 7717 
 7718 2017-06-03  Pádraig Brady  <P@draigBrady.com>
 7719 
 7720 	copy: don't fail when unable to chown symlinks
 7721 	* src/copy.c (copy_internal): Honor the x->require_preserve flag
 7722 	for symlinks as we do for ordinary files, so we don't exit with
 7723 	failure upon failure to chown a symbolic link.
 7724 	* NEWS: Mention the bug fix.
 7725 
 7726 2017-05-29  Sebastian Kisela  <skisela@redhat.com>
 7727 
 7728 	doc: mention `setpriv --no-new-privs` feature in runcon info
 7729 	* doc/coreutils.texi (runcon invocation): Mention setpriv usage.
 7730 	Discussed at https://bugzilla.redhat.com/1360903
 7731 
 7732 2017-05-18  Pádraig Brady  <P@draigBrady.com>
 7733 
 7734 	mv: distinguish copy and rename operations with --verbose
 7735 	* src/copy.c (copy_internal): In x->move_mode distinguish
 7736 	whether we're copying, creating directory, or renaming.
 7737 	* tests/mv/backup-dir.sh: Adjust to new output.
 7738 	* tests/mv/mv-n.sh: Likewise.
 7739 	* tests/mv/mv-special-1.sh: Likewise.
 7740 	* NEWS: Mention the improvement.
 7741 	Fixes http://bugs.gnu.org/26971
 7742 
 7743 2017-05-11  Prateek saxena  <prateeksaxena2@gmail.com>
 7744 
 7745 	uptime: remove inconsistent AM/PM from current time
 7746 	* src/uptime.c (main): 00-23 was always used for the hour component
 7747 	of the current time, so remove the AM/PM output (which was only
 7748 	present in some locales anyway).  Also add seconds to the time
 7749 	to be more consistent with the usual procps-ng uptime implementation
 7750 	on GNU/Linux.
 7751 	* NEWS: Mention the fix.
 7752 	Fixes http://bugs.gnu.org/26783
 7753 
 7754 2017-05-04  Pádraig Brady  <P@draigBrady.com>
 7755 
 7756 	maint: fix various typos in recent commits
 7757 	* NEWS: Grammar fixes.
 7758 	* HACKING: Likewise.
 7759 
 7760 2017-05-04  Jaak Ristioja  <jaak.ristioja@cyber.ee>
 7761 
 7762 	doc: Fixed typo in timeout man page
 7763 	* man/timeout.x: Correct spelling of "currently".
 7764 	Fixes http://bugs.gnu.org/26762
 7765 
 7766 2017-04-30  Pádraig Brady  <P@draigBrady.com>
 7767 
 7768 	doc: update the instructions for generating a coverage report
 7769 	* HACKING: Change from explicit instructions to using gnulib
 7770 	provided coverage testing targets.  Also include instructions
 7771 	for adding root only tests to the report.
 7772 	Fixes http://bugs.gnu.org/26709
 7773 
 7774 2017-04-27  Paul Eggert  <eggert@cs.ucla.edu>
 7775 
 7776 	dd: simplify translator’s jobs
 7777 	* src/dd.c (print_xfer_stats): Format the SI units directly,
 7778 	without translating them, to simplify the translators’ jobs.
 7779 	See Bug#26621.
 7780 
 7781 2017-04-27  Pádraig Brady  <P@draigBrady.com>
 7782 
 7783 	date,touch: test and document large TZ security issue
 7784 	Add a test for CVE-2017-7476 which was fixed in gnulib at:
 7785 	http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=94e01571
 7786 
 7787 	* tests/misc/date-tz.sh: Add a new test which overwrites enough
 7788 	of the heap to trigger a segfault, even without ASAN enabled.
 7789 	* tests/local.mk: Reference the new test.
 7790 	* NEWS: Mention the bug fix.
 7791 
 7792 2017-04-27  Pádraig Brady  <P@draigBrady.com>
 7793 
 7794 	build: update gnulib submodule to latest
 7795 	* .gitignore: Add new entry as indicated by `make syntax-check`.
 7796 
 7797 2017-04-24  Paul Eggert  <eggert@cs.ucla.edu>
 7798 
 7799 	dd: status=progress outputs "6 s", not "6.00001 s"
 7800 	Problem reported by Benno Schulenberg (Bug#26621).
 7801 	* NEWS: Document this.
 7802 	* src/dd.c (print_xfer_stats): With status=progress,
 7803 	format times with %.0f rather than %g.  Improve
 7804 	translator comments.
 7805 
 7806 2017-04-22  Paul Eggert  <eggert@cs.ucla.edu>
 7807 
 7808 	build: update gnulib submodule to latest
 7809 
 7810 	maint: remove unused functions and constants
 7811 	These were found by clang.
 7812 	* gl/lib/rand-isaac.c (min):
 7813 	* gl/lib/randint.c (shift_right):
 7814 	* src/md5sum.c (algorithm):
 7815 	Remove; unused.
 7816 
 7817 	date: adjust to gnulib parse-datetime changes
 7818 	* doc/coreutils.texi (Options for date): Capitalize a sentence.
 7819 	* tests/misc/date-debug.sh: Adjust --debug output to match
 7820 	recent changes to Gnulib’s parse-datetime module.
 7821 
 7822 	build: update gnulib submodule to latest
 7823 	* gl/modules/tempname.diff: Update to match current Gnulib.
 7824 
 7825 2017-04-18  Bogdan Drozdowski  <bogdandr@op.pl>
 7826 
 7827 	shred: fix invalid pattern generation for certain sizes
 7828 	* src/shred.c (fillpattern): Fix the "off by one" issue when
 7829 	testing whether we have enough space to copy the already
 7830 	written portion of the buffer to the remainder of the buffer.
 7831 	Specifically for buffer sizes that are (3*(2^x))+1, i.e. 7,13,...
 7832 	we both use an uninitialized byte and invoke undefined
 7833 	behavior in memcpy() operation on overlapping memory regions.
 7834 	* tests/misc/shred-passes.sh: Add an invocation that will
 7835 	trigger either valgrind UMR, or ASAN like:
 7836 	  ERROR: AddressSanitizer: memcpy-param-overlap: memory ranges
 7837 	  #1 0x403065 in fillpattern src/shred.c:293
 7838 	A direct test is awkward due to the random writes surrounding
 7839 	the problematic pattern writes.
 7840 	Fixes http://bugs.gnu.org/26545
 7841 
 7842 2017-04-17  Bo Rydberg  <bolry@hotmail.com>
 7843 
 7844 	doc: fix awk example for getting penultimate field
 7845 	* doc/coreutils.texi (cut invocation): Add required brackets.
 7846 	Fixes http://bugs.gnu.org/26519
 7847 
 7848 2017-04-06  Sebastian Kisela  <skisela@redhat.com>
 7849 
 7850 	tail: revert to polling if a followed directory is replaced
 7851 	* src/tail.c (tail_forever_inotify): Add the IN_DELETE_SELF flag when
 7852 	creating watch for the parent directory.  After the parent directory
 7853 	is removed, an event is caught and then we switch from inotify to
 7854 	polling mode.  Till now, inotify has always frozen because it waited for
 7855 	an event from a watched dir, which has been already deleted and was not
 7856 	added again.
 7857 	* tests/tail-2/inotify-dir-recreate.sh: Add a test case.
 7858 	* tests/local.mk: Reference the new test.
 7859 	* NEWS: Mention the bug fix.
 7860 	Fixes http://bugs.gnu.org/26363
 7861 	Reported at https://bugzilla.redhat.com/1283760
 7862 
 7863 2017-04-06  Pádraig Brady  <P@draigBrady.com>
 7864 
 7865 	maint: fix syntax-check issues in previous tty commit
 7866 	* src/tty.c: Avoid EXIT_FAILURE to be more descriptive
 7867 	and to placate sc_some_programs_must_avoid_exit_failure.
 7868 
 7869 2017-04-05  Paul Eggert  <eggert@cs.ucla.edu>
 7870 
 7871 	tty: handle misconfigured namespaces
 7872 	On some platforms, isatty succeeds but ttyname fails.
 7873 	POSIX does not seem to allow this, but there it is.
 7874 	Problem reported by Christian Brauner (Bug#26371).
 7875 	While we’re at it, check for errors more carefully and return a
 7876 	new exit status 4 if stdin is closed or a similar error occurs.
 7877 	* doc/coreutils.texi (tty invocation): Document new behavior.
 7878 	* init.cfg (stderr_fileno_):
 7879 	Don't assume have_input_tty is not in the environment.
 7880 	* src/tty.c (TTY_STDIN_ERROR): New constant.
 7881 	(main): Exit with nonzero status if there is a usage error,
 7882 	like other coreutils programs.
 7883 	Check for error in getting stdin type.
 7884 	* tests/misc/tty.sh: New file.
 7885 	* tests/local.mk (all_tests): Add it.
 7886 
 7887 2017-04-03  Pádraig Brady  <P@draigBrady.com>
 7888 
 7889 	doc: refactor and update expand and unexpand --help
 7890 	* src/expand-common.c (emit_tab_list_info): A new function to
 7891 	output the extended info on --tab=LIST, including the new
 7892 	'+' and '/' prefixes.
 7893 	* src/expand-common.h: Declare the above.
 7894 	* src/expand.c (usage:): Call emit_tab_list_info and
 7895 	match alignment with that used in unexpand --help.
 7896 	* src/unexpand.c (usage): Likewise.
 7897 
 7898 2017-04-03  Jacob Keller  <jacob.e.keller@intel.com>
 7899 
 7900 	expand,unexpand: add support for incremental tab stops
 7901 	Support --tabs="1,+8" which is equivalent to --tabs="1,9,17,..."
 7902 	useful for viewing unified diff output with its 1 character
 7903 	gutter for example.
 7904 
 7905 	* doc/coreutils.texi ({expand,unexpand} invocation): Document,
 7906 	using diff processing as the example.
 7907 	* src/expand-common.c (set_increment_size): Update the new
 7908 	increment_size global.
 7909 	(parse_tab_stops): Handle the new '+' prefix.
 7910 	(finalize_tab_stops): Verify both '+' and '/' prefixes
 7911 	are not used together.
 7912 	* tests/misc/expand.pl: Add test cases.
 7913 	* NEWS: Mention the new feature.
 7914 
 7915 2017-03-30  Paul Eggert  <eggert@cs.ucla.edu>
 7916 
 7917 	sort: update comment
 7918 	* src/sort.c: Update identifiers in comment.
 7919 
 7920 2017-03-30  Chris Davies  <chris@roaima.co.uk>
 7921 
 7922 	doc: clarify in dd man page that bs= overrides [io]bs=
 7923 	* src/dd.c (usage): Add the extra info.
 7924 	Reported in https://bugs.debian.org/859021
 7925 
 7926 2017-03-28  Ludovic Courtès  <ludo@gnu.org>
 7927 
 7928 	tests: avoid false ulimit failure on some systems
 7929 	* tests/misc/cut-huge-range.sh: On some systems returns_ may
 7930 	use more memory, so incorporate that in the determination
 7931 	of the ulimit value to use.  Noticed on ARMv7 with bash-4.4.12,
 7932 	and x86_64 with bash-4.2.37.
 7933 	Fixes http://bugs.gnu.org/26253
 7934 
 7935 2017-03-28  Pádraig Brady  <P@draigBrady.com>
 7936 
 7937 	maint: avoid syntax check failure with wrapped returns_
 7938 	* cfg.mk (sc_prohibit_env_returns): Allow wrapped calls to
 7939 	return_ of the form: `wrapper_ returns_ ...` which is needed
 7940 	with the following commit.
 7941 
 7942 2017-03-28  Michael Heimpold  <mhei@heimpold.de>
 7943 
 7944 	split: add new --hex-suffixes option
 7945 	* doc/coreutils.texi (split invocation): Document the new option.
 7946 	* src/split.c (usage): Likewise.
 7947 	(main): Process the new option much like --numeric-suffixes,
 7948 	but with an adjusted alphabet.
 7949 	* tests/split/numeric.sh: Refactor to support --hex mode.
 7950 	* NEWS: Mention the new feature.
 7951 
 7952 2017-03-28  Pádraig Brady  <P@draigBrady.com>
 7953 
 7954 	md5sum,b2sum,sha*sum: don't erroneously trigger BSD reversed mode
 7955 	* src/md5sum.c (split_3): Verify hex digits internally before
 7956 	triggering the global bsd_reversed mode flag.
 7957 	(bsd_split_3): Likewise.
 7958 	* tests/misc/md5sum-bsd.sh: Add a test case.
 7959 	* NEWS: Mention the bug fix.
 7960 	Fixes http://bugs.gnu.org/26263
 7961 
 7962 2017-03-27  Philipp Thomas  <pth@suse.de>
 7963 
 7964 	df: avoid querying excluded file systems
 7965 	* src/df.c (filter_mount_list): Avoid stat() on
 7966 	explicitly excluded file systems, which is especially
 7967 	significant in cases like `-x nfs` which may hang.
 7968 	* NEWS: Mention the bug fix.
 7969 
 7970 2017-03-26  Pádraig Brady  <P@draigBrady.com>
 7971 
 7972 	maint: avoid a static analysis warning in expand-common
 7973 	* src/expand-common.c (next_file): We're dependent on calling
 7974 	this function with NULL to initialize things appropriately.
 7975 	So enforce this with assert(), which avoids a warning from
 7976 	clang-anaylzer.
 7977 
 7978 	split: process more efficiently when filters exit early
 7979 	* src/split.c (bytes_split): Don't write to an existing filter
 7980 	if it has exited.  When filters exit early, skip input data if
 7981 	possible.  Refactor out 2 redundant variables.
 7982 	* tests/split/filter.sh: Improve test coverage given the
 7983 	new more efficient processing.  Also use a 10TB file to
 7984 	expand the file systems tested on.
 7985 
 7986 2017-03-26  Pádraig Brady  <P@draigBrady.com>
 7987 
 7988 	split: ensure input is processed when filters exit early
 7989 	commit v8.25-4-g62e7af0 introduced the issue as it
 7990 	broke out of the processing loop irrespective of
 7991 	the value of new_file_flag which was used to indicate
 7992 	a finite number of filters or not.
 7993 
 7994 	For example, this ran forever (as it should):
 7995 	  $ yes | split --filter="head -c1 >/dev/null" -b 1000
 7996 	However this exited immediately due to EPIPE being propagated
 7997 	back through cwrite and the loop not considering new filters:
 7998 	  $ yes | split --filter="head -c1 >/dev/null" -b 100000
 7999 
 8000 	Similarly processing would exit early for a bounded number of
 8001 	output files, resulting in empty data sent to all but the first:
 8002 	  $ truncate -s10T big.in
 8003 	  $ split --filter='head -c1 >$FILE' -n 2 big.in
 8004 	  $ echo $(stat -c%s x??)
 8005 	  1 0
 8006 
 8007 	I was alerted to this code by clang-analyzer,
 8008 	which indicated dead assigments, which is often
 8009 	an indication of code that hasn't considered all cases.
 8010 
 8011 	* src/split.c (bytes_split): Change the last condition in
 8012 	the processing loop to also consider the number of files
 8013 	before breaking out of the processing loop.
 8014 	* tests/split/filter.sh: Add a test case.
 8015 	* NEWS: Mention the bug fix.
 8016 
 8017 2017-03-11  Pádraig Brady  <P@draigBrady.com>
 8018 
 8019 	tests: avoid a false failure on OS X 10.5.8
 8020 	* tests/misc/sort-debug-keys.sh: Disparate LC_CTYPE and LC_MESSAGES
 8021 	are not supported, with the result LC_MESSAGES=C is used throughout.
 8022 	Therefore just set LC_ALL in the test, and normalize the message
 8023 	variants with sed.
 8024 	Reported and tested by J Rogowsky.
 8025 
 8026 	build: fix missing renameat() on OS X 10.5.8
 8027 	* bootstrap.conf: Depend on renameat.
 8028 	Reported and tested by J Rogowsky.
 8029 	Fixes http://bugs.gnu.org/26044
 8030 
 8031 2017-03-10  Paul Eggert  <eggert@cs.ucla.edu>
 8032 
 8033 	tests: port to tzdb-2017a
 8034 	Problem reported by Bernhard Voelker in:
 8035 	http://lists.gnu.org/archive/html/coreutils/2017-03/msg00026.html
 8036 	* tests/misc/date-debug.sh: Port test to tzdb 2017a,
 8037 	and future-proof the America/Belize test.
 8038 
 8039 2017-03-09  Pádraig Brady  <P@draigBrady.com>
 8040 
 8041 	build: for factor use C in more cases for arm64 and ppc64
 8042 	* src/longlong.h: Sync from gmp repo incorporating:
 8043 	Use asm-free umul_ppmm() on arm64 and ppc64.
 8044 
 8045 	doc: rearrange a recent bug entry to an improvement in NEWS
 8046 	* NEWS: The stat,tail change was an improvement, not a bug fix.
 8047 	* cfg.mk [old_NEWS_hash]: update with `make update-NEWS-hash`.
 8048 
 8049 	maint: post-release administrivia
 8050 	* NEWS: Add header line for next release.
 8051 	* .prev-version: Record previous version.
 8052 	* cfg.mk (old_NEWS_hash): Auto-update.
 8053 
 8054 	version 8.27
 8055 	* NEWS: Record release date.
 8056 
 8057 
 8058 See the source repo for older entries