ASCIIDIFF File Comparison Utility
----------------------------------
This package contains all the files necessary to run AsciiDiff.
Running instructions are included in the help file, which can be
executed in stand-alone mode under Windows.  It is recommended
that you read the help file prior to running the program.

AsciiDiff does not store anything in your registry. If you don't
want to use it any more, just delete all the files listed below.

To users who already have an earlier version of this program:
Some bugs have been fixed, and enhancements added. These are
described below after the list of files.

List of files
--------------
ASCIIDIFF.EXE	Contains the compare program. Needs only one DLL other
                than those ordinarily available under Windows. The
                required DLL is NATRENUM.DLL, mentioned later in this list. 







ASCIIDIFF.INI_1	Versions of the initialisation file. Rename one of these
		to ASCIIDIFF.INI and save it in the same directory as
		ASCIIDIFF.EXE.
and
ASCIIDIFF.INI_6	Instructions for modifying its contents can be found
		in the help file. The options in ASCIIDIFF.INI_6 are
		suitable if you want to use this tool to compare Natural
		program source. The options in ASCIIDIFF.INI_1 are for
		more general purposes.

                +-------------------------------------------------------+
                |                                                       |
                |  Change "SAVEUNICODE=NO" to "SAVEUNICODE=YES" if you  |
                |  want to enable the saving of changes to files that   |
                |  contain Unicode. You choose this option at your own  |
                |  risk. See help file for further information.         |
                |                                                       |
                +-------------------------------------------------------+



ASCIIDIFF.CFG	User configuration defaults. Store in same directory as
		ASCIIDIFF.EXE, or in another directory pointed to by the
		CONFIGFILE parameter of ASCIIDIFF.INI.

ASCIIDIFF.HLP	The main help file. Store in same place as application.

ASCDREX.HLP     Help file for regular expression matching in text search.


DNLDEX01.TXT	A minimal example of a Natural program to download the
		source of 2 Natural programs from a mainframe via
		Natural Connection, then autostart AsciiDiff so that its
		entry panel is initialised with the names of the 2 files
		which contain the Natural source.

AMR001P.TXT	The first of a pair of test files to be compared using
		this tool.

AMR002P.TXT	The second of a pair of test files to be compared using
		this tool.

SHORT.CSV	If you choose AMR001P.TXT as the first file & AMR002P.TXT
		as the second file, then compare them using the options
		defaulted in ASCIIDIFF.CFG, SHORT.CSV should be similar
		to the file you would get if you chose the menu option
		File | Save | Condensed.  The only difference should be
		in the first line, where your pathnames will differ from
		those used by the author.

NATRENUM.DLL	A dynamic link library required by AsciiDiff. The version
		supplied will allow NATURAL source code to be renumbered.

NATRENUM.DLX	A smaller and crippled version of NATRENUM.DLL; rename it
		and throw away the larger NATRENUM.DLL if you never want
		to process NATURAL source code with AsciiDiff.

NAT_BORLAND.TXT	A description of the C++ Builder interface details for
		the functions in NATRENUM.DLL, in case any Borland C++
		Builder users want to use it in their own applications
		to process NATURAL source code on the PC.



Bugfixes and enhancements
---------------------------
1.  Change of basic algorithm. Program should be faster, use less or no
    virtual memory, and should maximise the number of matched lines (this
    was not guaranteed by the previous version).

2.  When the split screen opens, the program should automatically detect
    the size of the desktop, and resize the split screen window to fit, so
    that all parts of the window are visible. Window scrollbars should not
    be visible. Please complain to the author if this is still a problem.

3.  When saving output to a CSV file, the name of each file being compared
    should be in the first line of the CSV file.

4.  Added "Paste" buttons to front panel. These allow you to get text into
    this program from binary files such as spreadsheets and word processor
    documents.

5.  Progress information shown in small window which flashes up after
    differences have been computed, but before split screen is painted.

6.  It is now possible to highlight a pair of lines, one on either side of
    the split display, and then display them one above the other in an
    overlaid subwindow to simplify detection of differences at the character
    level.

7.  23/11/2000 Fixed incorrect colour coding of files in a second or
    subsequent compare (ie after clicking on the "fruit" icon).

8.  12/12/2000 Speed up horizontal auto scrolling to next difference in
    Zoom window.

9.  19/01/2001 Allow user to switch off read-only mode so files can be
    modified. Right mouse button popup menu created, options to recompare
    and/or save modified data.

10. 22/02/2001 Option to insert virtual sequence numbers; "equivalent
    strings" (or "synonym") facility provided; option to condense multiple
    interior spaces to a single space. Update help file & include keyword
    index.

