Karsten Hopp 55fd8b
To: vim-dev@vim.org
Karsten Hopp 55fd8b
Subject: Patch 7.2.073
Karsten Hopp 55fd8b
Fcc: outbox
Karsten Hopp 55fd8b
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp 55fd8b
Mime-Version: 1.0
Karsten Hopp 55fd8b
Content-Type: text/plain; charset=ISO-8859-1
Karsten Hopp 55fd8b
Content-Transfer-Encoding: 8bit
Karsten Hopp 55fd8b
------------
Karsten Hopp 55fd8b
Karsten Hopp 55fd8b
Patch 7.2.073
Karsten Hopp 55fd8b
Problem:    ":set <xHome>" has the same output as ":set <Home>". (Matt
Karsten Hopp 55fd8b
	    Wozniski)
Karsten Hopp 55fd8b
Solution:   Don't translate "x" keys to its alternative for ":set".
Karsten Hopp 55fd8b
Files:	    src/misc2.c, src/option.c, src/proto/misc2.pro
Karsten Hopp 55fd8b
Karsten Hopp 55fd8b
Karsten Hopp 55fd8b
*** ../vim-7.2.072/src/misc2.c	Wed Nov 12 13:07:48 2008
Karsten Hopp 55fd8b
--- src/misc2.c	Sun Dec 14 12:28:47 2008
Karsten Hopp 55fd8b
***************
Karsten Hopp 55fd8b
*** 2561,2567 ****
Karsten Hopp 55fd8b
      int		key;
Karsten Hopp 55fd8b
      int		dlen = 0;
Karsten Hopp 55fd8b
  
Karsten Hopp 55fd8b
!     key = find_special_key(srcp, &modifiers, keycode);
Karsten Hopp 55fd8b
      if (key == 0)
Karsten Hopp 55fd8b
  	return 0;
Karsten Hopp 55fd8b
  
Karsten Hopp 55fd8b
--- 2561,2567 ----
Karsten Hopp 55fd8b
      int		key;
Karsten Hopp 55fd8b
      int		dlen = 0;
Karsten Hopp 55fd8b
  
Karsten Hopp 55fd8b
!     key = find_special_key(srcp, &modifiers, keycode, FALSE);
Karsten Hopp 55fd8b
      if (key == 0)
Karsten Hopp 55fd8b
  	return 0;
Karsten Hopp 55fd8b
  
Karsten Hopp 55fd8b
***************
Karsten Hopp 55fd8b
*** 2597,2606 ****
Karsten Hopp 55fd8b
   * returns 0 if there is no match.
Karsten Hopp 55fd8b
   */
Karsten Hopp 55fd8b
      int
Karsten Hopp 55fd8b
! find_special_key(srcp, modp, keycode)
Karsten Hopp 55fd8b
      char_u	**srcp;
Karsten Hopp 55fd8b
      int		*modp;
