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