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"]