Short: Graphical ASCII file compare/diff viewer
Author: Uwe Rosner
Uploader: u rosner ymail com (Uwe Rosner)
Architecture: m68k-amigaos >= 3.0
ADiffView compares two ASCII text files and displays the differences
The diff engine uses Eugene Myers' diff algorithm and also third-party
code in its implementation. See the LICENSE-3RD-PARTY file for more
- Behavior: When ADiffView opens its own screen it is now a public
screen named ADIFFVIEW.1. This number is incremented for each
instance. The name of the screen where ADiffView is actually running
is displayed in the About requester.
- Behavior: On AmigaOS 3.1.4 and newer when ADiffView opens its own
screen the new off-screen dragging mode is enabled. This allows
windows to be dragged beyond the screen borders.
- Behavior: Added (ToolType / CLI) argument EDITORONPUBSCREEN. When this
is set and the editor (see EDITOR argument) supports a PUBSCREEN
argument it will be opened on the ADiffView screen. The default editor
C:Ed doest't support it, but OS3.1.4+ Tools/TextEdit does.
- Behavior: The editor is now started asynchronously.
- Fixed user interface and selection glitches that occurred when
different screen or window title bar heights were set in OS3.1.4.+
- Built with the OS3.2 NDK.
- Navigation: Text search now highlights all matches at once, not just
the current one. Therefore, 'Find next' and 'Find prev' also no longer
show the next/previous match on the current page, but instead scroll
up/down the page to the next match.
- New edit menu: Added the possibility to select text and copy it to the
clipboard (new menu item 'Edit->Copy').
- New edit menu: Added 'Edit -> Edit left file' and 'Edit -> Edit right
file' commands to call an external editor for the file in question.
Default editor is C:Ed. Can be changed using the new (ToolType / CLI)
- Behavior: Added a check if an open file has been modified, and if so,
allows the user to quickly start a new comparison.
- Navigation: Added the shortcuts SPACE and BACKSPACE to navigate
forward and backward one page.
- Navigation: Added an option to the text search function to search only
in difference lines. See the cycle gadget in the search window.
- Behavior: Added (ToolType / CLI) argument COUNTBYLINES. When this is
set, the number of differences reported is counted per lines, not per
'groups of difference blocks' as it is the default.
- Fixed a crash due to a stack overflow if aborted during the
- Fixed an issue where other search parameter changes were not applied
when the search keyword was empty
- Fixed an issue where the last line of a file was not recognized by
ADiffView when it hadn't been finalized with a newline.
- Navigation: Now displays a message in the window title if no
next/previous difference or search pattern match was found.
- View: Added the 'View' menu with currently the only function to switch
between different tabulator widths
- Behavior: Added (ToolType / CLI) argument IGNORETRAILINGSPACES. When
this is set all white spaces at line endings are skipped for
comparison. So for example, files that differ only by spaces at the
end of lines are displayed as if they had no differences.
- Behavior: Added support for selecting multiple menu items at one time
as it is common on the Amiga.
- Behavior: Now starting the comparison will be prevented if the same
file name is selected for the left and right file (only string
comparison of the filenames).
- Fixed an issue where window titles were broken after comparing files
- Fixed a MuForce hit when 'Navigate to last diff' was called.
- Added new color icon in AmigaOS3.2 style - many thanks to Mason!
- Rendering: Added tabulator support, defaults to 8 spaces for each tab.
Can be configured with the (ToolType / CLI) argument TABSIZE.
- Navigation: Added a text search function.
- Navigation: Added more commands to navigate between diff blocks.
- Layout: Improved the progress window layout.
- Behavior: Removed the (ToolType / CLI) argument ASKONWORKBENCH.
An AppIcon is used instead but only available when ADiffView is
started from the Workbench. Double clicking on the AppIcon brings
ADiffView to front. When files are dropped on the AppIcon, their
names are inserted into the open files window on an empty file name
gadget. The AppIcon can be disabled with the ToolType NOAPPICON.
- Performance: Improved the reading of input files. Now each file is
read as a whole and no unnecessary string copying is done anymore.
- Development: Widely changed the internal application structure.
Now using C++ exceptions and some basic STL - cleaner code and more
coding fun for me. But this comes at a cost. The binary size increased
from about 70k to 190k even before new features were implemented.
The use of exceptions also drops MC68000 compatibility, so at least
a 68020 CPU is needed now.
- Fixed a bug introduced in version 1.1 which produced Enforcer hits in
- Fixed problem in text rendering where some lines were displayed
- The Line numbers of the source files are now displayed in diff result.
- Added the (ToolType / CLI) argument NOLINENUMBERS to turn of the
display of the line numbers.
- Now using the Myers diff algorithm for better results.
- File select window: When a file was selected with the file request,
the request for the other file opens in the same directory.
- File select window: Keyboard shortcuts are now working.
- File select window: Added a feature to swap left and right file.
- File select window: Added support for Drag'n drop. If the program
runs on Workbench you can drag the files to compare into that window.
- Diff result window: Added a feature to navigate to next / previous
- Now OS3.0+ memory pools are used. Speeds up the freeing of memory.
There's a noticeable speed improvement on exit after big files have
- Fixed a bug which caused a crash when comparing long files
- Fixed a minor problem in the about window where the title was always
inherited by the parent window.
- Added some more info into the manual chapter about ADiffView and
- Initial version
Development was done on an Amiga with StormC4 in C++/gcc mode and also
in Linux with Visual Studio Code. Unit tests for the diff engine were
done in Linux with QtCreator and the BOOST framework.
Starting with version 1.1 the build of the release binary is done with
gcc 6.5 on Linux using this toolchain: https://github.com/bebbo/amiga-gcc