Karsten Hopp 55fd8b
!     int		keycode; /* prefer key code, e.g. K_DEL instead of DEL */
Karsten Hopp 55fd8b
  {
Karsten Hopp 55fd8b
      char_u	*last_dash;
Karsten Hopp 55fd8b
      char_u	*end_of_name;
Karsten Hopp 55fd8b
--- 2597,2607 ----
Karsten Hopp 55fd8b
   * returns 0 if there is no match.
Karsten Hopp 55fd8b
   */
Karsten Hopp 55fd8b
      int
Karsten Hopp 55fd8b
! find_special_key(srcp, modp, keycode, keep_x_key)
Karsten Hopp 55fd8b
      char_u	**srcp;
Karsten Hopp 55fd8b
      int		*modp;
Karsten Hopp 55fd8b
!     int		keycode;     /* prefer key code, e.g. K_DEL instead of DEL */
Karsten Hopp 55fd8b
!     int		keep_x_key;  /* don't translate xHome to Home key */
Karsten Hopp 55fd8b
  {
Karsten Hopp 55fd8b
      char_u	*last_dash;
Karsten Hopp 55fd8b
      char_u	*end_of_name;
Karsten Hopp 55fd8b
***************
Karsten Hopp 55fd8b
*** 2668,2674 ****
Karsten Hopp 55fd8b
  	    else
Karsten Hopp 55fd8b
  	    {
Karsten Hopp 55fd8b
  		key = get_special_key_code(last_dash + 1);
Karsten Hopp 55fd8b
! 		key = handle_x_keys(key);
Karsten Hopp 55fd8b
  	    }
Karsten Hopp 55fd8b
  
Karsten Hopp 55fd8b
  	    /*
Karsten Hopp 55fd8b
--- 2669,2676 ----
Karsten Hopp 55fd8b
  	    else
Karsten Hopp 55fd8b
  	    {
Karsten Hopp 55fd8b
  		key = get_special_key_code(last_dash + 1);
Karsten Hopp 55fd8b
! 		if (!keep_x_key)
Karsten Hopp 55fd8b
! 		    key = handle_x_keys(key);
Karsten Hopp 55fd8b
  	    }
Karsten Hopp 55fd8b
  
Karsten Hopp 55fd8b
  	    /*
Karsten Hopp 55fd8b
*** ../vim-7.2.072/src/option.c	Fri Nov 28 21:26:50 2008
Karsten Hopp 55fd8b
--- src/option.c	Sun Dec 14 12:28:56 2008
Karsten Hopp 55fd8b
***************
Karsten Hopp 55fd8b
*** 8328,8334 ****
Karsten Hopp 55fd8b
      {
Karsten Hopp 55fd8b
  	--arg;			    /* put arg at the '<' */
Karsten Hopp 55fd8b
  	modifiers = 0;
Karsten Hopp 55fd8b
! 	key = find_special_key(&arg, &modifiers, TRUE);
Karsten Hopp 55fd8b
  	if (modifiers)		    /* can't handle modifiers here */
Karsten Hopp 55fd8b
  	    key = 0;
Karsten Hopp 55fd8b
      }
Karsten Hopp 55fd8b
--- 8328,8334 ----
Karsten Hopp 55fd8b
      {
Karsten Hopp 55fd8b
  	--arg;			    /* put arg at the '<' */
Karsten Hopp 55fd8b
  	modifiers = 0;
Karsten Hopp 55fd8b
! 	key = find_special_key(&arg, &modifiers, TRUE, TRUE);
Karsten Hopp 55fd8b
  	if (modifiers)		    /* can't handle modifiers here */
Karsten Hopp 55fd8b
  	    key = 0;
Karsten Hopp 55fd8b
      }
Karsten Hopp 55fd8b
*** ../vim-7.2.072/src/proto/misc2.pro	Thu Jul 24 20:29:37 2008
Karsten Hopp 55fd8b
--- src/proto/misc2.pro	Sun Dec 14 12:29:05 2008
Karsten Hopp 55fd8b
***************
Karsten Hopp 55fd8b
*** 59,65 ****
Karsten Hopp 55fd8b
  int handle_x_keys __ARGS((int key));
Karsten Hopp 55fd8b
  char_u *get_special_key_name __ARGS((int c, int modifiers));
Karsten Hopp 55fd8b
  int trans_special __ARGS((char_u **srcp, char_u *dst, int keycode));
Karsten Hopp 55fd8b
! int find_special_key __ARGS((char_u **srcp, int *modp, int keycode));
Karsten Hopp 55fd8b
  int extract_modifiers __ARGS((int key, int *modp));
Karsten Hopp 55fd8b
  int find_special_key_in_table __ARGS((int c));
Karsten Hopp 55fd8b
  int get_special_key_code __ARGS((char_u *name));
Karsten Hopp 55fd8b
--- 59,65 ----
Karsten Hopp 55fd8b
  int handle_x_keys __ARGS((int key));
Karsten Hopp 55fd8b
  char_u *get_special_key_name __ARGS((int c, int modifiers));
Karsten Hopp 55fd8b
  int trans_special __ARGS((char_u **srcp, char_u *dst, int keycode));
Karsten Hopp 55fd8b
! int find_special_key __ARGS((char_u **srcp, int *modp, int keycode, int keep_x_key));
Karsten Hopp 55fd8b
  int extract_modifiers __ARGS((int key, int *modp));
Karsten Hopp 55fd8b
  int find_special_key_in_table __ARGS((int c));
Karsten Hopp 55fd8b
  int get_special_key_code __ARGS((char_u *name));
Karsten Hopp 55fd8b
*** ../vim-7.2.072/src/version.c	Wed Dec 24 12:43:15 2008
Karsten Hopp 55fd8b
--- src/version.c	Wed Dec 24 12:51:26 2008
Karsten Hopp 55fd8b
***************
Karsten Hopp 55fd8b
*** 678,679 ****
Karsten Hopp 55fd8b
--- 678,681 ----
Karsten Hopp 55fd8b
  {   /* Add new patch number below this line */
Karsten Hopp 55fd8b
+ /**/
Karsten Hopp 55fd8b
+     73,
Karsten Hopp 55fd8b
  /**/
Karsten Hopp 55fd8b
Karsten Hopp 55fd8b
Karsten Hopp 55fd8b
-- 
Karsten Hopp 55fd8b
ARTHUR: If you do not open these doors, we will take this castle by force ...
Karsten Hopp 55fd8b
   [A bucket of slops land on ARTHUR.  He tries to retain his dignity.]
Karsten Hopp 55fd8b
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
Karsten Hopp 55fd8b
Karsten Hopp 55fd8b
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp 55fd8b
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp 55fd8b
\\\        download, build and distribute -- http://www.A-A-P.org        ///
Karsten Hopp 55fd8b
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///