Hi Bram,

may you tell us, when you plan to release VIM 7.1 ?

mfg,

Ali Akcaagac

On Tue, 2007-01-09 at 20:30 +0100, Bram Moolenaar wrote:
> Patch 7.0.182
> Problem:    When using a mix of undo and "g-" it may no longer be possible to
>           go to every point in the undo tree.  (Andy Wokula)
> Solution:   Correctly update pointers in the undo tree.
> Files:            src/undo.c
> 
> 
> *** ../vim-7.0.181/src/undo.c Tue Aug 29 17:28:56 2006
> --- src/undo.c        Tue Jan  9 20:18:27 2007
> ***************
> *** 341,351 ****
>       uhp->uh_alt_next = old_curhead;
>       if (old_curhead != NULL)
>       {
>           old_curhead->uh_alt_prev = uhp;
>           if (curbuf->b_u_oldhead == old_curhead)
>               curbuf->b_u_oldhead = uhp;
>       }
> !     uhp->uh_alt_prev = NULL;
>       if (curbuf->b_u_newhead != NULL)
>           curbuf->b_u_newhead->uh_prev = uhp;
>   
> --- 341,355 ----
>       uhp->uh_alt_next = old_curhead;
>       if (old_curhead != NULL)
>       {
> +         uhp->uh_alt_prev = old_curhead->uh_alt_prev;
> +         if (uhp->uh_alt_prev != NULL)
> +             uhp->uh_alt_prev->uh_alt_next = uhp;
>           old_curhead->uh_alt_prev = uhp;
>           if (curbuf->b_u_oldhead == old_curhead)
>               curbuf->b_u_oldhead = uhp;
>       }
> !     else
> !         uhp->uh_alt_prev = NULL;
>       if (curbuf->b_u_newhead != NULL)
>           curbuf->b_u_newhead->uh_prev = uhp;
>   
> ***************
> *** 856,861 ****
> --- 860,870 ----
>       uhp = curbuf->b_u_curhead;
>       while (uhp != NULL)
>       {
> +         /* Go back to the first branch with a mark. */
> +         while (uhp->uh_alt_prev != NULL
> +                                     && uhp->uh_alt_prev->uh_walk == mark)
> +             uhp = uhp->uh_alt_prev;
> + 
>           /* Find the last branch with a mark, that's the one. */
>           last = uhp;
>           while (last->uh_alt_next != NULL
> ***************
> *** 865,870 ****
> --- 874,881 ----
>           {
>               /* Make the used branch the first entry in the list of
>                * alternatives to make "u" and CTRL-R take this branch. */
> +             while (uhp->uh_alt_prev != NULL)
> +                 uhp = uhp->uh_alt_prev;
>               if (last->uh_alt_next != NULL)
>                   last->uh_alt_next->uh_alt_prev = last->uh_alt_prev;
>               last->uh_alt_prev->uh_alt_next = last->uh_alt_next;
> *** ../vim-7.0.181/src/version.c      Tue Jan  9 15:43:39 2007
> --- src/version.c     Tue Jan  9 20:26:47 2007
> ***************
> *** 668,669 ****
> --- 668,671 ----
>   {   /* Add new patch number below this line */
> + /**/
> +     182,
>   /**/
> 

Reply via email to