astepano / rpms / vim

Forked from rpms/vim 6 years ago
Clone
d15bb6d
To: vim_dev@googlegroups.com
d15bb6d
Subject: Patch 7.4.363
d15bb6d
Fcc: outbox
d15bb6d
From: Bram Moolenaar <Bram@moolenaar.net>
d15bb6d
Mime-Version: 1.0
d15bb6d
Content-Type: text/plain; charset=UTF-8
d15bb6d
Content-Transfer-Encoding: 8bit
d15bb6d
------------
d15bb6d
d15bb6d
Patch 7.4.363
d15bb6d
Problem:    In Windows console typing 0xCE does not work.
d15bb6d
Solution:   Convert 0xCE to K_NUL 3. (Nobuhiro Takasaki et al.)
d15bb6d
Files:	    src/os_win32.c, src/term.c
d15bb6d
d15bb6d
d15bb6d
*** ../vim-7.4.362/src/os_win32.c	2014-04-01 21:00:45.436733663 +0200
d15bb6d
--- src/os_win32.c	2014-07-09 20:29:30.787609327 +0200
d15bb6d
***************
d15bb6d
*** 619,625 ****
d15bb6d
  	return FALSE;
d15bb6d
      }
d15bb6d
  
d15bb6d
!     tokenPrivileges.PrivilegeCount           = 1;
d15bb6d
      tokenPrivileges.Privileges[0].Luid       = luid;
d15bb6d
      tokenPrivileges.Privileges[0].Attributes = bEnable ?
d15bb6d
  						    SE_PRIVILEGE_ENABLED : 0;
d15bb6d
--- 619,625 ----
d15bb6d
  	return FALSE;
d15bb6d
      }
d15bb6d
  
d15bb6d
!     tokenPrivileges.PrivilegeCount	     = 1;
d15bb6d
      tokenPrivileges.Privileges[0].Luid       = luid;
d15bb6d
      tokenPrivileges.Privileges[0].Attributes = bEnable ?
d15bb6d
  						    SE_PRIVILEGE_ENABLED : 0;
d15bb6d
***************
d15bb6d
*** 1785,1797 ****
d15bb6d
  #endif
