Files
mercury/samples/diff/TODO
Andrew Bromage bc0a109801 Modified files
Estimated hours taken: 30

Modified files
--------------

samples/diff/README:
	Info about this new version.  Put the existing READMEs in
	reverse order, so that they'll be in the most sensible order
	for someone reading top-down.

samples/diff/Mmakefile:
	Supply more detail about which bit of this program GCC 2.7.2
	under Digital Unix 3.2 doesn't compile properly.

samples/diff/diff.m:
	Slight reorganisation.  Accept options, remove some high
	coupling betweem diff__do_diff and lcss.m.

samples/diff/file.m:
	Add support for attaching a filename to a file.

samples/diff/lcss.m:
	Add more documentation, one slight performance improvement.
	lcss__to_diff now works on the reversed LCSS, to avoid going
	to the trouble of reversing it.

New files
---------

samples/diff/TODO:
	Meaning should be obvious.

samples/diff/diff_out.m:
	Replacement for diffs.m (which was never a very good name).
	Now contains code to display a diff in lots more output
	styles than previously supported.

samples/diff/difftype.m:
	Replacement for lcsstype.m.  Contains the type of a diff (but
	not of an lcss, which is now local to lcss.m, hence the
	renaming).

samples/diff/filter.m:
	Contains code to filter a diff before being displayed.  This
	is only required if the user specified that they didn't want
	to see part of the diff (e.g. with --ignore-blank-lines).

samples/diff/globals.m:
samples/diff/options.m:
	Support for option handling.

Removed files
-------------

samples/diff/diffs.m:
	Functionality moved to diff_out.m.

samples/diff/lcsstype.m:
	Functionality moved to difftype.m.
1998-01-13 00:52:08 +00:00

41 lines
1.1 KiB
Plaintext

Things which should be straightforward:
* The following options should be supported but aren't:
--expand-tabs
--initial-tab
--ignore-case
--ignore-all-space
--ignore-space-change
--sdiff-merge-assist
* Optimise the case of the --brief output style, where a full-blown diff
isn't necessary but we currently do it anyway. Similarly, if no diff
implies no output (which it does for some output styles) we could
avoid a full diff sometimes.
* We currently aren't careful about noticing the difference between a
file which has a return/new line on the last line and one which
doesn't. Admittedly this distinction has never made a difference to
any diffing I've done, but if we're going try to be compliant...
Things which need a bit more work:
* Implement a more efficient diff algorithm.
* Support diffing of binary files. Mostly this just requires being
more careful than we currently are.
Things which would be nice but may/will require a lot of work:
* Implement a "regexp" module so we can handle more options.
* Output file dates on context/unified diffs.
* Directory diffs.