+
     Bi+                         ^ RI t ^ RIHt  ! R R]4      t ! R R4      t ! R R]4      t ! R	 R
]4      t ! R R]4      tR t]	R8X  d"   ^ RI
Ht ]! R^RR7       ^ RIHt ]! ]4       R# R# )    N)	Delegatorc                      a  ] tR t^t o RtR tR tR tR tR t	R t
RtR	 tRtR
 tRR ltRR ltR tR tRR ltR tR tRtV tR# )UndoDelegatori  c                R    \         P                  ! V 4       V P                  4        R # N)r   __init__
reset_undoselfs   &#/usr/lib/python3.14/idlelib/undo.pyr   UndoDelegator.__init__   s    4     c                h   V P                   e4   V P                  R4       V P                  R4       V P                  R4       \        P                  ! W4       VeW   V P	                  RV P
                  4       V P	                  RV P                  4       V P	                  RV P                  4       R # R # )Nz<<undo>>z<<redo>>z<<dump-undo-state>>)delegateunbindr   setdelegatebind
undo_event
redo_event
dump_event)r   r   s   &&r   r   UndoDelegator.setdelegate   s    ==$KK
#KK
#KK-.d-IIj$//2IIj$//2II+T__=  r   c                R   ^ RI H p V! V P                  RV P                   4       \        RV P                  RR7       \        RV P                  RR7       \        RV P
                  RR7       \        RV P                  4       4       V! V P                  V P                  R 4       R	# )
r   )pprintNzpointer: )endzsaved:z
can_merge:zget_saved():break)r   undolistpointerprintsaved	can_merge	get_saved)r   eventr   s   && r   r   UndoDelegator.dump_event(   sw    !t}}]dll+,j$,,C0h

,lDNN4ndnn./t}}T\\]+,r   c                `    RV n         ^ V n        . V n        ^ V n        V P	                  ^4       R#    N)	was_savedr   r   	undoblock	set_savedr
   s   &r   r	   UndoDelegator.reset_undo2   s*    qr   c                v    V'       d   V P                   V n        MRV n        RV n        V P                  4        R# )r'   FNr(   )r   r    r!   check_saved)r   flags   &&r   r+   UndoDelegator.set_saved9   s*    DJDJr   c                4    V P                   V P                  8H  # r   )r    r   r
   s   &r   r"   UndoDelegator.get_savedA   s    zzT\\))r   Nc                    Wn         R # r   )saved_change_hook)r   hooks   &&r   set_saved_change_hook#UndoDelegator.set_saved_change_hookF   s    !%r   c                    V P                  4       pWP                  8w  d-   Wn        V P                  '       d   V P                  4        R # R # R # r   )r"   r)   r4   )r   is_saveds   & r   r.   UndoDelegator.check_savedK   s?    >>#~~%%N%%%&&( & &r   c                <    V P                  \        WV4      4       R # r   )addcmdInsertCommand)r   indexcharstagss   &&&&r   insertUndoDelegator.insertR   s    M%56r   c                :    V P                  \        W4      4       R # r   )r<   DeleteCommandr   index1index2s   &&&r   deleteUndoDelegator.deleteU   s    M&12r   c                z    V P                   ^ 8X  d   \        4       V n         V P                   P                  4        R# r   N)r*   CommandSequence
bump_depthr
   s   &r   undo_block_startUndoDelegator.undo_block_startc   s(    >>Q,.DN!!#r   c                    V P                   P                  R4      ^ 8X  d[   V P                   p^ V n         \        V4      ^ 8  d6   \        V4      ^8X  d   VP                  ^ 4      pV P	                  V^ 4       R# R# R# r&   )r*   rM   lengetcmdr<   r   cmds   & r   undo_block_stopUndoDelegator.undo_block_stoph   sf    >>$$R(A-..CDN3x!|s8q=**Q-C C#  .r   c                "   V'       d   VP                  V P                  4       V P                  ^ 8w  d   V P                  P                  V4       R# V P                  '       dO   V P
                  ^ 8  d>   V P                  V P
                  ^,
          ,          pVP                  V4      '       d   R# V.V P                  V P
                  R% V P                  V P
                  8  d   RV n        V P
                  ^,           V n        \        V P                  4      V P                  8  dO   V P                  ^  V P
                  ^,
          V n        V P                  ^ 8  d   V P                  ^,
          V n        RV n        V P                  4        R# )r   NTr(   )dor   r*   appendr!   r   r   merger    rQ   max_undor.   )r   rT   executelastcmds   &&& r   r<   UndoDelegator.addcmdt   s   FF4==!>>QNN!!#&>>>dllQ.mmDLLN3G}}S!!(+udllm$::$DJ||a't}}-a <<!+DLzzQ!ZZ!^
r   c                (   V P                   ^ 8X  d   V P                  4        R# V P                  V P                   ^,
          ,          pVP                  V P                  4       V P                   ^,
          V n         RV n        V P                  4        R# )r   r   F)r   bellr   undor   r!   r.   r   r#   rT   s   && r   r   UndoDelegator.undo_event   sg    <<1IIKmmDLL1,-||a'r   c                @   V P                   \        V P                  4      8  d   V P                  4        R # V P                  V P                   ,          pVP	                  V P
                  4       V P                   ^,           V n         RV n        V P                  4        R # )r   F)r   rQ   r   r`   redor   r!   r.   rb   s   && r   r   UndoDelegator.redo_event   sk    <<3t}}--IIKmmDLL)||a'r   )r!   r   r    r4   r*   r   r)   r(   r   )T)__name__
