zsh-workers
 help / color / mirror / code / Atom feed
* ZLE undo rewrite
@ 1997-01-08 10:10 Zefram
  0 siblings, 0 replies; only message in thread
From: Zefram @ 1997-01-08 10:10 UTC (permalink / raw)
  To: Z Shell workers mailing list

-----BEGIN PGP SIGNED MESSAGE-----

This patch is a rewrite of ZLE's undo mechanism.  The new mechanism
handles switches of history line correctly, always applying stored changes
to the history line they were originally made on.  It also adds reverse
change information to the structure, making a redo command possible.
I also removed the arbitrary limit of 64 stored changes -- it is now
always possible to undo all changes back to the point that ZLE was
entered.

The way undo events are now added -- only being added if there has been
some change made from the last selected point in the undo history -- means
that there is no need to avoid adding an undo event after executing the
"undo" ZLE function.  The nasty hack for vi-undo-change, which relied
on this behaviour in a way that is fundamentally incompatible with
allowing redoing, is removed, and the function implemented properly.
As a side effect, therefore, all need for the ZLE_UNDO flag is removed.

 -zefram

begin 644 undo_patch.gz
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
*_P$^:`!)?#(`````
`
end

-----BEGIN PGP SIGNATURE-----
Version: 2.6.2

iQCVAwUBMtMFwnD/+HJTpU/hAQEYXgP8CLjyczdslXovscVLKBIWSBmvl9RSEw7G
8KmGS/Sa4HOhtGw/mfztq5tDTSZVjvcXhfJT4Mj61RONCeDPCx6zuiUqEDhKxg2M
uqKFuRLuNwtGv7KW5dl7XUxLHJtq7aBM5VW7DnefzXTyB9rduvhRI0cu1sufXXXH
htrq9IXFRTM=
=SLWP
-----END PGP SIGNATURE-----


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1997-01-08 10:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-01-08 10:10 ZLE undo rewrite Zefram

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).