Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

ZLE undo rewrite



-----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
M'XL("-H"TS("`W5N9&]?<&%T8V@`U1I_4]M&]F_G4RR].2K9%DBR,=@.N:8)
M,\V4D$Q".KVV24;(:ZQ#EG1:&0HIW_W>>[LKK6290'K7R3$#:-^^??M^O[<K
M=;M=]CP-=V_$8J?@OT<=;SS>WW6]77?`W(.).YSX;L?;.7CD.,X&Q`/F^A//
MG?B#1]WZ#X[98,\?]P=[@R$C$-+1H`,&(^<18]]=1,F,_\Z>G;XY=GYF*P"]
M2,*<+WE2!'%\S5;)+&7%@K,X$`6#_0NV3&?1/`J#(DJ3'5CPJ,>^BPJ^9#F?
MI3@H)$TUK--#(!%-^#HUL0/XR!61NXP<1'3"19"<<V:MDK,4`#:SOKLXFWU:
MW=H5#!>I;>O+#!E7I!6ERIN8[RR#!)4YVO7\77_$O/'$&TQ\'[3NN:;:#5Q#
M\>YXLN>V*GY_Y/;W1WN5VB6@5/IO\^^1P]_FKYGUX2/[\/,*?C^\LTT1#<$>
M;)"=T]>@1]@%E0V[?($1D`0Q6M<FL6PP66?TW>=9>S&'S3,>%'S6EVP@?AU+
M6^D7L=A%U5^GE97&#/P=K.2-P4J#TDAU5#,ZO,G`:S72>-_KC_='E9$(<.!J
M(Z$+6D5AH?3VY^UD6U]B*1M4+=W60F7@4.]+8Z#Z<-NA*131NO5L0ZS&S":K
MDEB?M2OJ\VT.9H@YF6%166&?^6"%T60XQ+#R2=,;4,%@WF0(@35L-=C>?G\T
MD.9BF"1VP4M>O'WZ_?'1<Q8)9GF/'[LVZ^["U-]F?!Z!?GXY/OKX\NCDW;.7
MKSLX[]F/G-KDNY/GKVC&MQO+_OGTY$>:&31GCE^<'+U\]=,1S0Z;LS^^.#ZF
MF9%-LB+7OO2I-J&\L=?WO:$A%A#Y^?3HS0F+DH+-.<_F<7`^Q;DM%)F<BE^"
M-TA1`2J*?!46-(/@3P#"'UR?Y7P^[70ZL#!9+<]XSM(Y3$1%%,0,3)\+6"9=
M8(;TJI5B-5]?6>1!%$?)^=U+8YZHE?!T7BQPI4:4"VOHH5#8X2H7:<ZR5+`S
M/D]SKE95Z+B:=25T2FM.7IT"?W$,7IDOHP3SBM3+K5*9M@U:^MDI&PTEN-1R
M0WGX7_PJD=]/2T<CYT<RBC$*!(@!9L%0VB1;Y<`Y%^2"3K7!*A'1>:)$9UU<
MB92F#3XBM7E8](EZ*.3_.)XV_$+2N8Q$'BZ`^VG39]0,3P1L@B[HC=V^[WLZ
ML=W3Q\2UP"+<<#)E$>UC=6@xxxxxx[H)9(@I6B>8_2L(4:T2H6%XW%3;7G#4
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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-----



Messages sorted by: Reverse Date, Date, Thread, Author