diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2023-02-10 15:33:40 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2023-02-10 15:44:38 -0800 |
commit | ba08fbbb0ca5da455bf695236c57bc50e7faed50 (patch) | |
tree | 7234a5fd613a1b57912577c352c4867f5b49f39f | |
parent | 7e7ef707d6d32c755bbc7193151d87539c41978a (diff) | |
download | diffutils-ba08fbbb0ca5da455bf695236c57bc50e7faed50.tar.gz |
diff: fix bug where -D does not work
Problem reported by Robert Webb (bug#61193).
* NEWS: Mention this.
* src/diff.c (main): Omit stray ‘sizeof’.
* tests/ifdef: New test.
* tests/Makefile.am (TESTS): Add it.
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | src/diff.c | 2 | ||||
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rwxr-xr-x | tests/ifdef | 37 |
4 files changed, 44 insertions, 1 deletions
@@ -2,6 +2,11 @@ GNU diffutils NEWS -*- outline -*- * Noteworthy changes in release ?.? (????-??-??) [?] +** Bug fixes + + diff -D no longer fails to output #ifndef lines. + [bug#61193 introduced in 3.9] + * Noteworthy changes in release 3.9 (2023-01-15) [stable] @@ -416,7 +416,7 @@ main (int argc, char **argv) char *base = b; int changes = 0; - for (i = 0; i < sizeof sizeof C_ifdef_group_formats; i++) + for (i = 0; i < sizeof C_ifdef_group_formats; i++) { char ch = C_ifdef_group_formats[i]; switch (ch) diff --git a/tests/Makefile.am b/tests/Makefile.am index d98df82..624192d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -10,6 +10,7 @@ TESTS = \ diff3 \ excess-slash \ help-version \ + ifdef \ invalid-re \ function-line-vs-leading-space \ ignore-matching-lines \ diff --git a/tests/ifdef b/tests/ifdef new file mode 100755 index 0000000..d3b05dd --- /dev/null +++ b/tests/ifdef @@ -0,0 +1,37 @@ +#!/bin/sh +# --ifdef + +# Bug reported by Robert Webb in <http://bugs.gnu.org/61193>. + +. "${srcdir=.}/init.sh"; path_prepend_ ../src + +fail=0 + +cat <<'EOF' >a +1 +2 +3 +4 +5 +EOF + +cat <<'EOF' >b +1 +4 +5 +EOF + +cat <<'EOF' >exp +1 +#ifndef ZZZ +2 +3 +#endif /* ! ZZZ */ +4 +5 +EOF + +returns_ 1 diff -D ZZZ a b >out 2>err || fail=1 +compare exp out || fail=1 + +Exit $fail |