Opened 3 hours ago

#5639 new enhancement

diffutils-3.11

Reported by: Bruce Dubbs Owned by: lfs-book
Priority: normal Milestone: 12.3
Component: Book Version: git
Severity: normal Keywords:
Cc:

Description

New minor version.

Noteworthy changes in release 3.11 (2025-02-02) [stable]

Improvements

Programs now quote file names more consistently in diagnostics. For example; "cmp 'none of' /etc/passwd" now might output "cmp: EOF on ‘none of’ which is empty" instead of outputting "cmp: EOF on none of which is empty". In diagnostic messages that traditionally omit quotes and where backward compatibility seems to be important, programs continue to omit quotes unless a file name contains shell metacharacters, in which case programs use shell quoting. For example, although diff continues to output "Only in a: b" as before for most file names, it now outputs "Only in 'a: b': 'c: d'" instead of "Only in a: b: c: d" because the file names 'a: b' and 'c: d' contain spaces. For compatibility with previous practice, diff -c and -u headers continue to quote for C rather than for the shell.

diff now outputs more information when symbolic links differ, e.g., "Symbolic links ‘d/f’ -> ‘a’ and ‘e/f’ -> ‘b’ differ", not just "Symbolic links d/f and e/f differ". Special files too, e.g., "Character special files ‘d/f’ (1, 3) and ‘e/f’ (5, 0) differ", not "File d/f is a character special file while file e/f is a character special file".

diff's --ignore-case (-i) and --ignore-file-name-case options now support multi-byte characters. For example, they treat Greek capital Δ like small δ when input uses UTF-8.

diff now supports multi-byte characters when treating white space. In options like --expand-tabs (-t), --ignore-space-change (-b) and --ignore-tab-expansion (-E), diff now recognizes non-ASCII space characters and counts columns for non-ASCII characters.

Bug fixes

cmp -bl no longer omits "M-" from bytes with the high bit set in single-byte locales like en_US.iso8859-1. This fix causes the behavior to be locale independent, and to be the same as the longstanding behavior in the C locale and in locales using UTF-8. [bug introduced in 2.9]

cmp -i N and -n N no longer fail merely because N is enormous. [bug present since "the beginning"]

cmp -s no longer mishandles /proc files, for which the Linux kernel reports a zero size even when nonempty. For example, the following shell command now outputs nothing, as it should:

  cp /proc/cmdline t; cmp -s /proc/cmdline t || echo files differ

[bug present since "the beginning"]

diff -E no longer mishandles some input lines containing '\a', '\b', '\f', '\r', '\v', or '\0'. [bug present since 2.8]

diff -ly no longer mishandles non-ASCII input. [introduced in 2.9]

diff - A/B now works correctly when standard input is a directory, by reading a file named B in that directory. [bug present since "the beginning"]

diff no longer suffers from race conditions in some cases when comparing files in a mutating file system. [bug present since "the beginning"]

Change History (0)

Note: See TracTickets for help on using tickets.