Subject: patch 5.4.44 (was: whichwrap=~ & undo)
From: Bram Moolenaar <[email-masked]>
To: Johannes Zellner <[email-masked]>
Cc: vim-dev <[email-masked]>

------------

Johannes Zellner wrote:

> set whichwrap=~
> place the cursor on the `b' of
> 
> bla
> fred
> 
> hit 6~, and you'll get
> 
> BLA
> FREd
> 
> hit u for undo and you'll get
> 
> bla
> FREd

Oops!  Strange that nobody noticed this yet...  Fortunately it's easy to fix:

Patch 5.4.44
Problem:    When 'whichwrap' includes '~', a "~" command that goes on to the
	    next line cannot be properly undone. (Zellner)
Solution:   Save each line for undo in n_swapchar().
Files:	    src/normal.c

*** ../vim-5.4.43/src/normal.c	Wed Aug 11 23:19:48 1999
--- src/normal.c	Sat Aug 21 22:15:37 1999
***************
*** 4623,4628 ****
--- 4623,4634 ----
  		++curwin->w_cursor.lnum;
  		curwin->w_cursor.col = 0;
  		redraw_curbuf_later(NOT_VALID);
+ 		if (n > 1)
+ 		{
+ 		    if (u_savesub(curwin->w_cursor.lnum) == FAIL)
+ 			break;
+ 		    u_clearline();
+ 		}
  	    }
  	    else
  		break;
*** ../vim-5.4.43/src/version.h	Sat Aug 21 21:51:34 1999
--- src/version.h	Sat Aug 21 22:19:33 1999
***************
*** 19,26 ****
  #define VIM_VERSION_MINOR_STR		"4"
  #define VIM_VERSION_BUILD		 57
  #define VIM_VERSION_BUILD_STR		"57"
! #define VIM_VERSION_PATCHLEVEL		 43
! #define VIM_VERSION_PATCHLEVEL_STR	"43"
  
  /*
   * VIM_VERSION_NODOT is used for the runtime directory name.
--- 19,26 ----
  #define VIM_VERSION_MINOR_STR		"4"
  #define VIM_VERSION_BUILD		 57
  #define VIM_VERSION_BUILD_STR		"57"
! #define VIM_VERSION_PATCHLEVEL		 44
! #define VIM_VERSION_PATCHLEVEL_STR	"44"
  
  /*
   * VIM_VERSION_NODOT is used for the runtime directory name.
***************
*** 30,35 ****
   */
  #define VIM_VERSION_NODOT	"vim54"
  #define VIM_VERSION_SHORT	"5.4"
! #define VIM_VERSION_MEDIUM	"5.4.43"
! #define VIM_VERSION_LONG	"VIM - Vi IMproved 5.4.43 (1999 Aug 21)"
! #define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 5.4.43 (1999 Aug 21, compiled "
--- 30,35 ----
   */
  #define VIM_VERSION_NODOT	"vim54"
  #define VIM_VERSION_SHORT	"5.4"
! #define VIM_VERSION_MEDIUM	"5.4.44"
! #define VIM_VERSION_LONG	"VIM - Vi IMproved 5.4.44 (1999 Aug 21)"
! #define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 5.4.44 (1999 Aug 21, compiled "

--
hundred-and-one symptoms of being an internet addict:
181. You make up words that go with the "happy tune" your modem makes
     while dialing your ISP.

--/-/---- Bram Moolenaar ---- [email-masked] ---- [email-masked] ---\-\--
  \ \    www.vim.org/iccf      www.moolenaar.net       www.vim.org    / /