Patch 7.3.285 (after 7.3.284)
Problem:    Mapping <Char-123> no longer works.
Solution:   Properly check for "char-".  Add a test for it.
Files:      src/misc2.c, src/testdir/test75.in, src/testdir/test75.ok


*** ../vim-7.3.284/src/misc2.c  2011-08-17 20:33:18.000000000 +0200
--- src/misc2.c 2011-08-19 22:08:37.000000000 +0200
***************
*** 2781,2786 ****
--- 2781,2792 ----
        }
        if (bp[0] == 't' && bp[1] == '_' && bp[2] && bp[3])
            bp += 3;    /* skip t_xx, xx may be '-' or '>' */
+       else if (STRNICMP(bp, "char-", 5) == 0)
+       {
+           vim_str2nr(bp + 5, NULL, &l, TRUE, TRUE, NULL, NULL);
+           bp += l + 5;
+           break;
+       }
      }
  
      if (*bp == '>')   /* found matching '>' */
***************
*** 2810,2836 ****
            {
                /* <Char-123> or <Char-033> or <Char-0x33> */
                vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
!               *modp = modifiers;
!               *srcp = end_of_name;
!               return (int)n;
            }
- 
-           /*
-            * Modifier with single letter, or special key name.
-            */
- #ifdef FEAT_MBYTE
-           if (has_mbyte)
-               l = mb_ptr2len(last_dash + 1);
-           else
- #endif
-               l = 1;
-           if (modifiers != 0 && last_dash[l + 1] == '>')
-               key = PTR2CHAR(last_dash + 1);
            else
            {
!               key = get_special_key_code(last_dash + 1);
!               if (!keep_x_key)
!                   key = handle_x_keys(key);
            }
  
            /*
--- 2816,2842 ----
            {
                /* <Char-123> or <Char-033> or <Char-0x33> */
                vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
!               key = (int)n;
            }
            else
            {
!               /*
!                * Modifier with single letter, or special key name.
!                */
! #ifdef FEAT_MBYTE
!               if (has_mbyte)
!                   l = mb_ptr2len(last_dash + 1);
!               else
! #endif
!                   l = 1;
!               if (modifiers != 0 && last_dash[l + 1] == '>')
!                   key = PTR2CHAR(last_dash + 1);
!               else
!               {
!                   key = get_special_key_code(last_dash + 1);
!                   if (!keep_x_key)
!                       key = handle_x_keys(key);
!               }
            }
  
            /*
*** ../vim-7.3.284/src/testdir/test75.in        2010-10-20 21:22:17.000000000 
+0200
--- src/testdir/test75.in       2011-08-19 22:05:13.000000000 +0200
***************
*** 2,7 ****
--- 2,8 ----
  
  STARTTEST
  :so small.vim
+ :set cpo-=<
  :" Test maparg() with a string result
  :map foo<C-V> is<F4>foo
  :vnoremap <script> <buffer> <expr> <silent> bar isbar
***************
*** 9,14 ****
--- 10,20 ----
  :call append('$', string(maparg('foo<C-V>', '', 0, 1)))
  :call append('$', string(maparg('bar', '', 0, 1)))
  :"
+ :map abc x<char-114>x
+ :call append('$', maparg('abc'))
+ :map abc y<S-char-114>y
+ :call append('$', maparg('abc'))
+ :"
  :/^eof/+1,$w! test.out
  :qa!
  ENDTEST
*** ../vim-7.3.284/src/testdir/test75.ok        2010-10-20 21:22:17.000000000 
+0200
--- src/testdir/test75.ok       2011-08-19 21:53:26.000000000 +0200
***************
*** 1,3 ****
--- 1,5 ----
  is<F4>foo
  {'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'expr': 0, 'sid': 
0, 'rhs': 'is<F4>foo', 'buffer': 0}
  {'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'expr': 1, 'sid': 0, 
'rhs': 'isbar', 'buffer': 1}
+ xrx
+ yRy
*** ../vim-7.3.284/src/version.c        2011-08-17 20:33:18.000000000 +0200
--- src/version.c       2011-08-19 22:15:22.000000000 +0200
***************
*** 711,712 ****
--- 711,714 ----
  {   /* Add new patch number below this line */
+ /**/
+     285,
  /**/


-- 
No man may purchase alcohol without written consent from his wife.
                [real standing law in Pennsylvania, United States of America]

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui