Files
mercury/samples/diff/README
Andrew Bromage 34ecf2050a Minor documentation fix.
Estimated hours taken: 0.05

Minor documentation fix.

samples/diff/README:
	It was, of course, not the fix which caused diff to bomb out,
	it was the problem solved by the fix.
1997-07-28 20:02:48 +00:00

86 lines
2.5 KiB
Plaintext

The Mercury modules in this directory have been derived from the
'diff' sample distributed with Mercury 0.6. That sample carries the
following copyright information, description and to-do list (in
diff.m):
%-----------------------------------------------------------------------------%
% Copyright (C) 1995 The University of Melbourne.
% This file may only be copied under the terms of the GNU General
% Public License - see the file COPYING in the Mercury distribution.
%-----------------------------------------------------------------------------%
% File: diff.m
% Main author: bromage
% Something very similar to the standard diff utility. Sort of. :-)
% On the still-to-do list:
% - Add command-line options. Probably:
% --ignore-all-space
% --ignore-blank-lines
% --ignore-case
% --rcs
% What others are easy and don't break up the code?
The major changes I made were
* Moved code for manipulating and displaying diffs to a separate
module called diffs.m (and changed their calls in diff.m). The type
'lcss,' needed both by the rest of lcss.m and by diffs.m, was moved
to a new module lcsstype.m.
* Made lcss.m independent of files, and allowed it to process any kind
of list by adding polymorphism. (The file processing calls have
been moved to diff.m.)
* Added type synonyms 'pos' and 'segment' in diffs.m to clarify the
types. Renamed 'single_diff' to 'edit'.
* Added end-of-file match to the generated lcss, thereby allowing the
to_diff predicate to be simplified considerably.
* Numbered lists from 0 internally in the lcss-algorithm. This made
to_diff simpler still, but also forced changes in the diff-printing
part.
* Removed the swapping in find_lcss, because it doesn't seem to help.
* The array(string) representing a file in file.m was also renumbered
to begin with 0.
* Added and corrected comments.
Have fun,
<><
Marnix
--
Marnix Klooster
marnix@worldonline.nl
---------------------------------
The version which appears here is a re-hacked version of Marnix Klooster's
hacked version of my original. Special thanks to him for making my code
a lot more maintainable than it originally was. :-)
The changes from the previous version:
- Bug fix for a problem which was causing it to bomb out if
the two files were identical.
- Changed indenting so it more closely matches the Mercury
compiler coding standard.
- Update to use unique arrays (now called array.m).
- Various minor documentation tweaks.
Oh, and it still runs in nowhere near the speed of GNU diff.
Andrew Bromage 28 Jul 1997