zsh-workers
 help / color / mirror / code / Atom feed
From: Zefram <zefram@dcs.warwick.ac.uk>
To: zsh-workers@math.gatech.edu (Z Shell workers mailing list)
Subject: ZLE undo rewrite
Date: Wed, 8 Jan 1997 10:10:50 +0000 (GMT)	[thread overview]
Message-ID: <28533.199701081010@stone.dcs.warwick.ac.uk> (raw)

-----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-----


                 reply	other threads:[~1997-01-08 10:21 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=28533.199701081010@stone.dcs.warwick.ac.uk \
    --to=zefram@dcs.warwick.ac.uk \
    --cc=zsh-workers@math.gatech.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).