Hello community,

here is the log from the commit of package vim for openSUSE:Factory checked in 
at 2014-01-17 11:18:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vim (Old)
 and      /work/SRC/openSUSE:Factory/.vim.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "vim"

Changes:
--------
--- /work/SRC/openSUSE:Factory/vim/vim.changes  2013-12-19 12:52:33.000000000 
+0100
+++ /work/SRC/openSUSE:Factory/.vim.new/vim.changes     2014-01-23 
15:57:48.000000000 +0100
@@ -1,0 +2,25 @@
+Tue Jan 14 14:13:34 UTC 2014 - [email protected]
+
+- Use Unix line endings in vim-7.3-filetype_ftl.patch (bnc#815840)
+
+-------------------------------------------------------------------
+Mon Jan 13 10:23:03 UTC 2014 - [email protected]
+
+- Updated to revision 142, fixes the following problems
+  * Clang warns for using NUL.
+  * Spurious space in MingW Makefile.
+  * Directory change messages are not recognized.
+  * Crash when using :cd in autocommand. (François Ingelrest)
+  * Crash when wiping out buffer triggers autocommand that wipes out
+    only other buffer.
+  * Problems when building with Borland: st_mode is signed short;
+    can't build with Python; temp files not ignored by Mercurial;
+    building with DEBUG doesn't define _DEBUG.
+
+-------------------------------------------------------------------
+Fri Jan 10 08:10:52 UTC 2014 - [email protected]
+
+- Fix dynamic loading of Ruby for Ruby 2.1
+  Add patch vim-7.4-ruby21.patch
+
+-------------------------------------------------------------------

New:
----
  vim-7.4-ruby21.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ vim.spec ++++++
--- /var/tmp/diff_new_pack.88GBXi/_old  2014-01-23 15:57:49.000000000 +0100
+++ /var/tmp/diff_new_pack.88GBXi/_new  2014-01-23 15:57:49.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package vim
 #
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 %define pkg_version 7.4
-%define official_ptchlvl 131
+%define official_ptchlvl 142
 %define VIM_SUBDIR vim74
 %define site_runtimepath /usr/share/vim/site
 %define make make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/current 
MAKE="make -e" %{?_smp_mflags}
@@ -104,6 +104,9 @@
 Patch22:        %{name}-7.4-filetype_mine.patch
 Patch100:       vim-7.1.314-CVE-2009-0316-debian.patch
 Patch101:       vim73-no-static-libpython.patch
+# Ruby 2.1 calls rb_gc_writebarrier_unprotect_promoted in RARRAY_PTR,
+# stub it for dynamic loading, [email protected]
+Patch102:       vim-7.4-ruby21.patch
 %{perl_requires}
 %{?libperl_requires}
 
@@ -192,6 +195,7 @@
 %patch22 -p1
 %patch100 -p1
 %patch101
+%patch102 -p1
 cp %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE8} %{SOURCE10} .
 
 # newer perl? ugly hack to fix build anyway.

++++++ vim-7.3-filetype_ftl.patch ++++++
--- /var/tmp/diff_new_pack.88GBXi/_old  2014-01-23 15:57:49.000000000 +0100
+++ /var/tmp/diff_new_pack.88GBXi/_new  2014-01-23 15:57:49.000000000 +0100
@@ -13,39 +13,39 @@
 --- vim73.orig/runtime/syntax/ftl.vim  1970-01-01 01:00:00.000000000 +0100
 +++ vim73/runtime/syntax/ftl.vim       2010-11-21 05:13:00.462213463 +0100
 @@ -0,0 +1,36 @@
-+" Vim syntax file
-+" Language:   FreeMarker Template Language (FTL)
-+" Maintainer: Stephan M�ller <[email protected]>
-+" Last Change:  2003 Oct 7
-+
-+syn case match
-+
-+" directives and interpolations
-+syn region ftlStartDirective start=+<#+ end=+>+ contains=ftlKeyword, 
ftlDirective, ftlString, ftlComment
-+syn region ftlEndDirective start=+</#+ end=+>+ contains=ftlDirective
-+syn region ftlStartUserDirective start=+<@+ end=+>+ contains=ftlString, 
ftlComment
-+syn region ftlEndUserDirective start=+</@+ end=+>+
-+syn region ftlInterpolation start=+${+ end=+}+
-+syn region ftlInterpolation2 start=+#{+ end=+}+
-+syn region ftlString contained start=+"+ end=+"+
-+syn region ftlComment start=+<#--+ end=+-->+
-+
-+" keywords
-+syn keyword ftlDirective contained list if else macro import include switch 
case break
-+syn keyword ftlDirective contained assign local global nested recurse 
fallback visit
-+syn keyword ftlDirective contained function return t rt lt nt ftl
-+syn keyword ftlKeyword contained as in using
-+
-+" highlighting
-+highlight link ftlKeyword Statement
-+highlight link ftlDirective Statement
-+highlight link ftlStartDirective Function
-+highlight link ftlEndDirective Function
-+highlight link ftlStartUserDirective Function
-+highlight link ftlEndUserDirective Function
-+highlight link ftlInterpolation Constant
-+highlight link ftlInterpolation2 Constant
-+highlight link ftlString Constant
-+highlight link ftlComment Comment
-+
-+
++" Vim syntax file
++" Language:   FreeMarker Template Language (FTL)
++" Maintainer: Stephan M�ller <[email protected]>
++" Last Change:  2003 Oct 7
++
++syn case match
++
++" directives and interpolations
++syn region ftlStartDirective start=+<#+ end=+>+ contains=ftlKeyword, 
ftlDirective, ftlString, ftlComment
++syn region ftlEndDirective start=+</#+ end=+>+ contains=ftlDirective
++syn region ftlStartUserDirective start=+<@+ end=+>+ contains=ftlString, 
ftlComment
++syn region ftlEndUserDirective start=+</@+ end=+>+
++syn region ftlInterpolation start=+${+ end=+}+
++syn region ftlInterpolation2 start=+#{+ end=+}+
++syn region ftlString contained start=+"+ end=+"+
++syn region ftlComment start=+<#--+ end=+-->+
++
++" keywords
++syn keyword ftlDirective contained list if else macro import include switch 
case break
++syn keyword ftlDirective contained assign local global nested recurse 
fallback visit
++syn keyword ftlDirective contained function return t rt lt nt ftl
++syn keyword ftlKeyword contained as in using
++
++" highlighting
++highlight link ftlKeyword Statement
++highlight link ftlDirective Statement
++highlight link ftlStartDirective Function
++highlight link ftlEndDirective Function
++highlight link ftlStartUserDirective Function
++highlight link ftlEndUserDirective Function
++highlight link ftlInterpolation Constant
++highlight link ftlInterpolation2 Constant
++highlight link ftlString Constant
++highlight link ftlComment Comment
++
++

