- Fixed compilation problems on C99 compilers due to checking incorrect value
of the __STDC_VERSION__ macro.
- Fixed compilation problems on GCC 10, due to multiple definition of the
- Brought up-to-date with newer ICU, including move to pkg-config instead of
- The --diff-input option now also has short option name -u.
- Parsing multiple short options passed as a single string (e.g. -Pc for
-P -c) works again.
- Diff input correctly parses the input when used in non-unicode locales.
- Correctly identify the second input if that is stdin.
- A new config file with profiles has been introduced. Profile selection is
done with the --profile option. Disabling the default profile can be done
thorugh the --no-profile option.
- Display the version with the --version flag.
- The flag --less-mode was advertised, but the actual accepted name was
--less. This has been changed to accept --less-mode and emit a warning on
the old flag.
Fix typo in configure script which prevents it from running.
- Fix build against glibc 2.16 and newer.
- Added correct breaking for Unicode Regional Indicators.
Fix incorrect release of 2.0.6, which omitted changes from the 2.0.5
- Fix incorrect line numbering caused by optimized printing of differences
preceeded in both files by whitespace containing newlines.
- fix a bug in the handling of context, which caused incorrect diffs to be
printed. In some cases text was reported both as removed and as common.
- fix a memory allocation bug, which would be triggered by large values
for the -m option.
Updated translations for German (incomplete), French (incomplete) and
- add support for DESTDIR in the Makefile install target.
- fix build error on --without-unicode compiles.
- escape parsing for unknown escapes (like for example \;) would result
in incorrect strings.
- when the space character is not considered whitespace, dwdiff will no
longer use it to make changes more readable.
- the token file no longer uses a newline character as separator, but a nul
character, making reparsing easier and the whole of dwdiff more robust.
- dwdiff is no longer a front-end for the diff program, but includes its
own diff-algorithm implementation (taken from GNU diff). This makes
dwdiff much faster, and ensures that results are the same across all
- when two additions are made with a single common token in between, dwdiff
incorrectly reported the common token as replaced by the two additions
and the common token.
- when using the --diff-input option, in some cases dwdiff would report
changes spanning multiple diff sections.
- an option for reading the output of diff (in Unified Diff) format was
added (--diff-input) which can be used to reformat diffs for enhanced
- when parsing options, \e is understood to mean the escape character
- the -p and -l options did not correctly handle UTF-8 characters.
- the context matching now decreases the matched context size exponentially,
instead of immediately using the context-less mode if the changes found
with context need refining. This results in more intuitive output when
increasing the matching context size.
- added an option to repeat the begin and end markers at the start and end
of line if a change crosses a newline
- newline characters in the delimiter set where handled incorrectly in
- added dwfilter program which reformats the old text such that it matches
the new text to allow other programs such as visual diff tools to show
the differences better. dwfilter can also be used to generate regular
diffs to patch the old text by reformating the new text as the old text
before executing diff [with caveats].
- \u and \U escapes were parsed incorrectly
- dwdiff crashed when generating statistics for empty files
- the line clearing implemented for better background color handling caused
(parts of) lines to disappear in the output with cr/nl line endings
- the new paragraph separators were not handled correctly with the context
matching feature, causing crashes
- the output for deleted text was changed such that the whitespace following
the deletion is now the whitespace that followed the deleted text, rather
than the whitespace that is now before the next word in the new file
- the output for changed text was changed in the case that the whitespace
before the old text contains a newline. In this case, depending on whether
the whitespace before the new text contains a newline, the new file's
whitespace is replaced by a single space or the new text is printed first
- the --wdiff-output option was added to revert to the old output mode
- the color specification now also allows specification of the background
color and custom escape sequences
- a new option to add markers for deleted or inserted blocks of lines
containing only whitespace (paragraph separators)
- octal escapes are now properly parsed
- icu-config was called directly rather than through $ICU_CONFIG in the
configure script, which prevented proper operation of the --icu-config
- compilation on systems without nl_langinfo was fixed
- better option parsing, which allows short options to be grouped. For
example -iPc instead of -i -P -c
- compatibility fixes to configure script
- Statistics are now printed to stderr instead of stdout such that the only
thing printed on stdout is the text
- Repaired code for diff programs that do not support -a option
- Fixed Makefile to pass settings for diff program to C compiler
- added match context which ensures better results for large edits with
frequently occurring words
- an option to use all punctuation characters as delimiters
- Unicode (UTF-8) support including formatting insensitive comparison
- case-insensitive comparison when the underlying diff program does not
- an option to print the line numbers at which the text appears in the old
and new file respectively
- an option to print only a user specified number of context lines
surrounding lines with changes
- added printing of color mark-up codes at the start of every new line to
improve viewing the output with less
- the check for overlap between the delimiter and the whitespace sets was
incomplete and incorrect
- an inverted condition caused incorrect output if the newline character
was not part of the whitespace set
- fixed a bug in color mode where the resetting of a color would cause
extra characters to be printed
- color mode, enabled by -c
- internationalisation. dwdiff can now use gettext and includes translated
manual pages. Languages included in the distribution are: en (default)
- fixes bug in \x-escape expansion of whitespace and delimiter lists
- will work on POSIX compatible diff, i.e. diff without -a and -i options
- handles empty whitespace specification
- allows nul character in whitespace and delimiter specification
- \-escape expansion of start/stop-delete/insert markers
- a single dash (-) can be specified as a file to read from standard input
- a double dash (--) will stop dwdiff from interpreting arguments starting
with a dash as options
- allows the user to specify further options to the diff program to allow
minimal diffs, half-hearted algorithms etc.