mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-18 02:43:40 +00:00
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.
41 lines
1.1 KiB
Plaintext
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.
|
|
|
|
|