d15bb6d
  	    {
d15bb6d
  		int	n = 1;
d15bb6d
  
d15bb6d
- 		/* A key may have one or two bytes. */
d15bb6d
  		typeahead[typeaheadlen] = c;
d15bb6d
  		if (ch2 != NUL)
d15bb6d
  		{
d15bb6d
! 		    typeahead[typeaheadlen + 1] = ch2;
d15bb6d
! 		    ++n;
d15bb6d
  		}
d15bb6d
  #ifdef FEAT_MBYTE
d15bb6d
  		/* Only convert normal characters, not special keys.  Need to
d15bb6d
--- 1785,1798 ----
d15bb6d
  #endif
d15bb6d
  	    {
d15bb6d
  		int	n = 1;
d15bb6d
+ 		int     conv = FALSE;
d15bb6d
  
d15bb6d
  		typeahead[typeaheadlen] = c;
d15bb6d
  		if (ch2 != NUL)
d15bb6d
  		{
d15bb6d
! 		    typeahead[typeaheadlen + 1] = 3;
d15bb6d
! 		    typeahead[typeaheadlen + 2] = ch2;
d15bb6d
! 		    n += 2;
d15bb6d
  		}
d15bb6d
  #ifdef FEAT_MBYTE
d15bb6d
  		/* Only convert normal characters, not special keys.  Need to
d15bb6d
***************
d15bb6d
*** 1800,1805 ****
d15bb6d
--- 1801,1807 ----
d15bb6d
  		if (input_conv.vc_type != CONV_NONE
d15bb6d
  						&& (ch2 == NUL || c != K_NUL))
d15bb6d
  		{
d15bb6d
+ 		    conv = TRUE;
d15bb6d
  		    typeaheadlen -= unconverted;
d15bb6d
  		    n = convert_input_safe(typeahead + typeaheadlen,
d15bb6d
  				n + unconverted, TYPEAHEADLEN - typeaheadlen,
d15bb6d
***************
d15bb6d
*** 1807,1812 ****
d15bb6d
--- 1809,1832 ----
d15bb6d
  		}
d15bb6d
  #endif
d15bb6d
  
d15bb6d
+ 		if (conv)
d15bb6d
+ 		{
d15bb6d
+ 		    char_u *p = typeahead + typeaheadlen;
d15bb6d
+ 		    char_u *e = typeahead + TYPEAHEADLEN;
d15bb6d
+ 
d15bb6d
+ 		    while (*p && p < e)
d15bb6d
+ 		    {
d15bb6d
+ 			if (*p == K_NUL)
d15bb6d
+ 			{
d15bb6d
+ 			    ++p;
d15bb6d
+ 			    mch_memmove(p + 1, p, ((size_t)(e - p)) - 1);
d15bb6d
+ 			    *p = 3;
d15bb6d
+ 			    ++n;
d15bb6d
+ 			}
d15bb6d
+ 			++p;
d15bb6d
+ 		    }
d15bb6d
+ 		}
d15bb6d
+ 
d15bb6d
  		/* Use the ALT key to set the 8th bit of the character
d15bb6d
  		 * when it's one byte, the 8th bit isn't set yet and not
d15bb6d
  		 * using a double-byte encoding (would become a lead
d15bb6d
*** ../vim-7.4.362/src/term.c	2014-07-09 19:13:45.003701718 +0200
d15bb6d
--- src/term.c	2014-07-09 20:26:28.655613029 +0200
d15bb6d
***************
d15bb6d
*** 3724,3730 ****
d15bb6d
--- 3724,3734 ----
d15bb6d
  	return;
d15bb6d
      }
d15bb6d
  
d15bb6d
+ #if defined(WIN3264) && !defined(FEAT_GUI)
d15bb6d
+     s = vim_strnsave(string, (int)STRLEN(string) + 1);
d15bb6d
+ #else
d15bb6d
      s = vim_strsave(string);
d15bb6d
+ #endif
d15bb6d
      if (s == NULL)
d15bb6d
  	return;
d15bb6d
  
d15bb6d
***************
d15bb6d
*** 3734,3739 ****
d15bb6d
--- 3738,3752 ----
d15bb6d
  	STRMOVE(s, s + 1);
d15bb6d
  	s[0] = term_7to8bit(string);
d15bb6d
      }
d15bb6d
+ 
d15bb6d
+ #if defined(WIN3264) && !defined(FEAT_GUI)
d15bb6d
+     if (s[0] == K_NUL)
d15bb6d
+     {
d15bb6d
+         STRMOVE(s + 1, s);
d15bb6d
+         s[1] = 3;
d15bb6d
+     }
d15bb6d
+ #endif
d15bb6d
+ 
d15bb6d
      len = (int)STRLEN(s);
d15bb6d
  
d15bb6d
      need_gather = TRUE;		/* need to fill termleader[] */
d15bb6d
*** ../vim-7.4.362/src/version.c	2014-07-09 20:20:40.359620108 +0200
d15bb6d
--- src/version.c	2014-07-09 20:26:38.903612821 +0200
d15bb6d
***************
d15bb6d
*** 736,737 ****
d15bb6d
--- 736,739 ----
d15bb6d
  {   /* Add new patch number below this line */
d15bb6d
+ /**/
d15bb6d
+     363,
d15bb6d
  /**/
d15bb6d
d15bb6d
-- 
d15bb6d
BROTHER MAYNARD: Armaments Chapter Two Verses Nine to Twenty One.
d15bb6d
ANOTHER MONK:    And St.  Attila raised his hand grenade up on high saying "O
d15bb6d
                 Lord bless this thy hand grenade that with it thou mayest
d15bb6d
                 blow thine enemies to tiny bits, in thy mercy. "and the Lord
d15bb6d
                 did grin and people did feast upon the lambs and sloths and
d15bb6d
                 carp and anchovies and orang-utans and breakfast cereals and
d15bb6d
                 fruit bats and...
d15bb6d
BROTHER MAYNARD: Skip a bit brother ...
d15bb6d
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
d15bb6d
d15bb6d
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
d15bb6d
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
d15bb6d
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
d15bb6d
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///