__module____qualname____firstlineno__r[   r   r   r   r	   r+   r"   r4   r6   r)   r.   rA   rH   rN   rU   r<   r   r   __static_attributes____classdictcell____classdict__s   @r   r   r      si     H	>* & I)73$

$.		 	r   r   c                   X   a  ] tR t^t o RtRR ltR tR tR tR t	R t
R tR	 tR
tV tR# )CommandNc                f    / V n         / V n        Wn        W n        W0n        V'       d	   W@n        R # R # r   )marks_beforemarks_afterrF   rG   r?   r@   )r   rF   rG   r?   r@   s   &&&&&r   r   Command.__init__   s.    
I r   c                    V P                   P                  pV P                  V P                  V P                  V P
                  3pV P
                  f   VR R pV\        V4      ,           # )Nr(   )	__class__rg   rF   rG   r?   r@   repr)r   sts   &  r   __repr__Command.__repr__   sR    NN##[[$++tzz499=99#2A47{r   c                    R # r    r   texts   &&r   rX   
Command.do       r   c                    R # r   r}   r~   s   &&r   re   Command.redo   r   r   c                    R # r   r}   r~   s   &&r   ra   Command.undo   r   r   c                    ^ # )r   r}   rS   s   &&r   rZ   Command.merge   s    r   c                    / pVP                  4        F(  pVR 8w  g   K  VR8w  g   K  VP                  V4      W#&   K*  	  V# )rA   current)
mark_namesr>   )r   r   marksnames   &&  r   
save_marksCommand.save_marks   s>    OO%DxDI$5"jj. & r   c                Z    VP                  4        F  w  r4VP                  W44       K  	  R # r   )itemsmark_set)r   r   r   r   r>   s   &&&  r   	set_marksCommand.set_marks   s      ;;=KDMM$& )r   )r?   rF   rG   rs   rr   r@   r   )rg   rh   ri   rj   r@   r   rz   rX   re   ra   rZ   r   r   rk   rl   rm   s   @r   rp   rp      s9      D' 'r   rp   c                      a  ] tR t^t o R
R ltR tR tR tR t]	P                  ]	P                  ,           R,           tR tR	tV tR# )r=   Nc                4    \         P                  WR W#4       R # r   rp   r   )r   rF   r?   r@   s   &&&&r   r   InsertCommand.__init__   s    tU9r   c                   V P                  V4      V n        VP                  V P                  4      V n        VP	                  V P                  R R4      '       d   VP                  R4      V n        VP                  V P                  V P                  V P                  4       VP                  RV P                  \        V P                  4      3,          4      V n	        V P                  V4      V n
        R# )>end-1cz%s+%dcN)r   rr   r>   rF   comparerA   r?   r@   rQ   rG   rs   r~   s   &&r   rX   InsertCommand.do   s     OOD1jj-<<S(33**X.DKDKKTYY7jjT[[#djj/,J!JK??40r   c                    VP                  R V P                  4       VP                  V P                  V P                  V P                  4       V P                  WP                  4       VP                  R 4       R# rA   N)r   rF   rA   r?   r@   r   rs   seer~   s   &&r   re   InsertCommand.redo   sN    h,DKKTYY7t--.r   c                    VP                  R V P                  4       VP                  V P                  V P                  4       V P	                  WP
                  4       VP                  R 4       R# r   )r   rF   rH   rG   r   rr   r   r~   s   &&r   ra   InsertCommand.undo   sH    h,DKK-t../r   c                   V P                   VP                   Jd   R # V P                  VP                  8w  d   R # V P                  VP                  8w  d   R # \	        VP
                  4      ^8w  d   R # V P
                  '       dC   V P                  V P
                  R,          4      V P                  VP
                  4      8w  d   R # VP                  V n        V P
                  VP
                  ,           V n        R# )FTr(   )rv   rG   rF   r@   rQ   r?   classifyrS   s   &&r   rZ   InsertCommand.merge   s    >>.;;#**$99 syy>Q:::==B(DMM#)),DDjjZZ#))+