++++++ vim-7.4-patches.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vim-7.4-patches/7.4.132 new/vim-7.4-patches/7.4.132
--- old/vim-7.4-patches/7.4.132 1970-01-01 01:00:00.000000000 +0100
+++ new/vim-7.4-patches/7.4.132 2014-01-05 13:30:31.000000000 +0100
@@ -0,0 +1,54 @@
+To: [email protected]
+Subject: Patch 7.4.132
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.132 (after 7.4.122)
+Problem:    Win32: flags and inherit_handles arguments mixed up.
+Solution:   Swap the argument. (cs86661)
+Files:     src/os_win32.c
+
+
+*** ../vim-7.4.131/src/os_win32.c      2013-12-12 20:25:39.000000000 +0100
+--- src/os_win32.c     2014-01-05 13:24:15.000000000 +0100
+***************
+*** 3831,3838 ****
+      static BOOL
+  vim_create_process(
+      char             *cmd,
+-     DWORD            flags,
+      BOOL             inherit_handles,
+      STARTUPINFO              *si,
+      PROCESS_INFORMATION *pi)
+  {
+--- 3831,3838 ----
+      static BOOL
+  vim_create_process(
+      char             *cmd,
+      BOOL             inherit_handles,
++     DWORD            flags,
+      STARTUPINFO              *si,
+      PROCESS_INFORMATION *pi)
+  {
+*** ../vim-7.4.131/src/version.c       2013-12-14 13:06:13.000000000 +0100
+--- src/version.c      2014-01-05 13:27:25.000000000 +0100
+***************
+*** 740,741 ****
+--- 740,743 ----
+  {   /* Add new patch number below this line */
++ /**/
++     132,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+93. New mail alarm on your palmtop annoys other churchgoers.
+
+ /// 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    ///
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vim-7.4-patches/7.4.133 new/vim-7.4-patches/7.4.133
--- old/vim-7.4-patches/7.4.133 1970-01-01 01:00:00.000000000 +0100
+++ new/vim-7.4-patches/7.4.133 2014-01-06 07:19:08.000000000 +0100
@@ -0,0 +1,74 @@
+To: [email protected]
+Subject: Patch 7.4.133
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.133
+Problem:    Clang warns for using NUL.
+Solution:   Change NUL to NULL. (Dominique Pelle)
+Files:     src/eval.c, src/misc2.c
+
+
+*** ../vim-7.4.132/src/eval.c  2013-12-14 12:17:34.000000000 +0100
+--- src/eval.c 2014-01-06 06:11:50.000000000 +0100
+***************
+*** 14141,14148 ****
+           }
+           else
+           {
+!              list_append_string(rettv->vval.v_list, NUL, -1);
+!              list_append_string(rettv->vval.v_list, NUL, -1);
+           }
+       }
+  #endif
+--- 14141,14148 ----
+           }
+           else
+           {
+!              list_append_string(rettv->vval.v_list, NULL, -1);
+!              list_append_string(rettv->vval.v_list, NULL, -1);
+           }
+       }
+  #endif
+*** ../vim-7.4.132/src/misc2.c 2013-12-14 12:48:55.000000000 +0100
+--- src/misc2.c        2014-01-06 06:11:50.000000000 +0100
+***************
+*** 4695,4702 ****
+       else
+       {
+           char_u *p =  gettail(search_ctx->ffsc_fix_path);
+!          char_u *wc_path = NUL;
+!          char_u *temp = NUL;
+           int    len = 0;
+  
+           if (p > search_ctx->ffsc_fix_path)
+--- 4695,4702 ----
+       else
+       {
+           char_u *p =  gettail(search_ctx->ffsc_fix_path);
+!          char_u *wc_path = NULL;
+!          char_u *temp = NULL;
+           int    len = 0;
+  
+           if (p > search_ctx->ffsc_fix_path)
+*** ../vim-7.4.132/src/version.c       2014-01-06 06:16:55.000000000 +0100
+--- src/version.c      2014-01-06 06:13:26.000000000 +0100
+***************
+*** 740,741 ****
+--- 740,743 ----
+  {   /* Add new patch number below this line */
++ /**/
++     133,
+  /**/
+
+-- 
+A meeting is an event at which the minutes are kept and the hours are lost.
+
+ /// 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    ///
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vim-7.4-patches/7.4.134 new/vim-7.4-patches/7.4.134
--- old/vim-7.4-patches/7.4.134 1970-01-01 01:00:00.000000000 +0100
+++ new/vim-7.4-patches/7.4.134 2014-01-06 15:45:51.000000000 +0100
@@ -0,0 +1,53 @@
+To: [email protected]
+Subject: Patch 7.4.134
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.134
+Problem:    Spurious space in MingW Makefile.
+Solution:   Remove the space. (Michael Soyka)
+Files:     src/Make_ming.mak
+
+
+*** ../vim-7.4.133/src/Make_ming.mak   2013-12-11 15:06:36.000000000 +0100
+--- src/Make_ming.mak  2014-01-06 15:37:57.000000000 +0100
+***************
+*** 598,604 ****
+  ifeq (yes, $(GUI))
+  OBJ += $(OUTDIR)/xpm_w32.o
+  # You'll need libXpm.a from http://gnuwin32.sf.net
+! LIB += -L $(XPM)/lib -lXpm
+  endif
+  endif
+  
+--- 598,604 ----
+  ifeq (yes, $(GUI))
+  OBJ += $(OUTDIR)/xpm_w32.o
+  # You'll need libXpm.a from http://gnuwin32.sf.net
+! LIB += -L$(XPM)/lib -lXpm
+  endif
+  endif
+  
+*** ../vim-7.4.133/src/version.c       2014-01-06 06:18:44.000000000 +0100
+--- src/version.c      2014-01-06 15:39:32.000000000 +0100
+***************
+*** 740,741 ****
+--- 740,743 ----
+  {   /* Add new patch number below this line */
++ /**/
++     134,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+115. You are late picking up your kid from school and try to explain
+     to the teacher you were stuck in Web traffic.
+
+ /// 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    ///
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vim-7.4-patches/7.4.135 new/vim-7.4-patches/7.4.135
--- old/vim-7.4-patches/7.4.135 1970-01-01 01:00:00.000000000 +0100
+++ new/vim-7.4-patches/7.4.135 2014-01-06 15:52:31.000000000 +0100
@@ -0,0 +1,51 @@
+To: [email protected]
+Subject: Patch 7.4.135
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.135
+Problem:    Missing dot in MingW test Makefile.
+Solution:   Add the dot. (Michael Soyka)
+Files:     src/testdir/Make_ming.mak
+
+
+*** ../vim-7.4.134/src/testdir/Make_ming.mak   2013-11-21 14:21:25.000000000 
+0100
+--- src/testdir/Make_ming.mak  2014-01-06 15:41:27.000000000 +0100
+***************
+*** 53,59 ****
+               test84.out test85.out test86.out test87.out test88.out \
+               test89.out test90.out test91.out test92.out test93.out \
+               test94.out test95.out test96.out test98.out test99.out \
+!              test100out test101.out test102.out test103.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 53,59 ----
+               test84.out test85.out test86.out test87.out test88.out \
+               test89.out test90.out test91.out test92.out test93.out \
+               test94.out test95.out test96.out test98.out test99.out \
+!              test100.out test101.out test102.out test103.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.4.134/src/version.c       2014-01-06 15:44:59.000000000 +0100
+--- src/version.c      2014-01-06 15:47:14.000000000 +0100
+***************
+*** 740,741 ****
+--- 740,743 ----
+  {   /* Add new patch number below this line */
++ /**/
++     135,
+  /**/
+
+-- 
+Two percent of zero is almost nothing.
+
+ /// 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    ///
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vim-7.4-patches/7.4.136 new/vim-7.4-patches/7.4.136
--- old/vim-7.4-patches/7.4.136 1970-01-01 01:00:00.000000000 +0100
+++ new/vim-7.4-patches/7.4.136 2014-01-10 13:07:29.000000000 +0100
@@ -0,0 +1,75 @@
+To: [email protected]
+Subject: Patch 7.4.136
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.136 (after 7.4.096)
+Problem:    MS-Windows: When saving a file with a UNC path the file becomes
+           read-only.
+Solution:   Don't mix up Win32 attributes and Unix attributes. (Ken Takata)
+Files:     src/os_mswin.c, src/os_win32.c
+
+
+*** ../vim-7.4.135/src/os_mswin.c      2013-09-29 19:05:17.000000000 +0200
+--- src/os_mswin.c     2014-01-10 13:03:19.000000000 +0100
+***************
+*** 617,624 ****
+--- 617,638 ----
+      p = buf + strlen(buf);
+      if (p > buf)
+       mb_ptr_back(buf, p);
++ 
++     /* Remove trailing '\\' except root path. */
+      if (p > buf && (*p == '\\' || *p == '/') && p[-1] != ':')
+       *p = NUL;
++ 
++     if ((buf[0] == '\\' && buf[1] == '\\') || (buf[0] == '/' && buf[1] == 
'/'))
++     {
++      /* UNC root path must be followed by '\\'. */
++      p = vim_strpbrk(buf + 2, "\\/");
++      if (p != NULL)
++      {
++          p = vim_strpbrk(p + 1, "\\/");
++          if (p == NULL)
++              STRCAT(buf, "\\");
++      }
++     }
+  #ifdef FEAT_MBYTE
+      if (enc_codepage >= 0 && (int)GetACP() != enc_codepage
+  # ifdef __BORLANDC__
+*** ../vim-7.4.135/src/os_win32.c      2014-01-05 13:29:16.000000000 +0100
+--- src/os_win32.c     2014-01-10 12:59:32.000000000 +0100
+***************
+*** 2890,2898 ****
+      struct stat st;
+      int              n;
+  
+-     if (name[0] == '\\' && name[1] == '\\')
+-      /* UNC path */
+-      return (long)win32_getattrs(name);
+      n = mch_stat(name, &st);
+      return n == 0 ? (long)st.st_mode : -1L;
+  }
+--- 2890,2895 ----
+*** ../vim-7.4.135/src/version.c       2014-01-06 15:51:46.000000000 +0100
+--- src/version.c      2014-01-10 13:04:43.000000000 +0100
+***************
+*** 740,741 ****
+--- 740,743 ----
+  {   /* Add new patch number below this line */
++ /**/
++     136,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+128. You can access the Net -- via your portable and cellular phone.
+
+ /// 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    ///
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vim-7.4-patches/7.4.137 new/vim-7.4-patches/7.4.137
--- old/vim-7.4-patches/7.4.137 1970-01-01 01:00:00.000000000 +0100
+++ new/vim-7.4-patches/7.4.137 2014-01-10 17:09:06.000000000 +0100
@@ -0,0 +1,239 @@
+To: [email protected]
+Subject: Patch 7.4.137
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.137
+Problem:    Cannot use IME with Windows 8 console.
+Solution:   Change the user of ReadConsoleInput() and PeekConsoleInput().
+           (Nobuhiro Takasaki)
+Files:     src/os_win32.c
+
+
+*** ../vim-7.4.136/src/os_win32.c      2014-01-10 13:05:12.000000000 +0100
+--- src/os_win32.c     2014-01-10 13:42:19.000000000 +0100
+***************
+*** 232,237 ****
+--- 232,306 ----
+  
+  static char_u *exe_path = NULL;
+  
++ /*
++  * Version of ReadConsoleInput() that works with IME.
++  */
++     static BOOL
++ read_console_input(
++     HANDLE hConsoleInput,
++     PINPUT_RECORD lpBuffer,
++     DWORD nLength,
++     LPDWORD lpNumberOfEventsRead)
++ {
++     enum
++     {
++      IRSIZE = 10, /* rough value */
++     };
++     static INPUT_RECORD irCache[IRSIZE];
++     static DWORD s_dwIndex = 0;
++     static DWORD s_dwMax = 0;
++ 
++     if (hConsoleInput == NULL || lpBuffer == NULL)
++      return ReadConsoleInput(hConsoleInput, lpBuffer, nLength,
++                                                      lpNumberOfEventsRead);
++ 
++     if (nLength == -1)
++     {
++      if (s_dwMax == 0)
++      {
++          PeekConsoleInput(hConsoleInput, lpBuffer, 1, lpNumberOfEventsRead);
++          if (*lpNumberOfEventsRead == 0)
++              return FALSE;
++          ReadConsoleInput(hConsoleInput, irCache, IRSIZE, &s_dwMax);
++          s_dwIndex = 0;
++      }
++      ((PINPUT_RECORD)lpBuffer)[0] = irCache[s_dwIndex];
++      *lpNumberOfEventsRead = 1;
++      return TRUE;
++     }
++ 
++     if (s_dwMax == 0)
++     {
++      ReadConsoleInput(hConsoleInput, irCache, IRSIZE, &s_dwMax);
++      s_dwIndex = 0;
++      if (s_dwMax == 0)
++      {
++          *lpNumberOfEventsRead = 0;
++          return FALSE;
++      }
++     }
++ 
++     ((PINPUT_RECORD)lpBuffer)[0] = irCache[s_dwIndex];
++     if (++s_dwIndex == s_dwMax)
++      s_dwMax = 0;
++     *lpNumberOfEventsRead = 1;
++     return TRUE;
++ }
++ 
++ /*
++  * Version of PeekConsoleInput() that works with IME.
++  */
++     static BOOL
++ peek_console_input(
++     HANDLE hConsoleInput,
++     PINPUT_RECORD lpBuffer,
++     DWORD nLength,
++     LPDWORD lpNumberOfEventsRead)
++ {
++     return read_console_input(hConsoleInput, lpBuffer, -1,
++                                                      lpNumberOfEventsRead);
++ }
++ 
+      static void
+  get_exe_name(void)
+  {
+***************
+*** 1117,1123 ****
+                       INPUT_RECORD ir;
+                       MOUSE_EVENT_RECORD* pmer2 = &ir.Event.MouseEvent;
+  
+!                      PeekConsoleInput(g_hConIn, &ir, 1, &cRecords);
+  
+                       if (cRecords == 0 || ir.EventType != MOUSE_EVENT
+                               || !(pmer2->dwButtonState & LEFT_RIGHT))
+--- 1186,1192 ----
+                       INPUT_RECORD ir;
+                       MOUSE_EVENT_RECORD* pmer2 = &ir.Event.MouseEvent;
+  
+!                      peek_console_input(g_hConIn, &ir, 1, &cRecords);
+  
+                       if (cRecords == 0 || ir.EventType != MOUSE_EVENT
+                               || !(pmer2->dwButtonState & LEFT_RIGHT))
+***************
+*** 1126,1132 ****
+                       {
+                           if (pmer2->dwEventFlags != MOUSE_MOVED)
+                           {
+!                              ReadConsoleInput(g_hConIn, &ir, 1, &cRecords);
+  
+                               return decode_mouse_event(pmer2);
+                           }
+--- 1195,1201 ----
+                       {
+                           if (pmer2->dwEventFlags != MOUSE_MOVED)
+                           {
+!                              read_console_input(g_hConIn, &ir, 1, &cRecords);
+  
+                               return decode_mouse_event(pmer2);
+                           }
+***************
+*** 1134,1143 ****
+                                    s_yOldMouse == pmer2->dwMousePosition.Y)
+                           {
+                               /* throw away spurious mouse move */
+!                              ReadConsoleInput(g_hConIn, &ir, 1, &cRecords);
+  
+                               /* are there any more mouse events in queue? */
+!                              PeekConsoleInput(g_hConIn, &ir, 1, &cRecords);
+  
+                               if (cRecords==0 || ir.EventType != MOUSE_EVENT)
+                                   break;
+--- 1203,1212 ----
+                                    s_yOldMouse == pmer2->dwMousePosition.Y)
+                           {
+                               /* throw away spurious mouse move */
+!                              read_console_input(g_hConIn, &ir, 1, &cRecords);
+  
+                               /* are there any more mouse events in queue? */
+!                              peek_console_input(g_hConIn, &ir, 1, &cRecords);
+  
+                               if (cRecords==0 || ir.EventType != MOUSE_EVENT)
+                                   break;
+***************
+*** 1374,1380 ****
+       }
+  
+       cRecords = 0;
+!      PeekConsoleInput(g_hConIn, &ir, 1, &cRecords);
+  
+  #ifdef FEAT_MBYTE_IME
+       if (State & CMDLINE && msg_row == Rows - 1)
+--- 1443,1449 ----
+       }
+  
+       cRecords = 0;
+!      peek_console_input(g_hConIn, &ir, 1, &cRecords);
+  
+  #ifdef FEAT_MBYTE_IME
+       if (State & CMDLINE && msg_row == Rows - 1)
+***************
+*** 1405,1411 ****
+               if (ir.Event.KeyEvent.uChar.UnicodeChar == 0
+                       && ir.Event.KeyEvent.wVirtualKeyCode == 13)
+               {
+!                  ReadConsoleInput(g_hConIn, &ir, 1, &cRecords);
+                   continue;
+               }
+  #endif
+--- 1474,1480 ----
+               if (ir.Event.KeyEvent.uChar.UnicodeChar == 0
+                       && ir.Event.KeyEvent.wVirtualKeyCode == 13)
+               {
+!                  read_console_input(g_hConIn, &ir, 1, &cRecords);
+                   continue;
+               }
+  #endif
+***************
+*** 1414,1420 ****
+                   return TRUE;
+           }
+  
+!          ReadConsoleInput(g_hConIn, &ir, 1, &cRecords);
+  
+           if (ir.EventType == FOCUS_EVENT)
+               handle_focus_event(ir);
+--- 1483,1489 ----
+                   return TRUE;
+           }
+  
+!          read_console_input(g_hConIn, &ir, 1, &cRecords);
+  
+           if (ir.EventType == FOCUS_EVENT)
+               handle_focus_event(ir);
+***************
+*** 1484,1490 ****
+           return 0;
+  # endif
+  #endif
+!      if (ReadConsoleInput(g_hConIn, &ir, 1, &cRecords) == 0)
+       {
+           if (did_create_conin)
+               read_error_exit();
+--- 1553,1559 ----
+           return 0;
+  # endif
+  #endif
+!      if (read_console_input(g_hConIn, &ir, 1, &cRecords) == 0)
+       {
+           if (did_create_conin)
+               read_error_exit();
+*** ../vim-7.4.136/src/version.c       2014-01-10 13:05:12.000000000 +0100
+--- src/version.c      2014-01-10 13:42:34.000000000 +0100
+***************
+*** 740,741 ****
+--- 740,743 ----
+  {   /* Add new patch number below this line */
++ /**/
++     137,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+131. You challenge authority and society by portnuking people
+
+ /// 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    ///
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vim-7.4-patches/7.4.138 new/vim-7.4-patches/7.4.138
--- old/vim-7.4-patches/7.4.138 1970-01-01 01:00:00.000000000 +0100
+++ new/vim-7.4-patches/7.4.138 2014-01-10 15:33:04.000000000 +0100
@@ -0,0 +1,55 @@
+To: [email protected]
+Subject: Patch 7.4.138
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.138 (after 7.4.114)
+Problem:    Directory change messages are not recognized.
+Solution:   Fix using a character range literally. (Lech Lorens)
+Files:     src/option.h
+
+
+*** ../vim-7.4.137/src/option.h        2013-12-11 12:22:54.000000000 +0100
+--- src/option.h       2014-01-10 15:17:09.000000000 +0100
+***************
+*** 31,39 ****
+  #     define DFLT_EFM        "%A%p^,%C%%CC-%t-%m,%Cat line number %l in file 
%f,%f|%l| %m"
+  #    else /* Unix, probably */
+  #     ifdef EBCDIC
+! #define DFLT_EFM     "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: 
%m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line 
%l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory [`']%f',%X%*\\a[%*\\d]: 
Leaving directory [`']%f',%DMaking %*\\a in %f,%f|%l| %m"
+  #     else
+! #define DFLT_EFM     "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: 
(Each undeclared identifier is reported only once,%-G%f:%l: for each function 
it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from 
%f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from 
%f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ 
]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] 
%m,%D%*\\a[%*\\d]: Entering directory [`']%f',%X%*\\a[%*\\d]: Leaving directory 
[`']%f',%D%*\\a: Entering directory [`']%f',%X%*\\a: Leaving directory 
[`']%f',%DMaking %*\\a in %f,%f|%l| %m"
+  #     endif
+  #    endif
+  #   endif
+--- 31,39 ----
+  #     define DFLT_EFM        "%A%p^,%C%%CC-%t-%m,%Cat line number %l in file 
%f,%f|%l| %m"
+  #    else /* Unix, probably */
+  #     ifdef EBCDIC
+! #define DFLT_EFM     "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: 
%m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line 
%l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory %*[`']%f',%X%*\\a[%*\\d]: 
Leaving directory %*[`']%f',%DMaking %*\\a in %f,%f|%l| %m"
+  #     else
+! #define DFLT_EFM     "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: 
(Each undeclared identifier is reported only once,%-G%f:%l: for each function 
it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from 
%f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from 
%f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ 
]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] 
%m,%D%*\\a[%*\\d]: Entering directory %*[`']%f',%X%*\\a[%*\\d]: Leaving 
directory %*[`']%f',%D%*\\a: Entering directory %*[`']%f',%X%*\\a: Leaving 
directory %*[`']%f',%DMaking %*\\a in %f,%f|%l| %m"
+  #     endif
+  #    endif
+  #   endif
+*** ../vim-7.4.137/src/version.c       2014-01-10 13:51:35.000000000 +0100
+--- src/version.c      2014-01-10 15:17:04.000000000 +0100
+***************
+*** 740,741 ****
+--- 740,743 ----
+  {   /* Add new patch number below this line */
++ /**/
++     138,
+  /**/
+
+-- 
+In a world without fences, who needs Gates and Windows?
+
+ /// 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    ///
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vim-7.4-patches/7.4.139 new/vim-7.4-patches/7.4.139
--- old/vim-7.4-patches/7.4.139 1970-01-01 01:00:00.000000000 +0100
+++ new/vim-7.4-patches/7.4.139 2014-01-10 15:54:03.000000000 +0100
@@ -0,0 +1,76 @@
+To: [email protected]
+Subject: Patch 7.4.139
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.139
+Problem:    Crash when using :cd in autocommand. (François Ingelrest)
+Solution:   Set w_localdir to NULL after freeing it. (Dominique Pelle)
+Files:     src/ex_docmd.c, src/window.c
+
+
+*** ../vim-7.4.138/src/ex_docmd.c      2013-12-14 13:06:13.000000000 +0100
+--- src/ex_docmd.c     2014-01-10 15:39:58.000000000 +0100
+***************
+*** 8228,8233 ****
+--- 8228,8234 ----
+      int              local;
+  {
+      vim_free(curwin->w_localdir);
++     curwin->w_localdir = NULL;
+      if (local)
+      {
+       /* If still in global directory, need to remember current
+***************
+*** 8244,8250 ****
+        * name. */
+       vim_free(globaldir);
+       globaldir = NULL;
+-      curwin->w_localdir = NULL;
+      }
+  
+      shorten_fnames(TRUE);
+--- 8245,8250 ----
+*** ../vim-7.4.138/src/window.c        2013-08-14 17:11:14.000000000 +0200
+--- src/window.c       2014-01-10 15:39:58.000000000 +0100
+***************
+*** 1216,1223 ****
+      else
+       copy_loclist(oldp, newp);
+  #endif
+!     if (oldp->w_localdir != NULL)
+!      newp->w_localdir = vim_strsave(oldp->w_localdir);
+  
+      /* copy tagstack and folds */
+      for (i = 0; i < oldp->w_tagstacklen; i++)
+--- 1216,1223 ----
+      else
+       copy_loclist(oldp, newp);
+  #endif
+!     newp->w_localdir = (oldp->w_localdir == NULL)
+!                                  ? NULL : vim_strsave(oldp->w_localdir);
+  
+      /* copy tagstack and folds */
+      for (i = 0; i < oldp->w_tagstacklen; i++)
+*** ../vim-7.4.138/src/version.c       2014-01-10 15:32:17.000000000 +0100
+--- src/version.c      2014-01-10 15:39:48.000000000 +0100
+***************
+*** 740,741 ****
+--- 740,743 ----
+  {   /* Add new patch number below this line */
++ /**/
++     139,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+132. You come back and check this list every half-hour.
+
+ /// 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    ///
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vim-7.4-patches/7.4.140 new/vim-7.4-patches/7.4.140
--- old/vim-7.4-patches/7.4.140 1970-01-01 01:00:00.000000000 +0100
+++ new/vim-7.4-patches/7.4.140 2014-01-10 16:44:38.000000000 +0100
@@ -0,0 +1,174 @@
+To: [email protected]
+Subject: Patch 7.4.140
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.140
+Problem:    Crash when wiping out buffer triggers autocommand that wipes out
+           only other buffer.
+Solution:   Do not delete the last buffer, make it empty. (Hirohito Higashi)
+Files:     src/buffer.c
+
+
+*** ../vim-7.4.139/src/buffer.c        2013-11-06 05:26:08.000000000 +0100
+--- src/buffer.c       2014-01-10 16:41:22.000000000 +0100
+***************
+*** 994,999 ****
+--- 994,1043 ----
+  #if defined(FEAT_LISTCMDS) || defined(FEAT_PYTHON) \
+       || defined(FEAT_PYTHON3) || defined(PROTO)
+  
++ static int   empty_curbuf __ARGS((int close_others, int forceit, int 
action));
++ 
++ /*
++  * Make the current buffer empty.
++  * Used when it is wiped out and it's the last buffer.
++  */
++     static int
++ empty_curbuf(close_others, forceit, action)
++     int close_others;
++     int forceit;
++     int action;
++ {
++     int          retval;
++     buf_T   *buf = curbuf;
++ 
++     if (action == DOBUF_UNLOAD)
++     {
++      EMSG(_("E90: Cannot unload last buffer"));
++      return FAIL;
++     }
++ 
++     if (close_others)
++     {
++      /* Close any other windows on this buffer, then make it empty. */
++ #ifdef FEAT_WINDOWS
++      close_windows(buf, TRUE);
++ #endif
++     }
++ 
++     setpcmark();
++     retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
++                                        forceit ? ECMD_FORCEIT : 0, curwin);
++ 
++     /*
++      * do_ecmd() may create a new buffer, then we have to delete
++      * the old one.  But do_ecmd() may have done that already, check
++      * if the buffer still exists.
++      */
++     if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
++      close_buffer(NULL, buf, action, FALSE);
++     if (!close_others)
++      need_fileinfo = FALSE;
++     return retval;
++ }
+  /*
+   * Implementation of the commands for the buffer list.
+   *
+***************
+*** 1114,1120 ****
+      if (unload)
+      {
+       int     forward;
+-      int     retval;
+  
+       /* When unloading or deleting a buffer that's already unloaded and
+        * unlisted: fail silently. */
+--- 1158,1163 ----
+***************
+*** 1155,1184 ****
+           if (bp->b_p_bl && bp != buf)
+               break;
+       if (bp == NULL && buf == curbuf)
+!      {
+!          if (action == DOBUF_UNLOAD)
+!          {
+!              EMSG(_("E90: Cannot unload last buffer"));
+!              return FAIL;
+!          }
+! 
+!          /* Close any other windows on this buffer, then make it empty. */
+! #ifdef FEAT_WINDOWS
+!          close_windows(buf, TRUE);
+! #endif
+!          setpcmark();
+!          retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
+!                                        forceit ? ECMD_FORCEIT : 0, curwin);
+! 
+!          /*
+!           * do_ecmd() may create a new buffer, then we have to delete
+!           * the old one.  But do_ecmd() may have done that already, check
+!           * if the buffer still exists.
+!           */
+!          if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
+!              close_buffer(NULL, buf, action, FALSE);
+!          return retval;
+!      }
+  
+  #ifdef FEAT_WINDOWS
+       /*
+--- 1198,1204 ----
+           if (bp->b_p_bl && bp != buf)
+               break;
+       if (bp == NULL && buf == curbuf)
+!          return empty_curbuf(TRUE, forceit, action);
+  
+  #ifdef FEAT_WINDOWS
+       /*
+***************
+*** 1212,1218 ****
+  
+       /*
+        * Deleting the current buffer: Need to find another buffer to go to.
+!       * There must be another, otherwise it would have been handled above.
+        * First use au_new_curbuf, if it is valid.
+        * Then prefer the buffer we most recently visited.
+        * Else try to find one that is loaded, after the current buffer,
+--- 1232,1239 ----
+  
+       /*
+        * Deleting the current buffer: Need to find another buffer to go to.
+!       * There should be another, otherwise it would have been handled
+!       * above.  However, autocommands may have deleted all buffers.
+        * First use au_new_curbuf, if it is valid.
+        * Then prefer the buffer we most recently visited.
+        * Else try to find one that is loaded, after the current buffer,
+***************
+*** 1311,1316 ****
+--- 1332,1344 ----
+       }
+      }
+  
++     if (buf == NULL)
++     {
++      /* Autocommands must have wiped out all other buffers.  Only option
++       * now is to make the current buffer empty. */
++      return empty_curbuf(FALSE, forceit, action);
++     }
++ 
+      /*
+       * make buf current buffer
+       */
+*** ../vim-7.4.139/src/version.c       2014-01-10 15:53:09.000000000 +0100
+--- src/version.c      2014-01-10 16:36:03.000000000 +0100
+***************
+*** 740,741 ****
+--- 740,743 ----
+  {   /* Add new patch number below this line */
++ /**/
++     140,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+133. You communicate with people on other continents more than you
+     do with your own neighbors.
+
+ /// 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    ///
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vim-7.4-patches/7.4.141 new/vim-7.4-patches/7.4.141
--- old/vim-7.4-patches/7.4.141 1970-01-01 01:00:00.000000000 +0100
+++ new/vim-7.4-patches/7.4.141 2014-01-10 19:18:55.000000000 +0100
@@ -0,0 +1,88 @@
+To: [email protected]
+Subject: Patch 7.4.141
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.141
+Problem:    Problems when building with Borland: st_mode is signed short;
+           can't build with Python; temp files not ignored by Mercurial;
+           building with DEBUG doesn't define _DEBUG.
+Solution:   Fix the problems. (Ken Takata)
+Files:     src/Make_bc5.mak, src/if_py_both.h, src/os_win32.c
+
+
+*** ../vim-7.4.140/src/Make_bc5.mak    2013-06-03 20:09:58.000000000 +0200
+--- src/Make_bc5.mak   2014-01-10 18:12:14.000000000 +0100
+***************
+*** 419,425 ****
+  ALIGNARG = -a$(ALIGN)
+  #
+  !if ("$(DEBUG)"=="yes")
+! DEFINES=$(DEFINES) -DDEBUG
+  !endif
+  #
+  !if ("$(OLE)"=="yes")
+--- 419,425 ----
+  ALIGNARG = -a$(ALIGN)
+  #
+  !if ("$(DEBUG)"=="yes")
+! DEFINES=$(DEFINES) -DDEBUG -D_DEBUG
+  !endif
+  #
+  !if ("$(OLE)"=="yes")
+*** ../vim-7.4.140/src/if_py_both.h    2013-12-07 14:28:37.000000000 +0100
+--- src/if_py_both.h   2014-01-10 18:12:14.000000000 +0100
+***************
+*** 13,18 ****
+--- 13,23 ----
+   * Common code for if_python.c and if_python3.c.
+   */
+  
++ #ifdef __BORLANDC__
++ /* Disable Warning W8060: Possibly incorrect assignment in function ... */
++ # pragma warn -8060
++ #endif
++ 
+  static char_u e_py_systemexit[]      = "E880: Can't handle SystemExit of %s 
exception in vim";
+  
+  #if PY_VERSION_HEX < 0x02050000
+*** ../vim-7.4.140/src/os_win32.c      2014-01-10 13:51:35.000000000 +0100
+--- src/os_win32.c     2014-01-10 18:12:14.000000000 +0100
+***************
+*** 2960,2966 ****
+      int              n;
+  
+      n = mch_stat(name, &st);
+!     return n == 0 ? (long)st.st_mode : -1L;
+  }
+  
+  
+--- 2960,2966 ----
+      int              n;
+  
+      n = mch_stat(name, &st);
+!     return n == 0 ? (long)(unsigned short)st.st_mode : -1L;
+  }
+  
+  
+*** ../vim-7.4.140/src/version.c       2014-01-10 16:43:09.000000000 +0100
+--- src/version.c      2014-01-10 18:14:58.000000000 +0100
+***************
+*** 740,741 ****
+--- 740,743 ----
+  {   /* Add new patch number below this line */
++ /**/
++     141,
+  /**/
+
+-- 
+Never eat yellow snow.
+
+ /// 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    ///
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vim-7.4-patches/7.4.142 new/vim-7.4-patches/7.4.142
--- old/vim-7.4-patches/7.4.142 1970-01-01 01:00:00.000000000 +0100
+++ new/vim-7.4-patches/7.4.142 2014-01-12 13:25:59.000000000 +0100
@@ -0,0 +1,186 @@
+To: [email protected]
+Subject: Patch 7.4.142
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.142 (after 7.4.137)
+Problem:    On MS-Windows 8 IME input doen't work correctly.
+Solution:   Work around the problem. (Nobuhiro Takasaki)
+Files:     src/os_win32.c
+
+
+*** ../vim-7.4.141/src/os_win32.c      2014-01-10 18:16:00.000000000 +0100
+--- src/os_win32.c     2014-01-12 13:23:24.000000000 +0100
+***************
+*** 234,289 ****
+  
+  /*
+   * Version of ReadConsoleInput() that works with IME.
+   */
+      static BOOL
+  read_console_input(
+!     HANDLE hConsoleInput,
+!     PINPUT_RECORD lpBuffer,
+!     DWORD nLength,
+!     LPDWORD lpNumberOfEventsRead)
+  {
+      enum
+      {
+!      IRSIZE = 10, /* rough value */
+      };
+!     static INPUT_RECORD irCache[IRSIZE];
+      static DWORD s_dwIndex = 0;
+      static DWORD s_dwMax = 0;
+! 
+!     if (hConsoleInput == NULL || lpBuffer == NULL)
+!      return ReadConsoleInput(hConsoleInput, lpBuffer, nLength,
+!                                                      lpNumberOfEventsRead);
+! 
+!     if (nLength == -1)
+!     {
+!      if (s_dwMax == 0)
+!      {
+!          PeekConsoleInput(hConsoleInput, lpBuffer, 1, lpNumberOfEventsRead);
+!          if (*lpNumberOfEventsRead == 0)
+!              return FALSE;
+!          ReadConsoleInput(hConsoleInput, irCache, IRSIZE, &s_dwMax);
+!          s_dwIndex = 0;
+!      }
+!      ((PINPUT_RECORD)lpBuffer)[0] = irCache[s_dwIndex];
+!      *lpNumberOfEventsRead = 1;
+!      return TRUE;
+!     }
+  
+      if (s_dwMax == 0)
+      {
+!      ReadConsoleInput(hConsoleInput, irCache, IRSIZE, &s_dwMax);
+       s_dwIndex = 0;
+!      if (s_dwMax == 0)
+       {
+!          *lpNumberOfEventsRead = 0;
+!          return FALSE;
+       }
+      }
+! 
+!     ((PINPUT_RECORD)lpBuffer)[0] = irCache[s_dwIndex];
+!     if (++s_dwIndex == s_dwMax)
+       s_dwMax = 0;
+!     *lpNumberOfEventsRead = 1;
+      return TRUE;
+  }
+  
+--- 234,275 ----
+  
+  /*
+   * Version of ReadConsoleInput() that works with IME.
++  * Works around problems on Windows 8.
+   */
+      static BOOL
+  read_console_input(
+!     HANDLE       hInput,
+!     INPUT_RECORD    *lpBuffer,
+!     DWORD        nLength,
+!     LPDWORD      lpEvents)
+  {
+      enum
+      {
+!      IRSIZE = 10
+      };
+!     static INPUT_RECORD s_irCache[IRSIZE];
+      static DWORD s_dwIndex = 0;
+      static DWORD s_dwMax = 0;
+!     DWORD dwEvents;
+  
+      if (s_dwMax == 0)
+      {
+!      if (nLength == -1)
+!          return PeekConsoleInput(hInput, lpBuffer, 1, lpEvents);
+!      if (!ReadConsoleInput(hInput, s_irCache, IRSIZE, &dwEvents))
+!          return FALSE;
+       s_dwIndex = 0;
+!      s_dwMax = dwEvents;
+!      if (dwEvents == 0)
+       {
+!          *lpEvents = 0;
+!          return TRUE;
+       }
+      }
+!     *lpBuffer = s_irCache[s_dwIndex];
+!     if (nLength != -1 && ++s_dwIndex >= s_dwMax)
+       s_dwMax = 0;
+!     *lpEvents = 1;
+      return TRUE;
+  }
+  
+***************
+*** 292,304 ****
+   */
+      static BOOL
+  peek_console_input(
+!     HANDLE hConsoleInput,
+!     PINPUT_RECORD lpBuffer,
+!     DWORD nLength,
+!     LPDWORD lpNumberOfEventsRead)
+  {
+!     return read_console_input(hConsoleInput, lpBuffer, -1,
+!                                                      lpNumberOfEventsRead);
+  }
+  
+      static void
+--- 278,289 ----
+   */
+      static BOOL
+  peek_console_input(
+!     HANDLE       hInput,
+!     INPUT_RECORD    *lpBuffer,
+!     DWORD        nLength,
+!     LPDWORD      lpEvents)
+  {
+!     return read_console_input(hInput, lpBuffer, -1, lpEvents);
+  }
+  
+      static void
+***************
+*** 585,594 ****
+      static BOOL
+  win32_enable_privilege(LPTSTR lpszPrivilege, BOOL bEnable)
+  {
+!     BOOL             bResult;
+!     LUID             luid;
+!     HANDLE           hToken;
+!     TOKEN_PRIVILEGES tokenPrivileges;
+  
+      if (!OpenProcessToken(GetCurrentProcess(),
+               TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
+--- 570,579 ----
+      static BOOL
+  win32_enable_privilege(LPTSTR lpszPrivilege, BOOL bEnable)
+  {
+!     BOOL             bResult;
+!     LUID             luid;
+!     HANDLE           hToken;
+!     TOKEN_PRIVILEGES tokenPrivileges;
+  
+      if (!OpenProcessToken(GetCurrentProcess(),
+               TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
+*** ../vim-7.4.141/src/version.c       2014-01-10 18:16:00.000000000 +0100
+--- src/version.c      2014-01-12 13:17:47.000000000 +0100
+***************
+*** 740,741 ****
+--- 740,743 ----
+  {   /* Add new patch number below this line */
++ /**/
++     142,
+  /**/
+
+-- 
+Drink wet cement and get really stoned.
+
+ /// 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    ///

++++++ vim-7.4-ruby21.patch ++++++
diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x 
autom4te.cache -x .deps -x .libs ../orig-vim74/src/if_ruby.c ./src/if_ruby.c
--- ../orig-vim74/src/if_ruby.c 2013-05-20 12:47:48.000000000 +0200
+++ ./src/if_ruby.c     2014-01-10 09:04:58.926094655 +0100
@@ -96,6 +96,10 @@
 # define rb_num2int rb_num2int_stub
 #endif
 
+# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER > 20
+# define rb_gc_writebarrier_unprotect_promoted 
rb_gc_writebarrier_unprotect_promoted_stub
+# endif
+
 #include <ruby.h>
 #ifdef RUBY19_OR_LATER
 # include <ruby/encoding.h>
@@ -213,6 +217,9 @@
 # define rb_obj_alloc                  dll_rb_obj_alloc
 # define rb_obj_as_string              dll_rb_obj_as_string
 # define rb_obj_id                     dll_rb_obj_id
+# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER > 20
+# define rb_gc_writebarrier_unprotect_promoted 
dll_rb_gc_writebarrier_unprotect_promoted
+# endif
 # define rb_raise                      dll_rb_raise
 # define rb_str_cat                    dll_rb_str_cat
 # define rb_str_concat                 dll_rb_str_concat
@@ -317,6 +324,9 @@
 static VALUE (*dll_rb_obj_alloc) (VALUE);
 static VALUE (*dll_rb_obj_as_string) (VALUE);
 static VALUE (*dll_rb_obj_id) (VALUE);
+# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER > 20
+static void (*dll_rb_gc_writebarrier_unprotect_promoted) (VALUE);
+# endif
 static void (*dll_rb_raise) (VALUE, const char*, ...);
 # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
 static VALUE (*dll_rb_string_value) (volatile VALUE*);
@@ -393,6 +403,12 @@
     return dll_rb_num2int(x);
 }
 #  endif
+#  if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER > 20
+void rb_gc_writebarrier_unprotect_promoted_stub(VALUE obj)
+{
+    dll_rb_gc_writebarrier_unprotect_promoted(obj);
+}
+#  endif
 #  if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20
 VALUE
 rb_float_new_in_heap(double d)
@@ -462,6 +478,9 @@
     {"rb_obj_alloc", (RUBY_PROC*)&dll_rb_obj_alloc},
     {"rb_obj_as_string", (RUBY_PROC*)&dll_rb_obj_as_string},
     {"rb_obj_id", (RUBY_PROC*)&dll_rb_obj_id},
+# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER > 20
+    {"dll_rb_gc_writebarrier_unprotect_promoted", 
(RUBY_PROC*)&dll_rb_gc_writebarrier_unprotect_promoted},
+# endif
     {"rb_raise", (RUBY_PROC*)&dll_rb_raise},
 # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
     {"rb_string_value", (RUBY_PROC*)&dll_rb_string_value},
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to