-   Linux - Software (
-   -   Qdiff updated! (

sfxpt 10-20-2008 11:59 PM

Qdiff updated!

FYI, qdiff is a fast binary files differ that can detect binary insertions/deletions/substitutions with colorful outputs, written by Johannes Overmann. qdiff is the only fast and versatile binary files differ that's available in the FOSS would, others don't come close to it. However, the latest version,

is more than 8 years old. It does not compile under the current g++ any more. Moreover, even after I managed to get it compiles fine, it causes "segmentation fault" when executed.

Now it works and have a new home:

Check out for more.
The updated version is 0.9.1, which is available at

It now uses autoconf + automake instead of a fixed Makefile. Please give it a try, and let me know the result.

If you think qdiff is useful, please help me bump up the thread if it falls behind the 2nd index page in this forum.


sfxpt 10-21-2008 12:04 AM

Here is the full help text:


Usage: qdiff [OPTION]... FILE1 FILE2

diff options:
-b --byte-by-byte        compare files byte by byte, like 'cmp'
-f --no-heuristics      do not use heuristics to speed up large differing
                        blocks, note that the result is always correct but
                        with this option you may find a smaller number of
                        differing bytes
-m --min-match=NUM      allow resynchronisation only after a minimum of NUM
                        bytes match, this is an important parameter: lower
                        values may result in a more detailed analysis or in
                        useless results, higher values give a coarse analysis
                        but resynchronisation is more robust (range=[1..],
-O --large-files        optimize disk access for large files on the same disk
                        (locks 16MB mem)

output modes:  (override automatic file type determination)
-a --formatted          print formatted ascii text, line by line
-u --unformatted        print unformatted ascii text, block by block
-x --hex                print hex dump, block by block
-t --vertical            print one byte per line (ignores width)

output options:
-c --no-color            disable ansi coloring of output
-C --alt-colors          no bold ansi coloring (for SGI terminals and the like)
-w --width=NUM          output maximal NUM chars (default is terminal width)
-B --bytes-per-line=NUM  print NUM bytes/chars per line
-T --tab-size=TABSIZE    TABSIZE in formatted mode (range=[1..], default=8)
-l --line-numbers        print line numbers in formatted mode
-n --no-line-break      truncate (not break) lines in formatted mode
-L --show-lf-and-tab    show newline/tab as <LF>/<HT> in formatted mode
-S --show-space          show space as <SPC> in non hex modes
-U --unprintable=CHAR    print CHAR for unprintable chars in non hex modes
-H --control-hex        print control codes in hex (<x1B>, not <ESC>)
-A --alignment-marks    print -/+ before 32/64-bit words in hex mode
-e --stop-on-eof        stop when end of a file is reached in vertical mode
  --hide-match          do not print matches
  --hide-deletion      do not print deletions
  --hide-insertion      do not print insertions
  --hide-substitution  do not print substitutions
  --range-match        print match as byte range
  --range-deletion      print deletion as byte range
  --range-insertion    print insertion as byte range
  --range-substitution  print substitution as two byte ranges
-R --range              print everything as byte range

common options:
-v --verbose            verbose execution
-P --progress            show progress during work
-h --help                print this help message, then exit successfully
  --version            print version, then exit successfully

qdiff version 0.9.1
 *** (C) 1997-1999 by Johannes Overmann
 *** (C) 2008 by Tong Sun
comments, bugs and suggestions welcome: suntong001 at
this program is distributed under the terms of the GNU General Public License version 2

All times are GMT -5. The time now is 10:20 PM.