r   _c                <    WP                   9   d   R # VR8X  d   R# R# )alphanumeric
newlinepunctuation)r   )r   cs   &&r   r   InsertCommand.classify   s    !!!!9r   r?   rF   rG   rs   rr   r   )rg   rh   ri   rj   r   rX   re   ra   rZ   stringascii_lettersdigitsr   r   rk   rl   rm   s   @r   r=   r=      sC     :1  ''&--7#=L r   r=   c                   <   a  ] tR tRt o RR ltR tR tR tRtV t	R# )	rD   i  Nc                6    \         P                  WVR R 4       R # r   r   rE   s   &&&r   r   DeleteCommand.__init__  s    vtT:r   c                f   V P                  V4      V n        VP                  V P                  4      V n        V P                  '       d"   VP                  V P                  4      V n        M'VP                  V P                  R ,           4      V n        VP                  V P                  RR4      '       d   VP                  R4      V n        VP                  V P                  V P                  4      V n        VP                  V P                  V P                  4       V P                  V4      V n	        R# )z +1cr   r   N)
r   rr   r>   rF   rG   r   getr?   rH   rs   r~   s   &&r   rX   DeleteCommand.do  s     OOD1jj-;;;**T[[1DK**T[[6%9:DK<<S(33**X.DKXXdkk4;;7
DKK-??40r   c                    VP                  R V P                  4       VP                  V P                  V P                  4       V P	                  WP
                  4       VP                  R 4       R# r   )r   rF   rH   rG   r   rs   r   r~   s   &&r   re   DeleteCommand.redo  sH    h,DKK-t--.r   c                    VP                  R V P                  4       VP                  V P                  V P                  4       V P	                  WP
                  4       VP                  R 4       R# r   )r   rF   rA   r?   r   rr   r   r~   s   &&r   ra   DeleteCommand.undo$  sH    h,DKK,t../r   r   r   )
rg   rh   ri   rj   r   rX   re   ra   rk   rl   rm   s   @r   rD   rD     s     ;1 r   rD   c                   T   a  ] tR tRt o R tR tR tR tR tR t	R t
RR	 ltR
tV tR# )rL   i,  c                "    . V n         ^ V n        R# rK   cmdsdepthr
   s   &r   r   CommandSequence.__init__0  s    	
r   c                    V P                   P                  p. pV P                   F  pVP                  R V: 24       K  	  VR,           RP	                  V4      ,           R,           # )z    z(
z,
z
))rv   rg   r   rY   join)r   rx   strsrT   s   &   r   rz   CommandSequence.__repr__4  sS    NN##99CKK$sg' 5y5::d++e33r   c                ,    \        V P                  4      # r   )rQ   r   r
   s   &r   __len__CommandSequence.__len__;  s    499~r   c                <    V P                   P                  V4       R # r   )r   rY   rS   s   &&r   rY   CommandSequence.append>  s    		r   c                (    V P                   V,          # r   )r   )r   is   &&r   rR   CommandSequence.getcmdA  s    yy|r   c                N    V P                    F  pVP                  V4       K  	  R # r   )r   re   )r   r   rT   s   && r   re   CommandSequence.redoD  s    99CHHTN r   c                    V P                   R ,          pVP                  4        V F  pVP                  V4       K  	  R# ):NNNN)r   reversera   )r   r   r   rT   s   &&  r   ra   CommandSequence.undoH  s-    yy|CHHTN r   c                J    V P                   V,           V n         V P                   # r   )r   )r   incrs   &&r   rM   CommandSequence.bump_depthN  s    ZZ$&
zzr   r   N)r'   )rg   rh   ri   rj   r   rz   r   rY   rR   re   ra   rM   rk   rl   rm   s   @r   rL   rL   ,  s2     4 r   rL   c                 f  a ^ RI HpHpHp ^ RIHp V! V 4      pVP                  R4       \        \        V P                  4       P                  R4      R,          4      w  rgVP                  RWg^,           3,          4       V! V^
R7      pVP                  4        VP                  4        V! V4      p	\        4       oV	P                  S4       V! VRV3R	 lR
7      p
V
P                  RR7       V! VRV3R lR
7      pVP                  RR7       V! VRV3R lR
7      pVP                  RR7       R# )r   )ToplevelTextButton)
PercolatorzTest UndoDelegator+:r'   NNz+%d+%d)heightUndoc                  &   < S P                  R 4      # r   )r   ds   r   <lambda>!_undo_delegator.<locals>.<lambda>b      1<<3Er   )r   commandleft)sideRedoc                  &   < S P                  R 4      # r   )r   r   s   r   r   r   d  r   r   Dumpc                  &   < S P                  R 4      # r   )r   r   s   r   r   r   f  r   r   N)tkinterr   r   r   idlelib.percolatorr   titlemapintgeometrysplitpack	focus_setr   insertfilter)parentr   r   r   r   topxyr   pra   re   dumpr   s   &            @r   _undo_delegatorr   S  s    ..-
6
CII"#sFOO%++C045DALLQCL()BDIIKNN4AANN1#F,EFDII6I#F,EFDII6I#F,EFDII6Ir   __main__)mainzidlelib.idle_test.test_undoF)	verbosityexit)run)r   idlelib.delegatorr   r   rp   r=   rD   rL   r   rg   unittestr   idlelib.idle_test.htestr   r}   r   r   <module>r     s{     '$JI JZ*' *'Z6G 6r G  H$g $N. z	&!%@+ r   