11. 14/06/2001 "Mirror" copy facility to simplify copying from one side of
    split screen to the other. Fixed bug preventing use of tab character in
    equivalent strings table. Plug memory leak. Change of compare strategy
    to speed up execution (the most time consuming phase, building the "Edit
    Difference" table, is 300% - 400% faster for large files, ie 12000-20000
    lines and beyond).

12. Bug introduced in previous version caused program to report differences
    between 2 identical files, this is now fixed. Add processing to deal
    with "transpositions" ie lines that are textually identical but report
    as a non-match due to being separated by one or more blocks of matching
    text. These are now underlined besides being coloured. Right mouse
    button menu item allows instant location of the other member of such a
    pair of lines.

13. At some point it happened that the "Compare" button would be
    disabled permanently if the application could not find the
    ASCIIDIFF.INI file. I've restored the prior arrangement - that
    the "Compare" button is enabled as soon as the start column
    is non-zero and there is a pair of valid filenames to work on.
    However the ini file still has to be there to provide a path
    to the user's personal config file (AsciiDiff.CFG).

14. 10 Sep 2001. New format of command line arguments. Old style still
    works for the sake of backward compatibility of existing interfaces.
    Extra command line arg enables skipping entry screen. Entry screen
    can also be skipped for "Compare New" & "ReCompare" buttons by
    holding down the Shift key as you click. Keyboard navigation is
    now much nicer in the entry screen.
    Removed need for "APPDIRECTORY" parameter in ASCIIDIFF.INI.

15. 1 Feb 2002. Reworked program entry panel. "Insert virtual sequence
    numbers" has moved from "Files" box to "Options" box and is now part
    of user's configuration defaults. "File 1" and "File 2" edit boxes
    have acquired drop-down history lists, these are explained further
    in the help file. Navigating between successive difference points in
    the split screen can now additionally be done by hot keys - F8 to go
    forward, and F7 to go back.

16. 20 Feb 2002. Standard Windows keyboard shortcuts for editing actions
    were not working (Ctrl-A, Ctrl-C, Ctrl-V and Ctrl-X for Select All,
    Copy, Paste and Cut respectively). This was due to them having been 
    formally defined as menu shortcuts for the corresponding actions in
    the popup menu for the right mouse button. The effect was to bring
    up the Windows Start menu instead when any of these shortcuts were
    used.  The formal definitions of these shortcuts have now been
    removed from the popup menu, allowing them to operate as intended.

17. 28 March 2002.  Shortcut keys defined for items on Mirror menu.

18. 9 April 2002. A few significant enhancements have been implemented.
    1. Easier merging of differences between one side of split display
       and the other. There are 2 ways of doing this, each with its
       own advantages and disadvantages.
       Method A.
       ----------
       The File | ReadOnly switch must be OFF.
       Just highlight 1 or more coloured (not black) characters, then
       select a menu item (either popup or main menu) or press a shortcut
       key. The entire text in the coloured block containing the highlight
       will be copied over to the corresponding section in the other half
       of the screen. Diff counts are updated, and autonavigation between
       sucessive difference points is preserved.
       Method B.
       ----------
       There is a new menu item called File | Restricted Merging.
       This is a toggle that can be turned ON and OFF, and it defines
       a state intermediate between Read Only and Modifiable.
       With Restricted Merging ON, you can merge changes more easily than
       using Method A (just hold down the Alt key, and doubleclick on a
       coloured character, the behaviour is then as for Method A).
       However Restricted Merging does not allow any changes via keyboard
       or clipboard.
 
    2. Options to restrict the amount of matching (black) text that
       gets displayed.

    3. A text search and replace operation has been added to the right
       mouse button popup context menu.

    4. When recomparing the contents of the current split display,
       AsciiDiff now "remembers" the positions of the windows prior
       to the recompare.

19. 6 August 2002. Implement "Renumber" function for NATURAL source code
    and for any text files where the "Virtual Sequence Numbers" option
    has been selected.
    Bugs fixed
    - Second and subsequent compare "remembered" previous value of
      "Line comparisons begin in column", so you could never alter
      it from what was selected in the first compare.
    - In a "Recompare" the text was modifiable without checking off
      the "Read Only" menu item, in contradiction to the help file.
      The help file is correct, "Read Only" now means what it says.

20. 12 September 2002, bug fix. Display fonts were set to the US ANSI
    character set, this meant that only US and West European characters
    would display properly. This has been changed, fonts now set to
    the default chacter set of the user's current windows codepage.

21. 3 October 2002. Incorporate an option to use regular expression
    matching in the text search function. Improvements in comparison
    algorithm to provide a very significant speed boost.
    Bug fix: Use of TAB character now possible, as a separator between
    text to be compared and text to be ignored (TAB character must
    be pasted, cannot supply it via TAB key of keyboard).

