Subject: patch 5.4.22 (was: 5.4.20 bug?)
From: Bram Moolenaar <[email-masked]>
To: raf <[email-masked]>
Cc: [email-masked]

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

raf wrote:

> solaris 2.6 + motif + gvim-5.4.20 + -u NONE -U NONE
> 
> i've just noticed a wierdness.
> 
> while in insert mode, i type the first few letters of a word
> that appears later in the line, type <C-n> to complete the word,
> type <C-Left> to return the beginning of the completed word,
> type <Down> expecting to move to the nexdt line at the same column.
> but instead, the cursor moves to the next line at the column where
> the completed word ended (not where it began).
> 
> if i type <Left> or <Right> between the <C-Left> and the <Down>,
> then it remembers the correct column position.

In fact, every time you use <C-Left> in insert mode, the column to use for
<Down> and <Up> isn't updated.  Same for <S-Left>, <C-Right> and <S-Right>.

Patch 5.4.22
Problem:    In Insert mode, <C-Left>, <S-Left>, <C-Right> and <S-Right> didn't
            update the column used for vertical movement.
Solution:   Set curwin->w_set_curswant for those commands.
Files:      src/edit.c

*** ../vim-5.4.21/src/edit.c	Tue Aug 10 16:10:18 1999
--- src/edit.c	Wed Aug 11 22:26:20 1999
***************
*** 5175,5180 ****
--- 5175,5181 ----
      {
  	start_arrow(&curwin->w_cursor);
  	(void)bck_word(1L, 0, FALSE);
+ 	curwin->w_set_curswant = TRUE;
      }
      else
  	vim_beep();
***************
*** 5227,5232 ****
--- 5228,5234 ----
      {
  	start_arrow(&curwin->w_cursor);
  	(void)fwd_word(1L, 0, 0);
+ 	curwin->w_set_curswant = TRUE;
      }
      else
  	vim_beep();
*** ../vim-5.4.21/src/version.h	Tue Aug 10 16:16:34 1999
--- src/version.h	Wed Aug 11 22:29:49 1999
***************
*** 19,26 ****
  #define VIM_VERSION_MINOR_STR		"4"
  #define VIM_VERSION_BUILD		 57
  #define VIM_VERSION_BUILD_STR		"57"
! #define VIM_VERSION_PATCHLEVEL		 21
! #define VIM_VERSION_PATCHLEVEL_STR	"21"
  
  /*
   * 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		 22
! #define VIM_VERSION_PATCHLEVEL_STR	"22"
  
  /*
   * 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.21"
! #define VIM_VERSION_LONG	"VIM - Vi IMproved 5.4.21 (1999 Aug 10)"
! #define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 5.4.21 (1999 Aug 10, compiled "
--- 30,35 ----
   */
  #define VIM_VERSION_NODOT	"vim54"
  #define VIM_VERSION_SHORT	"5.4"
! #define VIM_VERSION_MEDIUM	"5.4.22"
! #define VIM_VERSION_LONG	"VIM - Vi IMproved 5.4.22 (1999 Aug 11)"
! #define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 5.4.22 (1999 Aug 11, compiled "

--
hundred-and-one symptoms of being an internet addict:
40. You tell the cab driver you live at
    http://123.elm.street/house/bluetrim.html
41. You actually try that 123.elm.street address.

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