Changes for version 0.08 - 2012-06-09
- Completely re-worked how the changes are managed in emacs, so that undos of multiple, overlapping changes work correctly:
- Now overlays are used to indicate changed regions (because they support zero-width regions), and a buffer local data structure is used to save metadata for each change, including a list of shadowed changes with locations measured relative to the change, so that and "undo" command can properly re-set the extent of any affected overlays.
- The perl side no longer tries to use the "revise_locations" code to fix-up the recorded locations: instead the change metadata is used on the emacs side in inverse order so that the original, unrevised numbering is always correct when a change is applied.
- The metadata returned from the perl routine do_find_and_reps is restricted to just what's currently in use by rep.el: there's less redundancy, with the 'end' field elimated (since you can always get it by adding a string length to 'beg'). Similarly, the old context string features 'pre' and 'post' have been dropped.
- The TAB and BACKTAB features now behave in a consistent way, skipping forward or back to the nearest *top level* change (meaning a whole change unshadowed by any later one). This implementation is completely different from the one mentioned above for version 0.05.
Documentation
perform a series of find and replaces
Modules
a find & replace engine for rep.pl and rep.el