22. 7 November 2002. Minor changes.
    a) If the string that separates text to be compared from text to
       be ignored has leading spaces, these will now be treated as 
       significant. Trailing spaces will still be discarded.
    b) In the text search dialog box, the Find button is set as a
       default. So you can type a search string & press the Enter key.
    c) In renumbering Natural source code, if your source code contains
       a database access command with a 4-digit processing limit, the
       4-digit limit is no longer treated as a line reference. For
       example, the "(1000)" in "READ (1000)" will never be renumbered.
    d) In sympathy with point c), if you select "Force numeric line
       refs to agree" for comparing Natural source, a pair of statements
       such as "READ (1000) ..." and "READ (1200) ..." will nevertheless
       always be recognised as being different.
    e) The statement in regular expression help that says "the highlighted
       result is the shortest string that satisfies the criteria" is 
       incorrect. The regular expression algorithm always identifies the
       LONGEST string that satisfies the criteria. The program is
       correct; the help text has been changed to reflect this.

23. 2 March 2003. Fixed bugs affecting use with downloaded NATURAL code.
    a) Program hangs if "Force numeric linerefs to agree" is selected
       and "/*" is chosen as Remark delimiter, when program contains array
       references as in "MOVE THIS-FIELD(2740/*) TO THAT-FIELD(*)".
    b) Array dimensions as in "01 LVL-ONE-STRUCTURE (1000)" being treated
       as line number references, in the cases of renumbering and of
       "Force numeric linerefs to agree".

24. 16 March 2003. Further improved discrimination between "/*" in array
    references and as a comment separator.

25. Version 1.5.4, 27 April 2003. Eliminated error box that said "No line
    in one file matches any line in the other". Following this error box,
    the split screen would display with 2 empty panels. Now, if there are
    no matching lines, the split screen displays both entire files, side
    by side, with the message "No lines match" in the window title bar.

26. Version 1.5.4,  May 04  2003.
    a) There is now a font selection dialog, in case you don't like the
       default font. Your preferred font can be saved as part of your
       personal AsciiDiff configuration. See the helpfile for further
       details.
    b) Provided facilities to change AsciiDiff's internal pointers to the
       Next and Previous difference blocks. This means it is no longer
       necessary to repeatedly hit the green up and down arrow buttons
       to navigate to a known difference point. There is a related feature
       to let you "set" the diff pointer to a "local" value. See the new
       "Set Diff Pointer" section in the help file for more detail.

27. Version 1.5.5,  Feb 07  2004.
    a) Fixed bug that caused history of files compared to be lost when "Save"
       button was selected in entry panel.
    b) Flyover hints attached to some of the less obvious controls on entry panel.
    c) Removed 254-character limit on cell size in CSV file, when saving differences.
    d) Program now accepts files dragged and dropped onto entry panel, as an
       alternative to use of Browse buttons.
    e) Zoom window no longer limited to just one pair of lines - but is only available
       if same number of lines is selected on both sides of main split display.
       Font in zoom window is now the same as that in the side by side view of 2 files.
       "Auto Zoom" menu option created, to allow fast opening of zoom viewer for
       both entire files.
    f) Ctrl+T hotkey sequence defined, to allow inserteion of horizontal tab 
       characters in entry panel.
    g) "Auto Merge" options defined, to allow ALL differences to be merged with one
       mouse click.
    h) Prior to comparison, AsciiDiff now checks if the lines in each file are sorted
       in increasing or decreasing order (as is often the case when comparing data
       files). If both files are sorted compatibly, AsciiDiff will use a much faster
       algorithm to detect the differences. This makes a huge difference when very
       large data files are being compared. Note that if the first few lines of each
       file match the other file, the check for "sortedness" only begins at the first
       mismatched line. This allows for the possibility of sorted data files having
       matching header lines that do not follow the sort order of the data itself. 
    
       Feb 11  2004
       Fixed bug introduced in V1.5.5, where an error box was liable to appear
       when zoom window closed after comparing multiple line pairs.


28. Version 1.6.0,  June 09  2005
    a) It is now possible to tell AsciDiff to ignore all characters in a line beyond a given
       position. Previously you could only enter a column number to start the comparisons from.
       The new feature is provided by the box labelled "   and end in column" beneath
       the box labelled "Line comparisons begin in column". This enhancement allows 
       you to ignore everything (such as line ids) that appear in a righthand margin.
    b) Users are now able to preserve the starting position and size of the side-by-side display
       so that it always opens in the same place on the desktop. This is done by moving/resizing
       according to requirements, and then selecting the menu sequence File | Save Display Options.
    c) Unicode support. The data displayed in the comparison window is still 8-bit, but Unicode
       in files is internally converted for display purposes. The option to save changes
       to Unicode files is disabled by default (see ASCIIDIFF.IN_* files in file list above).







 