diff --git a/.gitignore b/.gitignore
index 6996d93..9185cac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,18 @@ vim-7.2.tar.bz2
 /vim-7.3.tar.bz2
 /vim-7.4.tar.bz2
 /vim-7.4-909.tar.bz2
+/vim-7.4-917.tar.bz2
+/vim-7.4-922.tar.bz2
+/vim-7.4-930.tar.bz2
+/vim-7.4-941.tar.bz2
+/vim-7.4-942.tar.bz2
+/vim-7.4-944.tar.bz2
+/vim-7.4-945.tar.bz2
+/vim-7.4-947.tar.bz2
+/vim-7.4-960.tar.bz2
+/vim-7.4-969.tar.bz2
+/vim-7.4-970.tar.bz2
+/vim-7.4-972.tar.bz2
+/vim-7.4-977.tar.bz2
+/vim-7.4-979.tar.bz2
+/vim-7.4-1087.tar.bz2
diff --git a/7.4.899 b/7.4.899
new file mode 100644
index 0000000..df1534f
--- /dev/null
+++ b/7.4.899
@@ -0,0 +1,140 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.899
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.899
+Problem:    README file is not optimal.
+Solution:   Move buttons, update some text. (closes #460)
+Files:      README.txt, README.md
+
+
+*** ../vim-7.4.898/README.txt	2013-08-10 13:24:51.000000000 +0200
+--- README.txt	2015-10-25 13:50:34.962876572 +0100
+***************
+*** 1,7 ****
+  README.txt for version 7.4 of Vim: Vi IMproved.
+  
+  
+! WHAT IS VIM
+  
+  Vim is an almost compatible version of the UNIX editor Vi.  Many new features
+  have been added: multi-level undo, syntax highlighting, command line history,
+--- 1,7 ----
+  README.txt for version 7.4 of Vim: Vi IMproved.
+  
+  
+! WHAT IS VIM?
+  
+  Vim is an almost compatible version of the UNIX editor Vi.  Many new features
+  have been added: multi-level undo, syntax highlighting, command line history,
+***************
+*** 21,26 ****
+--- 21,30 ----
+  
+  DISTRIBUTION
+  
++ You can often use your favorite package manager to install Vim.  On Mac and
++ Linux a small version of Vim is pre-installed, you still need to install Vim
++ if you want more features.
++ 
+  There are separate distributions for Unix, PC, Amiga and some other systems.
+  This README.txt file comes with the runtime archive.  It includes the
+  documentation, syntax files and other files that are used at runtime.  To run
+***************
+*** 94,101 ****
+  The latest news about Vim can be found on the Vim home page:
+  	http://www.vim.org/
+  
+! If you have problems, have a look at the Vim FAQ:
+! 	http://vimdoc.sf.net/vimfaq.html
+  
+  If you still have problems or any other questions, use one of the mailing
+  lists to discuss them with Vim users and developers:
+--- 98,106 ----
+  The latest news about Vim can be found on the Vim home page:
+  	http://www.vim.org/
+  
+! If you have problems, have a look at the Vim documentation or tips:
+! 	http://www.vim.org/docs.php
+! 	http://vim.wikia.com/wiki/Vim_Tips_Wiki
+  
+  If you still have problems or any other questions, use one of the mailing
+  lists to discuss them with Vim users and developers:
+***************
+*** 110,115 ****
+  Send any other comments, patches, flowers and suggestions to:
+  
+  	Bram Moolenaar		E-mail:	Bram@vim.org
+- 	Finsterruetihof 1
+- 	8134 Adliswil
+- 	Switzerland
+--- 115,117 ----
+*** ../vim-7.4.898/README.md	2015-09-25 17:50:16.350057915 +0200
+--- README.md	2015-10-25 13:50:31.734914034 +0100
+***************
+*** 1,7 ****
+  `README.md` for version 7.4 of Vim: Vi IMproved.
+  
+  
+! ## What is VIM ##
+  
+  Vim is an almost compatible version of the UNIX editor Vi.  Many new features
+  have been added: multi-level undo, syntax highlighting, command line history,
+--- 1,9 ----
+  `README.md` for version 7.4 of Vim: Vi IMproved.
++ [![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
++ [![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master)
+  
+  
+! ## What is Vim? ##
+  
+  Vim is an almost compatible version of the UNIX editor Vi.  Many new features
+  have been added: multi-level undo, syntax highlighting, command line history,
+***************
+*** 21,26 ****
+--- 23,32 ----
+  
+  ## Distribution ##
+  
++ You can often use your favorite package manager to install Vim.  On Mac and
++ Linux a small version of Vim is pre-installed, you still need to install Vim
++ if you want more features.
++ 
+  There are separate distributions for Unix, PC, Amiga and some other systems.
+  This `README.md` file comes with the runtime archive.  It includes the
+  documentation, syntax files and other files that are used at runtime.  To run
+***************
+*** 29,37 ****
+  want or must compile it yourself.  Check http://www.vim.org/download.php for
+  an overview of currently available distributions.
+  
+- [![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
+- [![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master)
+- 
+  
+  ## Documentation ##
+  
+--- 35,40 ----
+*** ../vim-7.4.898/src/version.c	2015-10-13 20:55:46.058715228 +0200
+--- src/version.c	2015-10-25 13:52:02.669858690 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     899,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+45. You buy a Captain Kirk chair with a built-in keyboard and mouse.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.900 b/7.4.900
new file mode 100644
index 0000000..58df7d7
--- /dev/null
+++ b/7.4.900
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.900
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.900 (after 7.4.899)
+Problem:    README file can still be improved
+Solution:   Add a couple of links. (Christian Brabandt)
+Files:      README.md
+
+
+*** ../vim-7.4.899/README.md	2015-10-25 13:54:55.295855322 +0100
+--- README.md	2015-10-25 22:37:29.690425913 +0100
+***************
+*** 1,6 ****
+--- 1,7 ----
+  `README.md` for version 7.4 of Vim: Vi IMproved.
+  [![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
+  [![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master)
++ [![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim)
+  
+  
+  ## What is Vim? ##
+***************
+*** 97,103 ****
+  
+  ## Contributing ##
+  
+! If you would like to help making Vim better, see the `CONTRIBUTING.md` file.
+  
+  
+  ## Information ##
+--- 98,104 ----
+  
+  ## Contributing ##
+  
+! If you would like to help making Vim better, see the [CONTRIBUTING.md](https://github.com/vim/vim/blob/master/CONTRIBUTING.md) file.
+  
+  
+  ## Information ##
+*** ../vim-7.4.899/src/version.c	2015-10-25 13:54:55.295855322 +0100
+--- src/version.c	2015-10-25 22:38:13.829864624 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     900,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+51. You put a pillow case over your laptop so your lover doesn't see it while
+    you are pretending to catch your breath.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.901 b/7.4.901
new file mode 100644
index 0000000..8ad799a
--- /dev/null
+++ b/7.4.901
@@ -0,0 +1,77 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.901
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.901
+Problem:    When a BufLeave autocommand changes folding in a way it syncs
+            undo, undo can be corrupted.
+Solution:   Prevent undo sync. (Jacob Niehus)
+Files:      src/popupmnu.c
+
+
+*** ../vim-7.4.900/src/popupmnu.c	2014-07-23 21:10:39.867766788 +0200
+--- src/popupmnu.c	2015-10-30 14:19:21.681104047 +0100
+***************
+*** 568,574 ****
+--- 568,578 ----
+  	    if (p_pvh > 0 && p_pvh < g_do_tagpreview)
+  		g_do_tagpreview = p_pvh;
+  	    ++RedrawingDisabled;
++ 	    /* Prevent undo sync here, if an autocommand syncs undo weird
++ 	     * things can happen to the undo tree. */
++ 	    ++no_u_sync;
+  	    resized = prepare_tagpreview(FALSE);
++ 	    --no_u_sync;
+  	    --RedrawingDisabled;
+  	    g_do_tagpreview = 0;
+  
+***************
+*** 659,665 ****
+--- 663,671 ----
+  			 * redraw. */
+  			if (resized)
+  			{
++ 			    ++no_u_sync;
+  			    win_enter(curwin_save, TRUE);
++ 			    --no_u_sync;
+  			    update_topline();
+  			}
+  
+***************
+*** 670,676 ****
+--- 676,686 ----
+  			pum_do_redraw = FALSE;
+  
+  			if (!resized && win_valid(curwin_save))
++ 			{
++ 			    ++no_u_sync;
+  			    win_enter(curwin_save, TRUE);
++ 			    --no_u_sync;
++ 			}
+  
+  			/* May need to update the screen again when there are
+  			 * autocommands involved. */
+*** ../vim-7.4.900/src/version.c	2015-10-25 22:41:56.703017233 +0100
+--- src/version.c	2015-10-30 14:16:43.274962288 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     901,
+  /**/
+
+
+-- 
+Creating the world with Emacs:   M-x let-there-be-light
+Creating the world with Vim:     :make world
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.902 b/7.4.902
new file mode 100644
index 0000000..d83174a
--- /dev/null
+++ b/7.4.902
@@ -0,0 +1,491 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.902
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.902
+Problem:    Problems with using the MS-Windows console.
+Solution:   Revert patches 7.4.851, 7.4.876 and 7.4.886 until we find a better
+            solution. (suggested by Ken Takata)
+Files:      src/os_win32.c
+
+
+*** ../vim-7.4.901/src/os_win32.c	2015-09-29 14:01:08.059935930 +0200
+--- src/os_win32.c	2015-10-30 16:43:34.543013902 +0100
+***************
+*** 234,240 ****
+  
+  static char_u *exe_path = NULL;
+  
+- static BOOL is_win7 = FALSE;
+  static BOOL win8_or_later = FALSE;
+  
+  /*
+--- 234,239 ----
+***************
+*** 681,689 ****
+  
+  	g_PlatformId = ovi.dwPlatformId;
+  
+- 	if ((ovi.dwMajorVersion == 6 && ovi.dwMinorVersion == 1))
+- 	    is_win7 = TRUE;
+- 
+  	if ((ovi.dwMajorVersion == 6 && ovi.dwMinorVersion >= 2)
+  		|| ovi.dwMajorVersion > 6)
+  	    win8_or_later = TRUE;
+--- 680,685 ----
+***************
+*** 2173,2179 ****
+  {
+      BOOL			IsValid;
+      CONSOLE_SCREEN_BUFFER_INFO	Info;
+!     HANDLE			handle;
+  } ConsoleBuffer;
+  
+  /*
+--- 2169,2176 ----
+  {
+      BOOL			IsValid;
+      CONSOLE_SCREEN_BUFFER_INFO	Info;
+!     PCHAR_INFO			Buffer;
+!     COORD			BufferSize;
+  } ConsoleBuffer;
+  
+  /*
+***************
+*** 2190,2270 ****
+  SaveConsoleBuffer(
+      ConsoleBuffer *cb)
+  {
+      if (cb == NULL)
+  	return FALSE;
+  
+!     if (!GetConsoleScreenBufferInfo(cb->handle, &cb->Info))
+      {
+  	cb->IsValid = FALSE;
+  	return FALSE;
+      }
+      cb->IsValid = TRUE;
+  
+-     return TRUE;
+- }
+- 
+- /*
+-  * CopyOldConsoleBuffer()
+-  * Description:
+-  *  Copies the old console buffer contents to the current console buffer.
+-  *  This is used when 'restorescreen' is off.
+-  * Returns:
+-  *  TRUE on success
+-  */
+-     static BOOL
+- CopyOldConsoleBuffer(
+-     ConsoleBuffer   *cb,
+-     HANDLE	    hConOld)
+- {
+-     COORD		    BufferCoord;
+-     COORD		    BufferSize;
+-     PCHAR_INFO		    Buffer;
+-     DWORD		    NumCells;
+-     SMALL_RECT		    ReadRegion;
+- 
+      /*
+!      * Before copying the buffer contents, clear the current buffer, and
+!      * restore the window information.  Doing this now prevents old buffer
+!      * contents from "flashing" onto the screen.
+       */
+!     ClearConsoleBuffer(cb->Info.wAttributes);
+! 
+!     /* We only need to copy the window area, not whole buffer. */
+!     BufferSize.X = cb->Info.srWindow.Right - cb->Info.srWindow.Left + 1;
+!     BufferSize.Y = cb->Info.srWindow.Bottom - cb->Info.srWindow.Top + 1;
+!     ReadRegion.Left = 0;
+!     ReadRegion.Right = BufferSize.X - 1;
+!     ReadRegion.Top = 0;
+!     ReadRegion.Bottom = BufferSize.Y - 1;
+! 
+!     NumCells = BufferSize.X * BufferSize.Y;
+!     Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO));
+!     if (Buffer == NULL)
+! 	return FALSE;
+  
+      BufferCoord.X = 0;
+!     BufferCoord.Y = 0;
+! 
+!     if (!ReadConsoleOutputW(hConOld,	    /* output handle */
+! 		Buffer,			    /* our buffer */
+! 		BufferSize,		    /* dimensions of our buffer */
+! 		BufferCoord,		    /* offset in our buffer */
+! 		&ReadRegion))		    /* region to save */
+!     {
+! 	vim_free(Buffer);
+! 	return FALSE;
+!     }
+!     if (!WriteConsoleOutputW(g_hConOut,     /* output handle */
+! 		Buffer,			    /* our buffer */
+! 		BufferSize,		    /* dimensions of our buffer */
+! 		BufferCoord,		    /* offset in our buffer */
+! 		&ReadRegion))		    /* region to restore */
+      {
+! 	vim_free(Buffer);
+! 	return FALSE;
+      }
+-     vim_free(Buffer);
+-     SetConsoleWindowInfo(g_hConOut, TRUE, &ReadRegion);
+  
+      return TRUE;
+  }
+--- 2187,2263 ----
+  SaveConsoleBuffer(
+      ConsoleBuffer *cb)
+  {
++     DWORD NumCells;
++     COORD BufferCoord;
++     SMALL_RECT ReadRegion;
++     WORD Y, Y_incr;
++ 
+      if (cb == NULL)
+  	return FALSE;
+  
+!     if (!GetConsoleScreenBufferInfo(g_hConOut, &cb->Info))
+      {
+  	cb->IsValid = FALSE;
+  	return FALSE;
+      }
+      cb->IsValid = TRUE;
+  
+      /*
+!      * Allocate a buffer large enough to hold the entire console screen
+!      * buffer.  If this ConsoleBuffer structure has already been initialized
+!      * with a buffer of the correct size, then just use that one.
+       */
+!     if (!cb->IsValid || cb->Buffer == NULL ||
+! 	    cb->BufferSize.X != cb->Info.dwSize.X ||
+! 	    cb->BufferSize.Y != cb->Info.dwSize.Y)
+!     {
+! 	cb->BufferSize.X = cb->Info.dwSize.X;
+! 	cb->BufferSize.Y = cb->Info.dwSize.Y;
+! 	NumCells = cb->BufferSize.X * cb->BufferSize.Y;
+! 	vim_free(cb->Buffer);
+! 	cb->Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO));
+! 	if (cb->Buffer == NULL)
+! 	    return FALSE;
+!     }
+  
++     /*
++      * We will now copy the console screen buffer into our buffer.
++      * ReadConsoleOutput() seems to be limited as far as how much you
++      * can read at a time.  Empirically, this number seems to be about
++      * 12000 cells (rows * columns).  Start at position (0, 0) and copy
++      * in chunks until it is all copied.  The chunks will all have the
++      * same horizontal characteristics, so initialize them now.  The
++      * height of each chunk will be (12000 / width).
++      */
+      BufferCoord.X = 0;
+!     ReadRegion.Left = 0;
+!     ReadRegion.Right = cb->Info.dwSize.X - 1;
+!     Y_incr = 12000 / cb->Info.dwSize.X;
+!     for (Y = 0; Y < cb->BufferSize.Y; Y += Y_incr)
+      {
+! 	/*
+! 	 * Read into position (0, Y) in our buffer.
+! 	 */
+! 	BufferCoord.Y = Y;
+! 	/*
+! 	 * Read the region whose top left corner is (0, Y) and whose bottom
+! 	 * right corner is (width - 1, Y + Y_incr - 1).  This should define
+! 	 * a region of size width by Y_incr.  Don't worry if this region is
+! 	 * too large for the remaining buffer; it will be cropped.
+! 	 */
+! 	ReadRegion.Top = Y;
+! 	ReadRegion.Bottom = Y + Y_incr - 1;
+! 	if (!ReadConsoleOutput(g_hConOut,	/* output handle */
+! 		cb->Buffer,			/* our buffer */
+! 		cb->BufferSize,			/* dimensions of our buffer */
+! 		BufferCoord,			/* offset in our buffer */
+! 		&ReadRegion))			/* region to save */
+! 	{
+! 	    vim_free(cb->Buffer);
+! 	    cb->Buffer = NULL;
+! 	    return FALSE;
+! 	}
+      }
+  
+      return TRUE;
+  }
+***************
+*** 2283,2302 ****
+      ConsoleBuffer   *cb,
+      BOOL	    RestoreScreen)
+  {
+!     HANDLE hConOld;
+  
+      if (cb == NULL || !cb->IsValid)
+  	return FALSE;
+  
+!     hConOld = g_hConOut;
+!     g_hConOut = cb->handle;
+!     if (!RestoreScreen && exiting)
+! 	CopyOldConsoleBuffer(cb, hConOld);
+!     SetConsoleActiveScreenBuffer(g_hConOut);
+  
+      return TRUE;
+  }
+  
+  static ConsoleBuffer g_cbNonTermcap = { 0 };
+  static ConsoleBuffer g_cbTermcap = { 0 };
+  
+--- 2276,2342 ----
+      ConsoleBuffer   *cb,
+      BOOL	    RestoreScreen)
+  {
+!     COORD BufferCoord;
+!     SMALL_RECT WriteRegion;
+  
+      if (cb == NULL || !cb->IsValid)
+  	return FALSE;
+  
+!     /*
+!      * Before restoring the buffer contents, clear the current buffer, and
+!      * restore the cursor position and window information.  Doing this now
+!      * prevents old buffer contents from "flashing" onto the screen.
+!      */
+!     if (RestoreScreen)
+! 	ClearConsoleBuffer(cb->Info.wAttributes);
+! 
+!     FitConsoleWindow(cb->Info.dwSize, TRUE);
+!     if (!SetConsoleScreenBufferSize(g_hConOut, cb->Info.dwSize))
+! 	return FALSE;
+!     if (!SetConsoleTextAttribute(g_hConOut, cb->Info.wAttributes))
+! 	return FALSE;
+! 
+!     if (!RestoreScreen)
+!     {
+! 	/*
+! 	 * No need to restore the screen buffer contents, so we're done.
+! 	 */
+! 	return TRUE;
+!     }
+! 
+!     if (!SetConsoleCursorPosition(g_hConOut, cb->Info.dwCursorPosition))
+! 	return FALSE;
+!     if (!SetConsoleWindowInfo(g_hConOut, TRUE, &cb->Info.srWindow))
+! 	return FALSE;
+! 
+!     /*
+!      * Restore the screen buffer contents.
+!      */
+!     if (cb->Buffer != NULL)
+!     {
+! 	BufferCoord.X = 0;
+! 	BufferCoord.Y = 0;
+! 	WriteRegion.Left = 0;
+! 	WriteRegion.Top = 0;
+! 	WriteRegion.Right = cb->Info.dwSize.X - 1;
+! 	WriteRegion.Bottom = cb->Info.dwSize.Y - 1;
+! 	if (!WriteConsoleOutput(g_hConOut,	/* output handle */
+! 		cb->Buffer,			/* our buffer */
+! 		cb->BufferSize,			/* dimensions of our buffer */
+! 		BufferCoord,			/* offset in our buffer */
+! 		&WriteRegion))			/* region to restore */
+! 	{
+! 	    return FALSE;
+! 	}
+!     }
+  
+      return TRUE;
+  }
+  
++ #define FEAT_RESTORE_ORIG_SCREEN
++ #ifdef FEAT_RESTORE_ORIG_SCREEN
++ static ConsoleBuffer g_cbOrig = { 0 };
++ #endif
+  static ConsoleBuffer g_cbNonTermcap = { 0 };
+  static ConsoleBuffer g_cbTermcap = { 0 };
+  
+***************
+*** 2435,2440 ****
+--- 2475,2483 ----
+      void
+  mch_init(void)
+  {
++ #ifndef FEAT_RESTORE_ORIG_SCREEN
++     CONSOLE_SCREEN_BUFFER_INFO csbi;
++ #endif
+  #ifndef __MINGW32__
+      extern int _fmode;
+  #endif
+***************
+*** 2455,2468 ****
+      else
+  	create_conin();
+      g_hConOut = GetStdHandle(STD_OUTPUT_HANDLE);
+-     g_cbNonTermcap.handle = g_hConOut;
+-     g_cbTermcap.handle = CreateConsoleScreenBuffer(
+- 	    GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,
+- 	    NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
+  
+      /* Get current text attributes */
+!     SaveConsoleBuffer(&g_cbNonTermcap);
+!     g_attrCurrent = g_attrDefault = g_cbNonTermcap.Info.wAttributes;
+      if (cterm_normal_fg_color == 0)
+  	cterm_normal_fg_color = (g_attrCurrent & 0xf) + 1;
+      if (cterm_normal_bg_color == 0)
+--- 2498,2513 ----
+      else
+  	create_conin();
+      g_hConOut = GetStdHandle(STD_OUTPUT_HANDLE);
+  
++ #ifdef FEAT_RESTORE_ORIG_SCREEN
++     /* Save the initial console buffer for later restoration */
++     SaveConsoleBuffer(&g_cbOrig);
++     g_attrCurrent = g_attrDefault = g_cbOrig.Info.wAttributes;
++ #else
+      /* Get current text attributes */
+!     GetConsoleScreenBufferInfo(g_hConOut, &csbi);
+!     g_attrCurrent = g_attrDefault = csbi.wAttributes;
+! #endif
+      if (cterm_normal_fg_color == 0)
+  	cterm_normal_fg_color = (g_attrCurrent & 0xf) + 1;
+      if (cterm_normal_bg_color == 0)
+***************
+*** 2562,2569 ****
+      SetConsoleMode(g_hConIn,  g_cmodein);
+      SetConsoleMode(g_hConOut, g_cmodeout);
+  
+-     CloseHandle(g_cbTermcap.handle);
+- 
+  #ifdef DYNAMIC_GETTEXT
+      dyn_libintl_end();
+  #endif
+--- 2607,2612 ----
+***************
+*** 4585,4596 ****
+      else
+  	return mch_system_classic(cmd, options);
+  }
+- 
+  #else
+  
+  # ifdef FEAT_MBYTE
+      static int
+! mch_system1(char *cmd, int options)
+  {
+      if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+      {
+--- 4628,4638 ----
+      else
+  	return mch_system_classic(cmd, options);
+  }
+  #else
+  
+  # ifdef FEAT_MBYTE
+      static int
+! mch_system(char *cmd, int options)
+  {
+      if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+      {
+***************
+*** 4605,4649 ****
+      return system(cmd);
+  }
+  # else
+! #  define mch_system1(c, o) system(c)
+  # endif
+  
+-     static int
+- mch_system(char *cmd, int options)
+- {
+-     int ret;
+-     HANDLE hTemp = INVALID_HANDLE_VALUE;
+- 
+-     /*
+-      * Call DuplicateHandle before executing an external program, because msys
+-      * and msys2's programs will call CreateConsoleScreenBuffer and
+-      * CloseHandle.  CreateConsoleScreenBuffer returns the same handle which
+-      * created by vim.  This causes a crash. This workaround is required on
+-      * Windows7.
+-      */
+-     if (is_win7
+- 	    && g_fTermcapMode
+- 	    && DuplicateHandle(
+- 		    GetCurrentProcess(),
+- 		    g_hConOut,
+- 		    GetCurrentProcess(),
+- 		    &hTemp,
+- 		    0,
+- 		    TRUE,
+- 		    DUPLICATE_SAME_ACCESS))
+- 	SetConsoleActiveScreenBuffer(hTemp);
+- 
+-     ret = mch_system1(cmd, options);
+- 
+-     if (hTemp != INVALID_HANDLE_VALUE)
+-     {
+- 	SetConsoleActiveScreenBuffer(g_hConOut);
+- 	CloseHandle(hTemp);
+-     }
+- 
+-     return ret;
+- }
+- 
+  #endif
+  
+  /*
+--- 4647,4655 ----
+      return system(cmd);
+  }
+  # else
+! #  define mch_system(c, o) system(c)
+  # endif
+  
+  #endif
+  
+  /*
+***************
+*** 4973,4980 ****
+  	 * screen buffer, and resize the buffer to match the current window
+  	 * size.  We will use this as the size of our editing environment.
+  	 */
+- 	g_hConOut = g_cbTermcap.handle;
+- 	SetConsoleActiveScreenBuffer(g_hConOut);
+  	ClearConsoleBuffer(g_attrCurrent);
+  	ResizeConBufAndWindow(g_hConOut, Columns, Rows);
+      }
+--- 4979,4984 ----
+***************
+*** 5018,5024 ****
+--- 5022,5032 ----
+      cmodein &= ~(ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT);
+      SetConsoleMode(g_hConIn, cmodein);
+  
++ #ifdef FEAT_RESTORE_ORIG_SCREEN
++     cb = exiting ? &g_cbOrig : &g_cbNonTermcap;
++ #else
+      cb = &g_cbNonTermcap;
++ #endif
+      RestoreConsoleBuffer(cb, p_rs);
+      SetConsoleCursorInfo(g_hConOut, &g_cci);
+  
+*** ../vim-7.4.901/src/version.c	2015-10-30 14:23:29.158200567 +0100
+--- src/version.c	2015-10-30 16:45:09.697887553 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     902,
+  /**/
+
+-- 
+Q: Should I clean my house or work on Vim?
+A: Whatever contains more bugs.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.903 b/7.4.903
new file mode 100644
index 0000000..ebc4493
--- /dev/null
+++ b/7.4.903
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.903
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.903
+Problem:    MS-Windows: When 'encoding' differs from the current code page,
+            expandinig wildcards may cause illegal memory access.
+Solution:   Allocate a longer buffer. (Ken Takata)
+Files:      src/misc1.c
+
+
+*** ../vim-7.4.902/src/misc1.c	2015-10-13 16:13:33.456731872 +0200
+--- src/misc1.c	2015-10-31 15:27:59.450227298 +0100
+***************
+*** 9940,9947 ****
+  	    return 0;
+      }
+  
+!     /* make room for file name */
+!     buf = alloc((int)STRLEN(path) + BASENAMELEN + 5);
+      if (buf == NULL)
+  	return 0;
+  
+--- 9940,9948 ----
+  	    return 0;
+      }
+  
+!     /* Make room for file name.  When doing encoding conversion the actual
+!      * length may be quite a bit longer, thus use the maximum possible length. */
+!     buf = alloc((int)MAXPATHL);
+      if (buf == NULL)
+  	return 0;
+  
+*** ../vim-7.4.902/src/version.c	2015-10-30 16:46:50.504694378 +0100
+--- src/version.c	2015-10-31 15:31:15.079927177 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     903,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+65. The last time you looked at the clock it was 11:30pm, and in what
+    seems like only a few seconds later, your sister runs past you to
+    catch her 7am school bus.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.904 b/7.4.904
new file mode 100644
index 0000000..611b9bd
--- /dev/null
+++ b/7.4.904
@@ -0,0 +1,251 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.904
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.904
+Problem:    Vim does not provide .desktop files.
+Solution:   Include and install .desktop files. (James McCoy, closes #455)
+Files:      Filelist, runtime/vim.desktop, runtime/gvim.desktop, src/Makefile
+
+
+*** ../vim-7.4.903/Filelist	2015-09-15 19:17:51.990768865 +0200
+--- Filelist	2015-11-02 12:47:17.827018004 +0100
+***************
+*** 584,589 ****
+--- 584,591 ----
+  		runtime/vim32x32.xpm \
+  		runtime/vim48x48.png \
+  		runtime/vim48x48.xpm \
++ 		runtime/gvim.desktop \
++ 		runtime/vim.desktop \
+  
+  # Unix and DOS runtime without CR-LF translation
+  RT_UNIX_DOS_BIN =	\
+*** ../vim-7.4.903/runtime/vim.desktop	2015-11-02 12:50:22.500853811 +0100
+--- runtime/vim.desktop	2015-11-02 12:43:16.581844811 +0100
+***************
+*** 0 ****
+--- 1,80 ----
++ [Desktop Entry]
++ Name=Vim
++ GenericName=Text Editor
++ GenericName[de]=Texteditor
++ Comment=Edit text files
++ Comment[af]=Redigeer tekslêers
++ Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
++ Comment[ar]=حرّر ملفات نصية
++ Comment[az]=Mətn fayllarını redaktə edin
++ Comment[be]=Рэдагаваньне тэкставых файлаў
++ Comment[bg]=Редактиране на текстови файлове
++ Comment[bn]=টেক্স্ট ফাইল এডিট করুন
++ Comment[bs]=Izmijeni tekstualne datoteke
++ Comment[ca]=Edita fitxers de text
++ Comment[cs]=Úprava textových souborů
++ Comment[cy]=Golygu ffeiliau testun
++ Comment[da]=Redigér tekstfiler
++ Comment[de]=Textdateien bearbeiten
++ Comment[el]=Επεξεργασία αρχείων κειμένου
++ Comment[en_CA]=Edit text files
++ Comment[en_GB]=Edit text files
++ Comment[es]=Edita archivos de texto
++ Comment[et]=Redigeeri tekstifaile
++ Comment[eu]=Editatu testu-fitxategiak
++ Comment[fa]=ویرایش پرونده‌های متنی
++ Comment[fi]=Muokkaa tekstitiedostoja
++ Comment[fr]=Édite des fichiers texte
++ Comment[ga]=Eagar comhad Téacs
++ Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો
++ Comment[he]=ערוך קבצי טקסט
++ Comment[hi]=पाठ फ़ाइलें संपादित करें
++ Comment[hr]=Uređivanje tekstualne datoteke
++ Comment[hu]=Szövegfájlok szerkesztése
++ Comment[id]=Edit file teks
++ Comment[it]=Modifica file di testo
++ Comment[ja]=テキストファイルを編集します
++ Comment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು
++ Comment[ko]=텍스트 파일을 편집합니다
++ Comment[lt]=Redaguoti tekstines bylas
++ Comment[lv]=Rediģēt teksta failus
++ Comment[mk]=Уреди текстуални фајлови
++ Comment[ml]=വാചക രചനകള് തിരുത്തുക
++ Comment[mn]=Текст файл боловсруулах
++ Comment[mr]=गद्य फाइल संपादित करा
++ Comment[ms]=Edit fail teks
++ Comment[nb]=Rediger tekstfiler
++ Comment[ne]=पाठ फाइललाई संशोधन गर्नुहोस्
++ Comment[nl]=Tekstbestanden bewerken
++ Comment[nn]=Rediger tekstfiler
++ Comment[no]=Rediger tekstfiler
++ Comment[or]=ପାଠ୍ଯ ଫାଇଲଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ
++ Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ
++ Comment[pl]=Edytor plików tekstowych
++ Comment[pt]=Editar ficheiros de texto
++ Comment[pt_BR]=Edite arquivos de texto
++ Comment[ro]=Editare fişiere text
++ Comment[ru]=Редактор текстовых файлов
++ Comment[sk]=Úprava textových súborov
++ Comment[sl]=Urejanje datotek z besedili
++ Comment[sq]=Përpuno files teksti
++ Comment[sr]=Измени текстуалне датотеке
++ Comment[sr@Latn]=Izmeni tekstualne datoteke
++ Comment[sv]=Redigera textfiler
++ Comment[ta]=உரை கோப்புகளை தொகுக்கவும்
++ Comment[th]=แก้ไขแฟ้มข้อความ
++ Comment[tk]=Metin faýllary editle
++ Comment[tr]=Metin dosyalarını düzenle
++ Comment[uk]=Редактор текстових файлів
++ Comment[vi]=Soạn thảo tập tin văn bản
++ Comment[wa]=Asspougnî des fitchîs tecses
++ Comment[zh_CN]=编辑文本文件
++ Comment[zh_TW]=編輯文字檔
++ TryExec=vim
++ Exec=vim %F
++ Terminal=true
++ Type=Application
++ Icon=gvim
++ Categories=Utility;TextEditor;
++ StartupNotify=false
++ MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
+*** ../vim-7.4.903/runtime/gvim.desktop	2015-11-02 12:50:22.504853764 +0100
+--- runtime/gvim.desktop	2015-11-02 12:43:16.581844811 +0100
+***************
+*** 0 ****
+--- 1,80 ----
++ [Desktop Entry]
++ Name=GVim
++ GenericName=Text Editor
++ GenericName[de]=Texteditor
++ Comment=Edit text files
++ Comment[af]=Redigeer tekslêers
++ Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
++ Comment[ar]=حرّر ملفات نصية
++ Comment[az]=Mətn fayllarını redaktə edin
++ Comment[be]=Рэдагаваньне тэкставых файлаў
++ Comment[bg]=Редактиране на текстови файлове
++ Comment[bn]=টেক্স্ট ফাইল এডিট করুন
++ Comment[bs]=Izmijeni tekstualne datoteke
++ Comment[ca]=Edita fitxers de text
++ Comment[cs]=Úprava textových souborů
++ Comment[cy]=Golygu ffeiliau testun
++ Comment[da]=Redigér tekstfiler
++ Comment[de]=Textdateien bearbeiten
++ Comment[el]=Επεξεργασία αρχείων κειμένου
++ Comment[en_CA]=Edit text files
++ Comment[en_GB]=Edit text files
++ Comment[es]=Edita archivos de texto
++ Comment[et]=Redigeeri tekstifaile
++ Comment[eu]=Editatu testu-fitxategiak
++ Comment[fa]=ویرایش پرونده‌های متنی
++ Comment[fi]=Muokkaa tekstitiedostoja
++ Comment[fr]=Édite des fichiers texte
++ Comment[ga]=Eagar comhad Téacs
++ Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો
++ Comment[he]=ערוך קבצי טקסט
++ Comment[hi]=पाठ फ़ाइलें संपादित करें
++ Comment[hr]=Uređivanje tekstualne datoteke
++ Comment[hu]=Szövegfájlok szerkesztése
++ Comment[id]=Edit file teks
++ Comment[it]=Modifica file di testo
++ Comment[ja]=テキストファイルを編集します
++ Comment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು
++ Comment[ko]=텍스트 파일을 편집합니다
++ Comment[lt]=Redaguoti tekstines bylas
++ Comment[lv]=Rediģēt teksta failus
++ Comment[mk]=Уреди текстуални фајлови
++ Comment[ml]=വാചക രചനകള് തിരുത്തുക
++ Comment[mn]=Текст файл боловсруулах
++ Comment[mr]=गद्य फाइल संपादित करा
++ Comment[ms]=Edit fail teks
++ Comment[nb]=Rediger tekstfiler
++ Comment[ne]=पाठ फाइललाई संशोधन गर्नुहोस्
++ Comment[nl]=Tekstbestanden bewerken
++ Comment[nn]=Rediger tekstfiler
++ Comment[no]=Rediger tekstfiler
++ Comment[or]=ପାଠ୍ଯ ଫାଇଲଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ
++ Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ
++ Comment[pl]=Edytor plików tekstowych
++ Comment[pt]=Editar ficheiros de texto
++ Comment[pt_BR]=Edite arquivos de texto
++ Comment[ro]=Editare fişiere text
++ Comment[ru]=Редактор текстовых файлов
++ Comment[sk]=Úprava textových súborov
++ Comment[sl]=Urejanje datotek z besedili
++ Comment[sq]=Përpuno files teksti
++ Comment[sr]=Измени текстуалне датотеке
++ Comment[sr@Latn]=Izmeni tekstualne datoteke
++ Comment[sv]=Redigera textfiler
++ Comment[ta]=உரை கோப்புகளை தொகுக்கவும்
++ Comment[th]=แก้ไขแฟ้มข้อความ
++ Comment[tk]=Metin faýllary editle
++ Comment[tr]=Metin dosyalarını düzenle
++ Comment[uk]=Редактор текстових файлів
++ Comment[vi]=Soạn thảo tập tin văn bản
++ Comment[wa]=Asspougnî des fitchîs tecses
++ Comment[zh_CN]=编辑文本文件
++ Comment[zh_TW]=編輯文字檔
++ TryExec=gvim
++ Exec=gvim -f %F
++ Terminal=false
++ Type=Application
++ Icon=gvim
++ Categories=Utility;TextEditor;
++ StartupNotify=true
++ MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
+*** ../vim-7.4.903/src/Makefile	2015-08-18 13:48:49.831988811 +0200
+--- src/Makefile	2015-11-02 12:49:43.537310437 +0100
+***************
+*** 1905,1914 ****
+--- 1905,1916 ----
+  	test_autocmd_option \
+  	test_autoformat_join \
+  	test_breakindent \
++ 	test_cdo \
+  	test_changelist \
+  	test_charsearch \
+  	test_close_count \
+  	test_command_count \
++ 	test_comparators \
+  	test_erasebackword \
+  	test_eval \
+  	test_fixeol \
+***************
+*** 2225,2231 ****
+  		-a ! -f $(ICON16PATH)/gvim.png; then \
+  	   $(INSTALL_DATA) $(SCRIPTSOURCE)/vim16x16.png $(ICON16PATH)/gvim.png; \
+  	fi
+! 
+  
+  $(HELPSOURCE)/vim.1 $(MACROSOURCE) $(TOOLSSOURCE):
+  	@echo Runtime files not found.
+--- 2227,2234 ----
+  		-a ! -f $(ICON16PATH)/gvim.png; then \
+  	   $(INSTALL_DATA) $(SCRIPTSOURCE)/vim16x16.png $(ICON16PATH)/gvim.png; \
+  	fi
+! 	$(INSTALL_DATA) $(SCRIPTSOURCE)/vim.desktop $(SCRIPTSOURCE)/gvim.desktop \
+! 		$(DESTDIR)$(DATADIR)/applications
+  
+  $(HELPSOURCE)/vim.1 $(MACROSOURCE) $(TOOLSSOURCE):
+  	@echo Runtime files not found.
+*** ../vim-7.4.903/src/version.c	2015-10-31 15:32:48.182832539 +0100
+--- src/version.c	2015-11-02 12:45:50.164045239 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     904,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+76. Your ISP regards you as a business partner rather than as a customer.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.905 b/7.4.905
new file mode 100644
index 0000000..2233b74
--- /dev/null
+++ b/7.4.905
@@ -0,0 +1,235 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.905
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.905
+Problem:    Python interface can produce error "vim.message' object has no
+            attribute 'isatty'".
+Solution:   Add dummy isatty(), readable(), etc. (closes #464)
+Files:      src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
+            src/testdir/test87.in, src/testdir/test87.ok
+
+
+*** ../vim-7.4.904/src/if_py_both.h	2015-02-10 18:41:53.006111926 +0100
+--- src/if_py_both.h	2015-11-02 13:21:24.911033469 +0100
+***************
+*** 465,484 ****
+  }
+  
+      static PyObject *
+! OutputFlush(PyObject *self UNUSED)
+  {
+      /* do nothing */
+      Py_INCREF(Py_None);
+      return Py_None;
+  }
+  
+  /***************/
+  
+  static struct PyMethodDef OutputMethods[] = {
+      /* name,	    function,				calling,	doc */
+      {"write",	    (PyCFunction)OutputWrite,		METH_O,		""},
+      {"writelines",  (PyCFunction)OutputWritelines,	METH_O,		""},
+!     {"flush",	    (PyCFunction)OutputFlush,		METH_NOARGS,	""},
+      {"__dir__",	    (PyCFunction)OutputDir,		METH_NOARGS,	""},
+      { NULL,	    NULL,				0,		NULL}
+  };
+--- 465,505 ----
+  }
+  
+      static PyObject *
+! AlwaysNone(PyObject *self UNUSED)
+  {
+      /* do nothing */
+      Py_INCREF(Py_None);
+      return Py_None;
+  }
+  
++     static PyObject *
++ AlwaysFalse(PyObject *self UNUSED)
++ {
++     /* do nothing */
++     Py_INCREF(Py_False);
++     return Py_False;
++ }
++ 
++     static PyObject *
++ AlwaysTrue(PyObject *self UNUSED)
++ {
++     /* do nothing */
++     Py_INCREF(Py_True);
++     return Py_True;
++ }
++ 
+  /***************/
+  
+  static struct PyMethodDef OutputMethods[] = {
+      /* name,	    function,				calling,	doc */
+      {"write",	    (PyCFunction)OutputWrite,		METH_O,		""},
+      {"writelines",  (PyCFunction)OutputWritelines,	METH_O,		""},
+!     {"flush",	    (PyCFunction)AlwaysNone,		METH_NOARGS,	""},
+!     {"close",	    (PyCFunction)AlwaysNone,		METH_NOARGS,	""},
+!     {"isatty",	    (PyCFunction)AlwaysFalse,		METH_NOARGS,	""},
+!     {"readable",    (PyCFunction)AlwaysFalse,		METH_NOARGS,	""},
+!     {"seekable",    (PyCFunction)AlwaysFalse,		METH_NOARGS,	""},
+!     {"writable",    (PyCFunction)AlwaysTrue,		METH_NOARGS,	""},
+      {"__dir__",	    (PyCFunction)OutputDir,		METH_NOARGS,	""},
+      { NULL,	    NULL,				0,		NULL}
+  };
+*** ../vim-7.4.904/src/testdir/test86.in	2014-09-29 18:08:54.587952270 +0200
+--- src/testdir/test86.in	2015-11-02 13:19:04.276680955 +0100
+***************
+*** 1094,1101 ****
+--- 1094,1113 ----
+  ee('del sys.stdout.softspace')
+  number_test('sys.stdout.softspace = %s', unsigned=True)
+  number_test('sys.stderr.softspace = %s', unsigned=True)
++ ee('assert sys.stdout.isatty()==False')
++ ee('assert sys.stdout.seekable()==False')
++ ee('sys.stdout.close()')
++ ee('sys.stdout.flush()')
++ ee('assert sys.stderr.isatty()==False')
++ ee('assert sys.stderr.seekable()==False')
++ ee('sys.stderr.close()')
++ ee('sys.stderr.flush()')
+  ee('sys.stdout.attr = None')
+  cb.append(">> OutputWrite")
++ ee('assert sys.stdout.writable()==True')
++ ee('assert sys.stdout.readable()==False')
++ ee('assert sys.stderr.writable()==True')
++ ee('assert sys.stderr.readable()==False')
+  ee('sys.stdout.write(None)')
+  cb.append(">> OutputWriteLines")
+  ee('sys.stdout.writelines(None)')
+*** ../vim-7.4.904/src/testdir/test86.ok	2014-03-12 15:26:36.428714415 +0100
+--- src/testdir/test86.ok	2015-11-02 13:19:04.280680909 +0100
+***************
+*** 447,453 ****
+  dictionary:__dir__,__members__,get,has_key,items,keys,locked,pop,popitem,scope,update,values
+  list:__dir__,__members__,extend,locked
+  function:__dir__,__members__,softspace
+! output:__dir__,__members__,flush,softspace,write,writelines
+  {}
+  {'a': 1}
+  {'a': 1}
+--- 447,453 ----
+  dictionary:__dir__,__members__,get,has_key,items,keys,locked,pop,popitem,scope,update,values
+  list:__dir__,__members__,extend,locked
+  function:__dir__,__members__,softspace
+! output:__dir__,__members__,close,flush,isatty,readable,seekable,softspace,writable,write,writelines
+  {}
+  {'a': 1}
+  {'a': 1}
+***************
+*** 488,495 ****
+--- 488,507 ----
+  sys.stderr.softspace = None:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',)
+  sys.stderr.softspace = -1:ValueError:('number must be greater or equal to zero',)
+  <<< Finished
++ assert sys.stdout.isatty()==False:NOT FAILED
++ assert sys.stdout.seekable()==False:NOT FAILED
++ sys.stdout.close():NOT FAILED
++ sys.stdout.flush():NOT FAILED
++ assert sys.stderr.isatty()==False:NOT FAILED
++ assert sys.stderr.seekable()==False:NOT FAILED
++ sys.stderr.close():NOT FAILED
++ sys.stderr.flush():NOT FAILED
+  sys.stdout.attr = None:AttributeError:('invalid attribute: attr',)
+  >> OutputWrite
++ assert sys.stdout.writable()==True:NOT FAILED
++ assert sys.stdout.readable()==False:NOT FAILED
++ assert sys.stderr.writable()==True:NOT FAILED
++ assert sys.stderr.readable()==False:NOT FAILED
+  sys.stdout.write(None):TypeError:('coercing to Unicode: need string or buffer, NoneType found',)
+  >> OutputWriteLines
+  sys.stdout.writelines(None):TypeError:("'NoneType' object is not iterable",)
+*** ../vim-7.4.904/src/testdir/test87.in	2014-09-29 18:08:54.591952271 +0200
+--- src/testdir/test87.in	2015-11-02 13:19:04.280680909 +0100
+***************
+*** 1071,1078 ****
+--- 1071,1090 ----
+  ee('del sys.stdout.softspace')
+  number_test('sys.stdout.softspace = %s', unsigned=True)
+  number_test('sys.stderr.softspace = %s', unsigned=True)
++ ee('assert sys.stdout.isatty()==False')
++ ee('assert sys.stdout.seekable()==False')
++ ee('sys.stdout.close()')
++ ee('sys.stdout.flush()')
++ ee('assert sys.stderr.isatty()==False')
++ ee('assert sys.stderr.seekable()==False')
++ ee('sys.stderr.close()')
++ ee('sys.stderr.flush()')
+  ee('sys.stdout.attr = None')
+  cb.append(">> OutputWrite")
++ ee('assert sys.stdout.writable()==True')
++ ee('assert sys.stdout.readable()==False')
++ ee('assert sys.stderr.writable()==True')
++ ee('assert sys.stderr.readable()==False')
+  ee('sys.stdout.write(None)')
+  cb.append(">> OutputWriteLines")
+  ee('sys.stdout.writelines(None)')
+*** ../vim-7.4.904/src/testdir/test87.ok	2014-03-12 15:26:36.432714415 +0100
+--- src/testdir/test87.ok	2015-11-02 13:19:04.280680909 +0100
+***************
+*** 447,453 ****
+  dictionary:__dir__,get,has_key,items,keys,locked,pop,popitem,scope,update,values
+  list:__dir__,extend,locked
+  function:__dir__,softspace
+! output:__dir__,flush,softspace,write,writelines
+  {}
+  {'a': 1}
+  {'a': 1}
+--- 447,453 ----
+  dictionary:__dir__,get,has_key,items,keys,locked,pop,popitem,scope,update,values
+  list:__dir__,extend,locked
+  function:__dir__,softspace
+! output:__dir__,close,flush,isatty,readable,seekable,softspace,writable,write,writelines
+  {}
+  {'a': 1}
+  {'a': 1}
+***************
+*** 488,495 ****
+--- 488,507 ----
+  sys.stderr.softspace = None:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
+  sys.stderr.softspace = -1:(<class 'ValueError'>, ValueError('number must be greater or equal to zero',))
+  <<< Finished
++ assert sys.stdout.isatty()==False:NOT FAILED
++ assert sys.stdout.seekable()==False:NOT FAILED
++ sys.stdout.close():NOT FAILED
++ sys.stdout.flush():NOT FAILED
++ assert sys.stderr.isatty()==False:NOT FAILED
++ assert sys.stderr.seekable()==False:NOT FAILED
++ sys.stderr.close():NOT FAILED
++ sys.stderr.flush():NOT FAILED
+  sys.stdout.attr = None:(<class 'AttributeError'>, AttributeError('invalid attribute: attr',))
+  >> OutputWrite
++ assert sys.stdout.writable()==True:NOT FAILED
++ assert sys.stdout.readable()==False:NOT FAILED
++ assert sys.stderr.writable()==True:NOT FAILED
++ assert sys.stderr.readable()==False:NOT FAILED
+  sys.stdout.write(None):(<class 'TypeError'>, TypeError("Can't convert 'NoneType' object to str implicitly",))
+  >> OutputWriteLines
+  sys.stdout.writelines(None):(<class 'TypeError'>, TypeError("'NoneType' object is not iterable",))
+*** ../vim-7.4.904/src/version.c	2015-11-02 12:50:49.760534351 +0100
+--- src/version.c	2015-11-02 13:27:03.923061723 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     905,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+78. You find yourself dialing IP numbers on the phone.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.906 b/7.4.906
new file mode 100644
index 0000000..e3d7798
--- /dev/null
+++ b/7.4.906
@@ -0,0 +1,112 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.906
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.906
+Problem:    On MS-Windows the viminfo file is (always) given the hidden
+            attribute. (raulnac)
+Solution:   Check the hidden attribute in a different way. (Ken Takata)
+Files:      src/ex_cmds.c, src/os_win32.c, src/os_win32.pro
+
+
+*** ../vim-7.4.905/src/ex_cmds.c	2015-08-11 19:13:55.134175736 +0200
+--- src/ex_cmds.c	2015-11-02 14:32:36.072850890 +0100
+***************
+*** 1795,1801 ****
+      struct stat	st_old;		/* mch_stat() of existing viminfo file */
+  #endif
+  #ifdef WIN3264
+!     long	perm = -1;
+  #endif
+  
+      if (no_viminfo())
+--- 1795,1801 ----
+      struct stat	st_old;		/* mch_stat() of existing viminfo file */
+  #endif
+  #ifdef WIN3264
+!     int		hidden = FALSE;
+  #endif
+  
+      if (no_viminfo())
+***************
+*** 1858,1864 ****
+  #endif
+  #ifdef WIN3264
+  	/* Get the file attributes of the existing viminfo file. */
+! 	perm = mch_getperm(fname);
+  #endif
+  
+  	/*
+--- 1858,1864 ----
+  #endif
+  #ifdef WIN3264
+  	/* Get the file attributes of the existing viminfo file. */
+! 	hidden = mch_ishidden(fname);
+  #endif
+  
+  	/*
+***************
+*** 2033,2039 ****
+  
+  #ifdef WIN3264
+  	/* If the viminfo file was hidden then also hide the new file. */
+! 	if (perm > 0 && (perm & FILE_ATTRIBUTE_HIDDEN))
+  	    mch_hide(fname);
+  #endif
+      }
+--- 2033,2039 ----
+  
+  #ifdef WIN3264
+  	/* If the viminfo file was hidden then also hide the new file. */
+! 	if (hidden)
+  	    mch_hide(fname);
+  #endif
+      }
+*** ../vim-7.4.905/src/os_win32.c	2015-10-30 16:46:50.504694378 +0100
+--- src/os_win32.c	2015-11-02 14:43:50.916893452 +0100
+***************
+*** 3098,3103 ****
+--- 3098,3117 ----
+  }
+  
+  /*
++  * Return TRUE if file "name" exists and is hidden.
++  */
++     int
++ mch_ishidden(char_u *name)
++ {
++     int f = win32_getattrs(name);
++ 
++     if (f == -1)
++ 	return FALSE;		    /* file does not exist at all */
++ 
++     return (f & FILE_ATTRIBUTE_HIDDEN) != 0;
++ }
++ 
++ /*
+   * return TRUE if "name" is a directory
+   * return FALSE if "name" is not a directory or upon error
+   */
+*** ../vim-7.4.905/src/version.c	2015-11-02 13:28:43.577894118 +0100
+--- src/version.c	2015-11-02 14:35:23.938871147 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     906,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+81. At social functions you introduce your husband as "my domain server."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.907 b/7.4.907
new file mode 100644
index 0000000..0b857ad
--- /dev/null
+++ b/7.4.907
@@ -0,0 +1,510 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.907
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.907
+Problem:    Libraries for dynamically loading interfaces can only be defined
+            at compile time.
+Solution:   Add options to specify the dll names. (Kazuki Sakamoto,
+            closes #452)
+Files:      runtime/doc/if_lua.txt, runtime/doc/if_perl.txt,
+            runtime/doc/if_pyth.txt, runtime/doc/if_ruby.txt,
+            runtime/doc/options.txt, src/if_lua.c, src/if_perl.xs,
+            src/if_python.c, src/if_python3.c, src/if_ruby.c, src/option.c,
+            src/option.h
+
+
+*** ../vim-7.4.906/runtime/doc/if_lua.txt	2013-08-10 13:24:55.000000000 +0200
+--- runtime/doc/if_lua.txt	2015-11-02 15:10:05.518333171 +0100
+***************
+*** 14,19 ****
+--- 14,20 ----
+  6. Buffer userdata		|lua-buffer|
+  7. Window userdata		|lua-window|
+  8. The luaeval function		|lua-luaeval|
++ 9. Dynamic loading		|lua-dynamic|
+  
+  {Vi does not have any of these commands}
+  
+***************
+*** 400,403 ****
+--- 401,423 ----
+  
+  
+  ==============================================================================
++ 9. Dynamic loading				    *lua-dynamic*
++ 
++ On MS-Windows and Unix the Lua library can be loaded dynamically.  The
++ |:version| output then includes |+lua/dyn|.
++ 
++ This means that Vim will search for the Lua DLL or shared library file only
++ when needed.  When you don't use the Lua interface you don't need it, thus
++ you can use Vim without this file.
++ 
++ On MS-Windows to use the Lua interface the Lua DLL must be in your search path.
++ In a console window type "path" to see what directories are used.  The version
++ of the DLL must match the Lua version Vim was compiled with.
++ 
++ On Unix the 'luadll' option can be used to specify the Lua shared library file
++ instead of DYNAMIC_LUA_DLL file what was specified at compile time.  The
++ version of the shared library must match the Lua version Vim was compiled with.
++ 
++ 
++ ==============================================================================
+   vim:tw=78:ts=8:noet:ft=help:norl:
+*** ../vim-7.4.906/runtime/doc/if_perl.txt	2013-08-10 13:24:55.000000000 +0200
+--- runtime/doc/if_perl.txt	2015-11-02 15:10:05.518333171 +0100
+***************
+*** 290,294 ****
+--- 290,302 ----
+  Currently the name is "perl512.dll".  That is for Perl 5.12.  To know for
+  sure edit "gvim.exe" and search for "perl\d*.dll\c".
+  
++ 
++ Unix ~
++ 
++ The 'perldll' option can be used to specify the Perl shared library file
++ instead of DYNAMIC_PERL_DLL file what was specified at compile time.  The
++ version of the shared library must match the Perl version Vim was compiled
++ with.
++ 
+  ==============================================================================
+   vim:tw=78:ts=8:ft=help:norl:
+*** ../vim-7.4.906/runtime/doc/if_pyth.txt	2013-08-10 13:24:55.000000000 +0200
+--- runtime/doc/if_pyth.txt	2015-11-02 15:10:05.518333171 +0100
+***************
+*** 28,34 ****
+  ==============================================================================
+  1. Commands						*python-commands*
+  
+! 					*:python* *:py* *E205* *E263* *E264*
+  :[range]py[thon] {stmt}
+  			Execute Python statement {stmt}.  A simple check if
+  			the `:python` command is working: >
+--- 28,34 ----
+  ==============================================================================
+  1. Commands						*python-commands*
+  
+! 					*:python* *:py* *E263* *E264* *E887*
+  :[range]py[thon] {stmt}
+  			Execute Python statement {stmt}.  A simple check if
+  			the `:python` command is working: >
+***************
+*** 679,698 ****
+  ==============================================================================
+  9. Dynamic loading					*python-dynamic*
+  
+! On MS-Windows the Python library can be loaded dynamically.  The |:version|
+! output then includes |+python/dyn|.
+  
+! This means that Vim will search for the Python DLL file only when needed.
+! When you don't use the Python interface you don't need it, thus you can use
+! Vim without this DLL file.
+  
+! To use the Python interface the Python DLL must be in your search path.  In a
+! console window type "path" to see what directories are used.
+  
+  The name of the DLL must match the Python version Vim was compiled with.
+  Currently the name is "python24.dll".  That is for Python 2.4.  To know for
+  sure edit "gvim.exe" and search for "python\d*.dll\c".
+  
+  ==============================================================================
+  10. Python 3						*python3*
+  
+--- 679,704 ----
+  ==============================================================================
+  9. Dynamic loading					*python-dynamic*
+  
+! On MS-Windows and Unix the Python library can be loaded dynamically.  The
+! |:version| output then includes |+python/dyn| or |+python3/dyn|.
+  
+! This means that Vim will search for the Python DLL or shared library file only
+! when needed.  When you don't use the Python interface you don't need it, thus
+! you can use Vim without this file.
+  
+! On MS-Windows to use the Python interface the Python DLL must be in your search
+! path.  In a console window type "path" to see what directories are used.
+  
+  The name of the DLL must match the Python version Vim was compiled with.
+  Currently the name is "python24.dll".  That is for Python 2.4.  To know for
+  sure edit "gvim.exe" and search for "python\d*.dll\c".
+  
++ On Unix the 'pythondll' or 'python3dll' option can be used to specify the
++ Python shared library file instead of DYNAMIC_PYTHON_DLL or
++ DYNAMIC_PYTHON3_DLL file what were specified at compile time.  The version of
++ the shared library must match the Python 2.x or Python 3 version Vim was
++ compiled with.
++ 
+  ==============================================================================
+  10. Python 3						*python3*
+  
+*** ../vim-7.4.906/runtime/doc/if_ruby.txt	2013-08-10 13:24:55.000000000 +0200
+--- runtime/doc/if_ruby.txt	2015-11-02 15:10:05.518333171 +0100
+***************
+*** 195,200 ****
+--- 199,206 ----
+  when needed.  When you don't use the Ruby interface you don't need it, thus
+  you can use Vim even though this library file is not on your system.
+  
++ MS-Windows ~
++ 
+  You need to install the right version of Ruby for this to work.  You can find
+  the package to download from:
+  http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
+***************
+*** 212,216 ****
+--- 218,229 ----
+  You may also need to rename the include directory name to match the version,
+  strangely for Ruby 1.9.3 the directory is called 1.9.1.
+  
++ Unix ~
++ 
++ The 'rubydll' option can be used to specify the Ruby shared library file
++ instead of DYNAMIC_RUBY_DLL file what was specified at compile time.  The
++ version of the shared library must match the Ruby version Vim was compiled
++ with.
++ 
+  ==============================================================================
+   vim:tw=78:ts=8:ft=help:norl:
+*** ../vim-7.4.906/runtime/doc/options.txt	2015-09-01 20:31:16.311776122 +0200
+--- runtime/doc/options.txt	2015-11-02 15:10:05.526333077 +0100
+***************
+*** 4831,4836 ****
+--- 4847,4863 ----
+  	Note that using the "-u NONE" and "--noplugin" command line arguments
+  	reset this option. |-u| |--noplugin|
+  
++ 						*'luadll'*
++ 'luadll' 		string	(default empty)
++ 			global
++ 			{not in Vi} {only for Unix}
++ 			{only available when compiled with the |+lua/dyn|
++ 			feature}
++ 	Specifies the path of the Lua shared library instead of DYNAMIC_LUA_DLL
++ 	what was specified at compile time.
++ 	This option cannot be set from a |modeline| or in the |sandbox|, for
++ 	security reasons.
++ 
+  						*'macatsui'* *'nomacatsui'*
+  'macatsui'		boolean	(default on)
+  			global
+***************
+*** 5532,5537 ****
+--- 5561,5577 ----
+  <	Replace the ';' with a ':' or whatever separator is used.  Note that
+  	this doesn't work when $INCL contains a comma or white space.
+  
++ 						*'perldll'*
++ 'perldll' 		string	(default empty)
++ 			global
++ 			{not in Vi} {only for Unix}
++ 			{only available when compiled with the |+perl/dyn|
++ 			feature}
++ 	Specifies the path of the Perl shared library instead of
++ 	DYNAMIC_PERL_DLL what was specified at compile time.
++ 	This option cannot be set from a |modeline| or in the |sandbox|, for
++ 	security reasons.
++ 
+  			*'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'*
+  'preserveindent' 'pi'	boolean	(default off)
+  			local to buffer
+***************
+*** 5658,5663 ****
+--- 5698,5724 ----
+  	Insert mode completion.  When zero as much space as available is used.
+  	|ins-completion-menu|.
+  
++ 						*'python3dll'*
++ 'python3dll' 		string	(default empty)
++ 			global
++ 			{not in Vi} {only for Unix}
++ 			{only available when compiled with the |+python3/dyn|
++ 			feature}
++ 	Specifies the path of the Python 3 shared library instead of
++ 	DYNAMIC_PYTHON3_DLL what was specified at compile time.
++ 	This option cannot be set from a |modeline| or in the |sandbox|, for
++ 	security reasons.
++ 
++ 						*'pythondll'*
++ 'pythondll' 		string	(default empty)
++ 			global
++ 			{not in Vi} {only for Unix}
++ 			{only available when compiled with the |+python/dyn|
++ 			feature}
++ 	Specifies the path of the Python 2.x shared library instead of
++ 	DYNAMIC_PYTHON_DLL what was specified at compile time.
++ 	This option cannot be set from a |modeline| or in the |sandbox|, for
++ 	security reasons.
+  
+  						*'quoteescape'* *'qe'*
+  'quoteescape' 'qe'	string	(default "\")
+***************
+*** 5876,5881 ****
+--- 5939,5955 ----
+  	This is useful for languages such as Hebrew, Arabic and Farsi.
+  	The 'rightleft' option must be set for 'rightleftcmd' to take effect.
+  
++ 						*'rubydll'*
++ 'rubydll' 		string	(default empty)
++ 			global
++ 			{not in Vi} {only for Unix}
++ 			{only available when compiled with the |+ruby/dyn|
++ 			feature}
++ 	Specifies the path of the Ruby shared library instead of
++ 	DYNAMIC_RUBY_DLL what was specified at compile time.
++ 	This option cannot be set from a |modeline| or in the |sandbox|, for
++ 	security reasons.
++ 
+  					 *'ruler'* *'ru'* *'noruler'* *'noru'*
+  'ruler' 'ru'		boolean	(default off)
+  			global
+*** ../vim-7.4.906/src/if_lua.c	2015-07-21 17:53:11.577527989 +0200
+--- src/if_lua.c	2015-11-02 15:10:05.526333077 +0100
+***************
+*** 402,408 ****
+      int
+  lua_enabled(int verbose)
+  {
+!     return lua_link_init(DYNAMIC_LUA_DLL, verbose) == OK;
+  }
+  
+  #endif /* DYNAMIC_LUA */
+--- 402,413 ----
+      int
+  lua_enabled(int verbose)
+  {
+! #ifdef WIN3264
+!     char *dll = DYNAMIC_LUA_DLL;
+! #else
+!     char *dll = *p_luadll ? (char *)p_luadll : DYNAMIC_LUA_DLL;
+! #endif
+!     return lua_link_init(dll, verbose) == OK;
+  }
+  
+  #endif /* DYNAMIC_LUA */
+*** ../vim-7.4.906/src/if_perl.xs	2015-06-25 16:13:37.779750062 +0200
+--- src/if_perl.xs	2015-11-02 15:10:05.530333030 +0100
+***************
+*** 611,617 ****
+  perl_enabled(verbose)
+      int		verbose;
+  {
+!     return perl_runtime_link_init(DYNAMIC_PERL_DLL, verbose) == OK;
+  }
+  #endif /* DYNAMIC_PERL */
+  
+--- 611,622 ----
+  perl_enabled(verbose)
+      int		verbose;
+  {
+! #if WIN3264
+!     char *dll = DYNAMIC_PERL_DLL;
+! #else
+!     char *dll = *p_perldll ? (char *)p_perldll : DYNAMIC_PERL_DLL;
+! #endif
+!     return perl_runtime_link_init(dll, verbose) == OK;
+  }
+  #endif /* DYNAMIC_PERL */
+  
+*** ../vim-7.4.906/src/if_python.c	2015-02-03 12:55:11.140179551 +0100
+--- src/if_python.c	2015-11-02 15:10:05.530333030 +0100
+***************
+*** 732,738 ****
+      int
+  python_enabled(int verbose)
+  {
+!     return python_runtime_link_init(DYNAMIC_PYTHON_DLL, verbose) == OK;
+  }
+  
+  /*
+--- 732,743 ----
+      int
+  python_enabled(int verbose)
+  {
+! #ifdef WIN3264
+!     char *dll = DYNAMIC_PYTHON_DLL;
+! #else
+!     char *dll = *p_pydll ? (char *)p_pydll : DYNAMIC_PYTHON_DLL;
+! #endif
+!     return python_runtime_link_init(dll, verbose) == OK;
+  }
+  
+  /*
+*** ../vim-7.4.906/src/if_python3.c	2015-10-07 10:39:49.568914811 +0200
+--- src/if_python3.c	2015-11-02 15:10:05.530333030 +0100
+***************
+*** 686,692 ****
+      int
+  python3_enabled(int verbose)
+  {
+!     return py3_runtime_link_init(DYNAMIC_PYTHON3_DLL, verbose) == OK;
+  }
+  
+  /* Load the standard Python exceptions - don't import the symbols from the
+--- 686,697 ----
+      int
+  python3_enabled(int verbose)
+  {
+! #ifdef WIN3264
+!     char *dll = DYNAMIC_PYTHON3_DLL;
+! #else
+!     char *dll = *p_py3dll ? (char *)p_py3dll : DYNAMIC_PYTHON3_DLL;
+! #endif
+!     return py3_runtime_link_init(dll, verbose) == OK;
+  }
+  
+  /* Load the standard Python exceptions - don't import the symbols from the
+*** ../vim-7.4.906/src/if_ruby.c	2015-04-21 15:25:26.425488328 +0200
+--- src/if_ruby.c	2015-11-02 15:10:05.530333030 +0100
+***************
+*** 639,645 ****
+  ruby_enabled(verbose)
+      int		verbose;
+  {
+!     return ruby_runtime_link_init(DYNAMIC_RUBY_DLL, verbose) == OK;
+  }
+  #endif /* defined(DYNAMIC_RUBY) || defined(PROTO) */
+  
+--- 639,650 ----
+  ruby_enabled(verbose)
+      int		verbose;
+  {
+! #ifdef WIN3264
+!     char *dll = DYNAMIC_RUBY_DLL;
+! #else
+!     char *dll = *p_rubydll ? (char *)p_rubydll : DYNAMIC_RUBY_DLL;
+! #endif
+!     return ruby_runtime_link_init(dll, verbose) == OK;
+  }
+  #endif /* defined(DYNAMIC_RUBY) || defined(PROTO) */
+  
+*** ../vim-7.4.906/src/option.c	2015-09-15 17:30:35.909682046 +0200
+--- src/option.c	2015-11-02 15:10:05.534332982 +0100
+***************
+*** 1779,1784 ****
+--- 1779,1789 ----
+      {"loadplugins", "lpl",  P_BOOL|P_VI_DEF,
+  			    (char_u *)&p_lpl, PV_NONE,
+  			    {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT},
++ #if defined(DYNAMIC_LUA) && !defined(WIN3264)
++     {"luadll",      NULL,   P_STRING|P_VI_DEF|P_SECURE,
++ 			    (char_u *)&p_luadll, PV_NONE,
++ 			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
++ #endif
+  #ifdef FEAT_GUI_MAC
+      {"macatsui",    NULL,   P_BOOL|P_VI_DEF|P_RCLR,
+  			    (char_u *)&p_macatsui, PV_NONE,
+***************
+*** 2014,2019 ****
+--- 2019,2029 ----
+  # endif
+  #endif
+  				(char_u *)0L} SCRIPTID_INIT},
++ #if defined(DYNAMIC_PERL) && !defined(WIN3264)
++     {"perldll",     NULL,   P_STRING|P_VI_DEF|P_SECURE,
++ 			    (char_u *)&p_perldll, PV_NONE,
++ 			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
++ #endif
+      {"preserveindent", "pi", P_BOOL|P_VI_DEF|P_VIM,
+  			    (char_u *)&p_pi, PV_PI,
+  			    {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+***************
+*** 2119,2124 ****
+--- 2129,2144 ----
+  			    (char_u *)NULL, PV_NONE,
+  #endif
+  			    {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
++ #if defined(DYNAMIC_PYTHON3) && !defined(WIN3264)
++     {"python3dll",  NULL,   P_STRING|P_VI_DEF|P_SECURE,
++ 			    (char_u *)&p_py3dll, PV_NONE,
++ 			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
++ #endif
++ #if defined(DYNAMIC_PYTHON) && !defined(WIN3264)
++     {"pythondll",   NULL,   P_STRING|P_VI_DEF|P_SECURE,
++ 			    (char_u *)&p_pydll, PV_NONE,
++ 			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
++ #endif
+      {"quoteescape", "qe",   P_STRING|P_ALLOCED|P_VI_DEF,
+  #ifdef FEAT_TEXTOBJ
+  			    (char_u *)&p_qe, PV_QE,
+***************
+*** 2192,2197 ****
+--- 2212,2222 ----
+  			    {(char_u *)NULL, (char_u *)0L}
+  #endif
+  			    SCRIPTID_INIT},
++ #if defined(DYNAMIC_RUBY) && !defined(WIN3264)
++     {"rubydll",     NULL,   P_STRING|P_VI_DEF|P_SECURE,
++ 			    (char_u *)&p_rubydll, PV_NONE,
++ 			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
++ #endif
+      {"ruler",	    "ru",   P_BOOL|P_VI_DEF|P_VIM|P_RSTAT,
+  #ifdef FEAT_CMDL_INFO
+  			    (char_u *)&p_ru, PV_NONE,
+*** ../vim-7.4.906/src/option.h	2015-07-21 17:53:11.585527913 +0200
+--- src/option.h	2015-11-02 15:10:05.534332982 +0100
+***************
+*** 626,631 ****
+--- 626,634 ----
+  
+  EXTERN int	p_lz;		/* 'lazyredraw' */
+  EXTERN int	p_lpl;		/* 'loadplugins' */
++ #if defined(DYNAMIC_LUA) && !defined(WIN3264)
++ EXTERN char_u	*p_luadll;	/* 'luadll' */
++ #endif
+  #ifdef FEAT_GUI_MAC
+  EXTERN int	p_macatsui;	/* 'macatsui' */
+  #endif
+***************
+*** 682,687 ****
+--- 685,699 ----
+  #ifdef FEAT_SEARCHPATH
+  EXTERN char_u	*p_cdpath;	/* 'cdpath' */
+  #endif
++ #if defined(DYNAMIC_PERL) && !defined(WIN3264)
++ EXTERN char_u	*p_perldll;	/* 'perldll' */
++ #endif
++ #if defined(DYNAMIC_PYTHON3) && !defined(WIN3264)
++ EXTERN char_u	*p_py3dll;	/* 'python3dll' */
++ #endif
++ #if defined(DYNAMIC_PYTHON) && !defined(WIN3264)
++ EXTERN char_u	*p_pydll;	/* 'pythondll' */
++ #endif
+  #ifdef FEAT_RELTIME
+  EXTERN long	p_rdt;		/* 'redrawtime' */
+  #endif
+***************
+*** 701,706 ****
+--- 713,721 ----
+  EXTERN int	p_ari;		/* 'allowrevins' */
+  EXTERN int	p_ri;		/* 'revins' */
+  #endif
++ #if defined(DYNAMIC_RUBY) && !defined(WIN3264)
++ EXTERN char_u	*p_rubydll;	/* 'rubydll' */
++ #endif
+  #ifdef FEAT_CMDL_INFO
+  EXTERN int	p_ru;		/* 'ruler' */
+  #endif
+*** ../vim-7.4.906/src/version.c	2015-11-02 14:45:12.135936003 +0100
+--- src/version.c	2015-11-02 15:21:12.886459329 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     907,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+82. AT&T names you Customer of the Month for the third consecutive time.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.908 b/7.4.908
new file mode 100644
index 0000000..5db4116
--- /dev/null
+++ b/7.4.908
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.908
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.908 (after 7.4.907)
+Problem:    Build error with MingW compiler. (Cesar Romani)
+Solution:   Change #if into #ifdef.
+Files:      src/if_perl.xs
+
+
+*** ../vim-7.4.907/src/if_perl.xs	2015-11-02 15:27:03.438325506 +0100
+--- src/if_perl.xs	2015-11-02 17:30:13.179498033 +0100
+***************
+*** 611,617 ****
+  perl_enabled(verbose)
+      int		verbose;
+  {
+! #if WIN3264
+      char *dll = DYNAMIC_PERL_DLL;
+  #else
+      char *dll = *p_perldll ? (char *)p_perldll : DYNAMIC_PERL_DLL;
+--- 611,617 ----
+  perl_enabled(verbose)
+      int		verbose;
+  {
+! #ifdef WIN3264
+      char *dll = DYNAMIC_PERL_DLL;
+  #else
+      char *dll = *p_perldll ? (char *)p_perldll : DYNAMIC_PERL_DLL;
+*** ../vim-7.4.907/src/version.c	2015-11-02 15:27:03.442325459 +0100
+--- src/version.c	2015-11-02 17:35:12.587994312 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     908,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+85. Choice between paying Compuserve bill and paying for kids education
+    is a no brainer -- although a bit painful for your kids.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.909 b/7.4.909
new file mode 100644
index 0000000..fef2dd3
--- /dev/null
+++ b/7.4.909
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.909
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.909 (after 7.4.905)
+Problem:    "make install" fails.
+Solution:   Only try installing desktop files if the destination directory
+            exists.
+Files:      src/Makefile
+
+
+*** ../vim-7.4.908/src/Makefile	2015-11-02 12:50:49.756534398 +0100
+--- src/Makefile	2015-11-03 22:00:24.996063518 +0100
+***************
+*** 2213,2218 ****
+--- 2213,2219 ----
+  ICON48PATH = $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
+  ICON32PATH = $(DESTDIR)$(DATADIR)/icons/locolor/32x32/apps
+  ICON16PATH = $(DESTDIR)$(DATADIR)/icons/locolor/16x16/apps
++ DESKTOPPATH = $(DESTDIR)$(DATADIR)/applications
+  KDEPATH = $(HOME)/.kde/share/icons
+  install-icons:
+  	if test -d $(ICON48PATH) -a -w $(ICON48PATH) \
+***************
+*** 2227,2234 ****
+  		-a ! -f $(ICON16PATH)/gvim.png; then \
+  	   $(INSTALL_DATA) $(SCRIPTSOURCE)/vim16x16.png $(ICON16PATH)/gvim.png; \
+  	fi
+! 	$(INSTALL_DATA) $(SCRIPTSOURCE)/vim.desktop $(SCRIPTSOURCE)/gvim.desktop \
+! 		$(DESTDIR)$(DATADIR)/applications
+  
+  $(HELPSOURCE)/vim.1 $(MACROSOURCE) $(TOOLSSOURCE):
+  	@echo Runtime files not found.
+--- 2228,2238 ----
+  		-a ! -f $(ICON16PATH)/gvim.png; then \
+  	   $(INSTALL_DATA) $(SCRIPTSOURCE)/vim16x16.png $(ICON16PATH)/gvim.png; \
+  	fi
+! 	if test -d $(DESKTOPPATH) -a -w $(DESKTOPPATH); then \
+! 	   $(INSTALL_DATA) $(SCRIPTSOURCE)/vim.desktop \
+! 		$(SCRIPTSOURCE)/gvim.desktop \
+! 		$(DESKTOPPATH); \
+! 	fi
+  
+  $(HELPSOURCE)/vim.1 $(MACROSOURCE) $(TOOLSSOURCE):
+  	@echo Runtime files not found.
+*** ../vim-7.4.908/src/version.c	2015-11-02 17:35:37.335704679 +0100
+--- src/version.c	2015-11-03 21:56:28.394899507 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     909,
+  /**/
+
+-- 
+From "know your smileys":
+ ;-0	Can't find shift key
+ ,-9	Kann Umschalttaste nicht finden
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.910 b/7.4.910
new file mode 100644
index 0000000..5ecc0b3
--- /dev/null
+++ b/7.4.910
@@ -0,0 +1,72 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.910
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.910 (after 7.4.905)
+Problem:    Compiler complains about type punned pointer.
+Solution:   Use another way to increment the ref count.
+Files:      src/if_py_both.h
+
+
+*** ../vim-7.4.909/src/if_py_both.h	2015-11-02 13:28:43.573894165 +0100
+--- src/if_py_both.h	2015-11-03 21:36:49.836998968 +0100
+***************
+*** 476,491 ****
+  AlwaysFalse(PyObject *self UNUSED)
+  {
+      /* do nothing */
+!     Py_INCREF(Py_False);
+!     return Py_False;
+  }
+  
+      static PyObject *
+  AlwaysTrue(PyObject *self UNUSED)
+  {
+      /* do nothing */
+!     Py_INCREF(Py_True);
+!     return Py_True;
+  }
+  
+  /***************/
+--- 476,493 ----
+  AlwaysFalse(PyObject *self UNUSED)
+  {
+      /* do nothing */
+!     PyObject	*ret = Py_False;
+!     Py_INCREF(ret);
+!     return ret;
+  }
+  
+      static PyObject *
+  AlwaysTrue(PyObject *self UNUSED)
+  {
+      /* do nothing */
+!     PyObject	*ret = Py_True;
+!     Py_INCREF(ret);
+!     return ret;
+  }
+  
+  /***************/
+*** ../vim-7.4.909/src/version.c	2015-11-03 22:03:08.730101439 +0100
+--- src/version.c	2015-11-10 13:22:07.552159302 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     910,
+  /**/
+
+-- 
+From "know your smileys":
+ :-X	My lips are sealed
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.911 b/7.4.911
new file mode 100644
index 0000000..3b48d24
--- /dev/null
+++ b/7.4.911
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.911
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.911
+Problem:    t_Ce and t_Cs are documented but not supported. (Hirohito Higashi)
+Solution:   Define the options.
+Files:      src/option.c
+
+
+*** ../vim-7.4.910/src/option.c	2015-11-02 15:27:03.442325459 +0100
+--- src/option.c	2015-11-08 20:45:54.839488126 +0100
+***************
+*** 2981,2988 ****
+--- 2981,2990 ----
+      p_term("t_ce", T_CE)
+      p_term("t_cl", T_CL)
+      p_term("t_cm", T_CM)
++     p_term("t_Ce", T_UCE)
+      p_term("t_Co", T_CCO)
+      p_term("t_CS", T_CCS)
++     p_term("t_Cs", T_UCS)
+      p_term("t_cs", T_CS)
+  #ifdef FEAT_VERTSPLIT
+      p_term("t_CV", T_CSV)
+*** ../vim-7.4.910/src/version.c	2015-11-10 13:24:16.510859839 +0100
+--- src/version.c	2015-11-10 13:29:14.391859401 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     911,
+  /**/
+
+-- 
+From "know your smileys":
+ 8<}}	Glasses, big nose, beard
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.912 b/7.4.912
new file mode 100644
index 0000000..18dc688
--- /dev/null
+++ b/7.4.912
@@ -0,0 +1,93 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.912
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.912
+Problem:    Wrong indenting for C++ constructor.
+Solution:   Recognize ::.  (Anhong)
+Files:      src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.4.911/src/misc1.c	2015-10-31 15:32:48.178832586 +0100
+--- src/misc1.c	2015-11-10 14:04:38.410497286 +0100
+***************
+*** 6250,6255 ****
+--- 6250,6268 ----
+      {
+  	if (cin_iscomment(s))	/* ignore comments */
+  	    s = cin_skipcomment(s);
++ 	else if (*s == ':')
++ 	{
++ 	    if (*(s + 1) == ':')
++ 		s += 2;
++ 	    else
++ 		/* To avoid a mistake in the following situation:
++ 		 * A::A(int a, int b)
++ 		 *     : a(0)  // <--not a function decl
++ 		 *     , b(0)
++ 		 * {...
++ 		 */
++ 		return FALSE;
++ 	}
+  	else
+  	    ++s;
+      }
+*** ../vim-7.4.911/src/testdir/test3.in	2015-10-13 16:13:33.456731872 +0200
+--- src/testdir/test3.in	2015-11-10 13:56:14.111567383 +0100
+***************
+*** 663,668 ****
+--- 663,675 ----
+  {
+  }
+  
++ A::A(int a, int b)
++ : aa(a),
++ bb(b),
++ cc(c)
++ {
++ }
++ 
+  class CAbc :
+     public BaseClass1,
+     protected BaseClass2
+*** ../vim-7.4.911/src/testdir/test3.ok	2015-10-13 16:13:33.456731872 +0200
+--- src/testdir/test3.ok	2015-11-10 13:56:40.763299376 +0100
+***************
+*** 651,656 ****
+--- 651,663 ----
+  {
+  }
+  
++ A::A(int a, int b)
++ 	: aa(a),
++ 	bb(b),
++ 	cc(c)
++ {
++ }
++ 
+  class CAbc :
+  	public BaseClass1,
+  	protected BaseClass2
+*** ../vim-7.4.911/src/version.c	2015-11-10 13:30:34.999047749 +0100
+--- src/version.c	2015-11-10 13:59:59.041305722 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     912,
+  /**/
+
+-- 
+From "know your smileys":
+ +<(:-) The Pope
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.913 b/7.4.913
new file mode 100644
index 0000000..a5a89a8
--- /dev/null
+++ b/7.4.913
@@ -0,0 +1,425 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.913
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.913
+Problem:    No utf-8 support for the hangul input feature.
+Solution:   Add utf-8 support. (Namsh)
+Files:      src/gui.c, src/hangulin.c, src/proto/hangulin.pro, src/screen.c,
+            src/ui.c, runtime/doc/hangulin.txt, src/feature.h
+
+
+*** ../vim-7.4.912/src/gui.c	2015-08-11 19:13:55.138175689 +0200
+--- src/gui.c	2015-11-10 14:20:22.653009478 +0100
+***************
+*** 1223,1230 ****
+  	    gui.highlight_mask = (cattr | attr);
+  #ifdef FEAT_HANGULIN
+  	    if (composing_hangul)
+! 		(void)gui_outstr_nowrap(composing_hangul_buffer, 2,
+! 			GUI_MON_IS_CURSOR | GUI_MON_NOCLEAR, cfg, cbg, 0);
+  	    else
+  #endif
+  		(void)gui_screenchar(LineOffset[gui.row] + gui.col,
+--- 1223,1241 ----
+  	    gui.highlight_mask = (cattr | attr);
+  #ifdef FEAT_HANGULIN
+  	    if (composing_hangul)
+! 	    {
+! 		char_u *comp_buf;
+! 		int comp_len;
+! 
+! 		comp_buf = hangul_composing_buffer_get(&comp_len);
+! 		if (comp_buf)
+! 		{
+! 		    (void)gui_outstr_nowrap(comp_buf, comp_len,
+! 					    GUI_MON_IS_CURSOR | GUI_MON_NOCLEAR,
+! 					    cfg, cbg, 0);
+! 		    vim_free(comp_buf);
+! 		}
+! 	    }
+  	    else
+  #endif
+  		(void)gui_screenchar(LineOffset[gui.row] + gui.col,
+***************
+*** 2572,2580 ****
+  #ifdef FEAT_HANGULIN
+  	if (composing_hangul
+  		    && gui.col == gui.cursor_col && gui.row == gui.cursor_row)
+! 	    (void)gui_outstr_nowrap(composing_hangul_buffer, 2,
+! 		    GUI_MON_IS_CURSOR | GUI_MON_NOCLEAR,
+! 		    gui.norm_pixel, gui.back_pixel, 0);
+  	else
+  	{
+  #endif
+--- 2583,2601 ----
+  #ifdef FEAT_HANGULIN
+  	if (composing_hangul
+  		    && gui.col == gui.cursor_col && gui.row == gui.cursor_row)
+! 	{
+! 	    char_u *comp_buf;
+! 	    int comp_len;
+! 
+! 	    comp_buf = hangul_composing_buffer_get(&comp_len);
+! 	    if (comp_buf)
+! 	    {
+! 		(void)gui_outstr_nowrap(comp_buf, comp_len,
+! 					GUI_MON_IS_CURSOR | GUI_MON_NOCLEAR,
+! 					gui.norm_pixel, gui.back_pixel, 0);
+! 		vim_free(comp_buf);
+! 	    }
+! 	}
+  	else
+  	{
+  #endif
+*** ../vim-7.4.912/src/hangulin.c	2015-07-21 17:53:11.577527989 +0200
+--- src/hangulin.c	2015-11-10 14:20:22.653009478 +0100
+***************
+*** 1619,1621 ****
+--- 1619,1667 ----
+      *des++ = johab_lcon_to_wan[lv];
+      return 8;
+  }
++ 
++     char_u *
++ hangul_string_convert(buf, p_len)
++     char_u  *buf;
++     int	    *p_len;
++ {
++     char_u *tmpbuf = NULL;
++     vimconv_T vc;
++ 
++     if (enc_utf8)
++     {
++ 	vc.vc_type = CONV_NONE;
++ 	if (convert_setup(&vc, (char_u *)"euc-kr", p_enc) == OK)
++ 	{
++ 	    tmpbuf = string_convert(&vc, buf, p_len);
++ 	    convert_setup(&vc, NULL, NULL);
++ 	}
++     }
++ 
++     return tmpbuf;
++ }
++ 
++     char_u *
++ hangul_composing_buffer_get(p_len)
++     int	    *p_len;
++ {
++     char_u *tmpbuf = NULL;
++ 
++     if (composing_hangul)
++     {
++ 	int len = 2;
++ 
++ 	tmpbuf = hangul_string_convert(composing_hangul_buffer, &len);
++ 	if (tmpbuf != NULL)
++ 	{
++ 	    *p_len = len;
++ 	}
++ 	else
++ 	{
++ 	    tmpbuf = vim_strnsave(composing_hangul_buffer, 2);
++ 	    *p_len = 2;
++ 	}
++     }
++ 
++     return tmpbuf;
++ }
+*** ../vim-7.4.912/src/proto/hangulin.pro	2013-08-10 13:37:14.000000000 +0200
+--- src/proto/hangulin.pro	2015-11-10 14:20:22.653009478 +0100
+***************
+*** 6,9 ****
+--- 6,11 ----
+  void hangul_keyboard_set __ARGS((void));
+  int hangul_input_process __ARGS((char_u *s, int len));
+  void hangul_input_clear __ARGS((void));
++ char_u *hangul_string_convert __ARGS((char_u *buf, int *p_len));
++ char_u *hangul_composing_buffer_get __ARGS((int *p_len));
+  /* vim: set ft=c : */
+*** ../vim-7.4.912/src/screen.c	2015-08-11 18:52:58.077121515 +0200
+--- src/screen.c	2015-11-10 14:20:22.657009438 +0100
+***************
+*** 10047,10053 ****
+  	    if (gui.in_use)
+  	    {
+  		if (hangul_input_state_get())
+! 		    MSG_PUTS_ATTR(" \307\321\261\333", attr);   /* HANGUL */
+  	    }
+  #endif
+  #ifdef FEAT_INS_EXPAND
+--- 10047,10059 ----
+  	    if (gui.in_use)
+  	    {
+  		if (hangul_input_state_get())
+! 		{
+! 		    /* HANGUL */
+! 		    if (enc_utf8)
+! 			MSG_PUTS_ATTR(" \355\225\234\352\270\200", attr);
+! 		    else
+! 			MSG_PUTS_ATTR(" \307\321\261\333", attr);
+! 		}
+  	    }
+  #endif
+  #ifdef FEAT_INS_EXPAND
+*** ../vim-7.4.912/src/ui.c	2015-09-01 20:31:16.311776122 +0200
+--- src/ui.c	2015-11-10 14:20:22.657009438 +0100
+***************
+*** 1723,1730 ****
+--- 1723,1739 ----
+      char_u  *s;
+      int	    len;
+  {
++     char_u *tmpbuf;
++ 
++     tmpbuf = hangul_string_convert(s, &len);
++     if (tmpbuf != NULL)
++ 	s = tmpbuf;
++ 
+      while (len--)
+  	inbuf[inbufcount++] = *s++;
++ 
++     if (tmpbuf != NULL)
++ 	vim_free(tmpbuf);
+  }
+  #endif
+  
+*** ../vim-7.4.912/runtime/doc/hangulin.txt	2013-08-10 13:24:54.000000000 +0200
+--- runtime/doc/hangulin.txt	2015-11-10 14:26:20.313417262 +0100
+***************
+*** 1,11 ****
+! *hangulin.txt*  For Vim version 7.4.  Last change: 2009 Jun 24
+  
+  
+  		  VIM REFERENCE MANUAL    by Chi-Deok Hwang and Sung-Hyun Nam
+  
+- NOTE: The |+hangul_input| feature is scheduled to be removed.  If you want to
+- keep it, please send a message to the Vim user maillist.
+- 
+  
+  Introduction					*hangul*
+  ------------
+--- 1,8 ----
+! *hangulin.txt*  For Vim version 7.4.  Last change: 2015 Nov 10
+  
+  
+  		  VIM REFERENCE MANUAL    by Chi-Deok Hwang and Sung-Hyun Nam
+  
+  
+  Introduction					*hangul*
+  ------------
+***************
+*** 17,23 ****
+  -------
+  Next is a basic option.  You can add any other configure option. >
+  
+!    ./configure --with-x --enable-multibyte --enable-fontset --enable-hangulinput
+  
+  And you should check feature.h.  If |+hangul_input| feature is enabled
+  by configure, you can select more options such as keyboard type, 2 bulsik
+--- 14,21 ----
+  -------
+  Next is a basic option.  You can add any other configure option. >
+  
+!    ./configure --with-x --enable-multibyte --enable-hangulinput \
+!             --disable-xim
+  
+  And you should check feature.h.  If |+hangul_input| feature is enabled
+  by configure, you can select more options such as keyboard type, 2 bulsik
+***************
+*** 26,43 ****
+  	#define HANGUL_DEFAULT_KEYBOARD 2
+  	#define ESC_CHG_TO_ENG_MODE
+  	/* #define X_LOCALE */
+- 	/* #define SLOW_XSERVER */
+  
+  Environment variables
+  ---------------------
+! You should set LANG variable to Korean locale such as ko or ko_KR.euc.
+  If you set LC_ALL variable, it should be set to Korean locale also.
+  
+  VIM resource
+  ------------
+! You should add nexts to your global vimrc ($HOME/.vimrc). >
+  
+! 	:set fileencoding=korea
+  
+  Keyboard
+  --------
+--- 24,44 ----
+  	#define HANGUL_DEFAULT_KEYBOARD 2
+  	#define ESC_CHG_TO_ENG_MODE
+  	/* #define X_LOCALE */
+  
+  Environment variables
+  ---------------------
+! You should set LANG variable to Korean locale such as ko, ko_KR.eucKR
+! or ko_KR.UTF-8.
+  If you set LC_ALL variable, it should be set to Korean locale also.
+  
+  VIM resource
+  ------------
+! You may want to set 'encoding' and 'fileencodings'.
+! Next are examples:
+  
+! 	:set encoding=euc-kr
+! 	:set encoding=utf-8
+! 	:set fileencodings=ucs-bom,utf-8,cp949,euc-kr,latin1
+  
+  Keyboard
+  --------
+***************
+*** 52,59 ****
+  
+  Hangul Fonts
+  ------------
+! You can set text font using $HOME/.Xdefaults or in your gvimrc file.
+! But to use Hangul, you should set 'guifontset' in your vimrc.
+  
+  $HOME/.Xdefaults: >
+      Vim.font: english_font
+--- 53,68 ----
+  
+  Hangul Fonts
+  ------------
+! If you use GTK version of GVIM, you should set 'guifont' and 'guifontwide'.
+! For example:
+!     set guifont=Courier\ 12
+!     set guifontwide=NanumGothicCoding\ 12
+! 
+! If you use Motif or Athena version of GVIM, you should set 'guifontset' in
+! your vimrc.  You can set fontset in the .Xdefaults file.
+! 
+! $HOME/.gvimrc: >
+!     set guifontset=english_font,hangul_font
+  
+  $HOME/.Xdefaults: >
+      Vim.font: english_font
+***************
+*** 66,105 ****
+      *international: True
+      Vim*fontList: english_font;hangul_font:
+  
+- $HOME/.gvimrc: >
+-     set guifontset=english_font,hangul_font
+- 
+  attention! the , (comma) or ; (semicolon)
+  
+  And there should be no ':set guifont'.  If it exists, then Gvim ignores
+  ':set guifontset'.  It means VIM runs without fontset supporting.
+  So, you can see only English.  Hangul does not be correctly displayed.
+  
+! After 'fontset' feature is enabled, VIM does not allow using 'font'.
+  For example, if you use >
+     :set guifontset=eng_font,your_font
+  in your .gvimrc, then you should do for syntax >
+     :hi Comment guifg=Cyan font=another_eng_font,another_your_font
+  If you just do >
+     :hi Comment font=another_eng_font
+! then you can see a GOOD error message.  Be careful!
+  
+  hangul_font width should be twice than english_font width.
+  
+  Unsupported Feature
+  -------------------
+! Johab font not yet supported.  And I don't have any plan.
+! If you really want to use johab font, you can use the
+! hanguldraw.c in gau package.
+  
+! Hanja input not yet supported.  And I don't have any plan.
+! If you really want to input hanja, just use VIM with hanterm.
+  
+  Bug or Comment
+  --------------
+  Send comments, patches and suggestions to:
+  
+- 				    Chi-Deok Hwang <hwang@mizi.co.kr>
+  				    SungHyun Nam <goweol@gmail.com>
+  
+   vim:tw=78:ts=8:ft=help:norl:
+--- 75,112 ----
+      *international: True
+      Vim*fontList: english_font;hangul_font:
+  
+  attention! the , (comma) or ; (semicolon)
+  
+  And there should be no ':set guifont'.  If it exists, then Gvim ignores
+  ':set guifontset'.  It means VIM runs without fontset supporting.
+  So, you can see only English.  Hangul does not be correctly displayed.
+  
+! After 'fontset' feature is enabled, VIM does not allow using english
+! font only in 'font' setting for syntax.
+  For example, if you use >
+     :set guifontset=eng_font,your_font
+  in your .gvimrc, then you should do for syntax >
+     :hi Comment guifg=Cyan font=another_eng_font,another_your_font
+  If you just do >
+     :hi Comment font=another_eng_font
+! then you can see a error message.  Be careful!
+  
+  hangul_font width should be twice than english_font width.
+  
+  Unsupported Feature
+  -------------------
+! We don't support Johab font.
+! We don't support Hanja input.
+! And We don't have any plan to support them.
+  
+! If you really need such features, you can use console version of VIM with a
+! capable terminal emulator.
+  
+  Bug or Comment
+  --------------
+  Send comments, patches and suggestions to:
+  
+  				    SungHyun Nam <goweol@gmail.com>
++ 				    Chi-Deok Hwang <...>
+  
+   vim:tw=78:ts=8:ft=help:norl:
+*** ../vim-7.4.912/src/feature.h	2014-11-30 13:34:16.893626683 +0100
+--- src/feature.h	2015-11-10 14:30:08.087134574 +0100
+***************
+*** 677,685 ****
+  # define ESC_CHG_TO_ENG_MODE		/* if defined, when ESC pressed,
+  					 * turn to english mode
+  					 */
+- # if !defined(FEAT_XFONTSET) && defined(HAVE_X11) && !defined(FEAT_GUI_GTK)
+- #  define FEAT_XFONTSET			/* Hangul input requires xfontset */
+- # endif
+  # if defined(FEAT_XIM) && !defined(LINT)
+  	Error: You should select only ONE of XIM and HANGUL INPUT
+  # endif
+--- 677,682 ----
+***************
+*** 687,693 ****
+  #if defined(FEAT_HANGULIN) || defined(FEAT_XIM)
+  /* # define X_LOCALE */			/* for OS with incomplete locale
+  					   support, like old linux versions. */
+- /* # define SLOW_XSERVER */		/* for extremely slow X server */
+  #endif
+  
+  /*
+--- 684,689 ----
+*** ../vim-7.4.912/src/version.c	2015-11-10 14:06:48.765187078 +0100
+--- src/version.c	2015-11-10 14:21:28.556347509 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     913,
+  /**/
+
+-- 
+From "know your smileys":
+ :-D	Big smile
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.914 b/7.4.914
new file mode 100644
index 0000000..d5508c8
--- /dev/null
+++ b/7.4.914
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.914
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.914
+Problem:    New compiler warning: logical-not-parentheses
+Solution:   Silence the warning.
+Files:      src/term.c
+    
+
+*** ../vim-7.4.913/src/term.c	2015-07-10 14:05:03.930436893 +0200
+--- src/term.c	2015-11-10 15:16:21.355262405 +0100
+***************
+*** 2276,2282 ****
+   */
+      for (i = 0; i < 2; ++i)
+      {
+! 	if (!builtin_first == i)
+  #endif
+  	/*
+  	 * Search in builtin termcap
+--- 2276,2282 ----
+   */
+      for (i = 0; i < 2; ++i)
+      {
+! 	if ((!builtin_first) == i)
+  #endif
+  	/*
+  	 * Search in builtin termcap
+*** ../vim-7.4.913/src/version.c	2015-11-10 14:35:14.316069755 +0100
+--- src/version.c	2015-11-10 15:17:13.266740195 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     914,
+  /**/
+
+
+-- 
+From "know your smileys":
+ :'-D	Laughing so much that they're crying
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.915 b/7.4.915
new file mode 100644
index 0000000..659e5fb
--- /dev/null
+++ b/7.4.915
@@ -0,0 +1,83 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.915
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.915
+Problem:    When removing from 'path' and then adding, a comma may go missing.
+            (Malcolm Rowe)
+Solution:   Fix the check for P_ONECOMMA. (closes #471)
+Files:      src/option.c, src/testdir/test_options.in, 
+            src/testdir/test_options.ok
+
+
+*** ../vim-7.4.914/src/option.c	2015-11-10 13:30:34.999047749 +0100
+--- src/option.c	2015-11-10 17:46:36.191651303 +0100
+***************
+*** 4883,4891 ****
+  				{
+  				    i = (int)STRLEN(origval);
+  				    /* strip a trailing comma, would get 2 */
+! 				    if (comma && (flags & P_ONECOMMA) && i > 1
+! 					            && origval[i - 1] == ','
+! 						    && origval[i - 2] != '\\')
+  					i--;
+  				    mch_memmove(newval + i + comma, newval,
+  							  STRLEN(newval) + 1);
+--- 4883,4892 ----
+  				{
+  				    i = (int)STRLEN(origval);
+  				    /* strip a trailing comma, would get 2 */
+! 				    if (comma && i > 1
+! 					  && (flags & P_ONECOMMA) == P_ONECOMMA
+! 					  && origval[i - 1] == ','
+! 					  && origval[i - 2] != '\\')
+  					i--;
+  				    mch_memmove(newval + i + comma, newval,
+  							  STRLEN(newval) + 1);
+*** ../vim-7.4.914/src/testdir/test_options.in	2014-04-01 14:08:14.685074130 +0200
+--- src/testdir/test_options.in	2015-11-10 17:45:50.096107003 +0100
+***************
+*** 10,15 ****
+--- 10,21 ----
+  :endtry
+  :buf 1
+  :$put =caught
++ :"
++ :" Test that changing 'path' keeps two commas.
++ :set path=foo,,bar
++ :set path-=bar
++ :set path+=bar
++ :$put =&path
+  :/^result/,$w! test.out
+  :qa!
+  ENDTEST
+*** ../vim-7.4.914/src/testdir/test_options.ok	2014-04-01 14:08:14.685074130 +0200
+--- src/testdir/test_options.ok	2015-11-10 17:46:07.283937094 +0100
+***************
+*** 1,2 ****
+--- 1,3 ----
+  result
+  ok
++ foo,,bar
+*** ../vim-7.4.914/src/version.c	2015-11-10 15:17:59.166278487 +0100
+--- src/version.c	2015-11-10 17:48:31.650509518 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     915,
+  /**/
+
+-- 
+There's no place like $(HOME)!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.916 b/7.4.916
new file mode 100644
index 0000000..3d5e8d9
--- /dev/null
+++ b/7.4.916
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.916
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.916
+Problem:    When running out of memory while copying a dict memory may be
+            freed twice. (ZyX)
+Solution:   Do not call the garbage collector when running out of memory.
+Files:      src/misc2.c
+
+
+*** ../vim-7.4.915/src/misc2.c	2015-09-29 12:08:39.333321460 +0200
+--- src/misc2.c	2015-11-10 19:00:23.267871297 +0100
+***************
+*** 952,960 ****
+  
+  	clear_sb_text();	      /* free any scrollback text */
+  	try_again = mf_release_all(); /* release as many blocks as possible */
+- #ifdef FEAT_EVAL
+- 	try_again |= garbage_collect(); /* cleanup recursive lists/dicts */
+- #endif
+  
+  	releasing = FALSE;
+  	if (!try_again)
+--- 952,957 ----
+*** ../vim-7.4.915/src/version.c	2015-11-10 17:50:20.717430483 +0100
+--- src/version.c	2015-11-10 19:00:39.775708047 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     916,
+  /**/
+
+-- 
+I AM THANKFUL...
+...for the taxes that I pay because it means that I am employed.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.917 b/7.4.917
new file mode 100644
index 0000000..30719fa
--- /dev/null
+++ b/7.4.917
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.917
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.917
+Problem:    Compiler warning for comparing signed and unsigned.
+Solution:   Add a type cast.
+Files:      src/hangulin.c
+
+
+*** ../vim-7.4.916/src/hangulin.c	2015-11-10 14:35:14.312069795 +0100
+--- src/hangulin.c	2015-11-10 19:09:56.574198479 +0100
+***************
+*** 1515,1521 ****
+      int i;
+  
+      if ((i = han_index(h, low)) >= 0
+! 	&& i < sizeof(ks_table1)/sizeof(ks_table1[0]))
+      {
+  	*fp = ks_table1[i][0];
+  	*mp = ks_table1[i][1];
+--- 1515,1521 ----
+      int i;
+  
+      if ((i = han_index(h, low)) >= 0
+! 	&& i < (int)(sizeof(ks_table1)/sizeof(ks_table1[0])))
+      {
+  	*fp = ks_table1[i][0];
+  	*mp = ks_table1[i][1];
+*** ../vim-7.4.916/src/version.c	2015-11-10 19:04:18.729542221 +0100
+--- src/version.c	2015-11-10 19:11:07.641496707 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     917,
+  /**/
+
+-- 
+I AM THANKFUL...
+...for the mess to clean after a party because it means I have
+been surrounded by friends.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.918 b/7.4.918
new file mode 100644
index 0000000..9aa890e
--- /dev/null
+++ b/7.4.918
@@ -0,0 +1,93 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.918
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.918
+Problem:    A digit in an option name has problems.
+Solution:   Rename 'python3dll' to 'pythonthreedll'.
+Files:      src/option.c, src/option.h, runtime/doc/options.txt
+
+
+*** ../vim-7.4.917/src/option.c	2015-11-10 17:50:20.713430521 +0100
+--- src/option.c	2015-11-10 19:27:44.075652319 +0100
+***************
+*** 2130,2136 ****
+  #endif
+  			    {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+  #if defined(DYNAMIC_PYTHON3) && !defined(WIN3264)
+!     {"python3dll",  NULL,   P_STRING|P_VI_DEF|P_SECURE,
+  			    (char_u *)&p_py3dll, PV_NONE,
+  			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
+  #endif
+--- 2130,2136 ----
+  #endif
+  			    {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+  #if defined(DYNAMIC_PYTHON3) && !defined(WIN3264)
+!     {"pythonthreedll",  NULL,   P_STRING|P_VI_DEF|P_SECURE,
+  			    (char_u *)&p_py3dll, PV_NONE,
+  			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
+  #endif
+*** ../vim-7.4.917/src/option.h	2015-11-02 15:27:03.442325459 +0100
+--- src/option.h	2015-11-10 19:27:58.923505522 +0100
+***************
+*** 689,695 ****
+  EXTERN char_u	*p_perldll;	/* 'perldll' */
+  #endif
+  #if defined(DYNAMIC_PYTHON3) && !defined(WIN3264)
+! EXTERN char_u	*p_py3dll;	/* 'python3dll' */
+  #endif
+  #if defined(DYNAMIC_PYTHON) && !defined(WIN3264)
+  EXTERN char_u	*p_pydll;	/* 'pythondll' */
+--- 689,695 ----
+  EXTERN char_u	*p_perldll;	/* 'perldll' */
+  #endif
+  #if defined(DYNAMIC_PYTHON3) && !defined(WIN3264)
+! EXTERN char_u	*p_py3dll;	/* 'pythonthreedll' */
+  #endif
+  #if defined(DYNAMIC_PYTHON) && !defined(WIN3264)
+  EXTERN char_u	*p_pydll;	/* 'pythondll' */
+*** ../vim-7.4.917/runtime/doc/options.txt	2015-11-02 15:27:03.434325554 +0100
+--- runtime/doc/options.txt	2015-11-10 19:27:08.200007003 +0100
+***************
+*** 5680,5687 ****
+  	Insert mode completion.  When zero as much space as available is used.
+  	|ins-completion-menu|.
+  
+! 						*'python3dll'*
+! 'python3dll' 		string	(default empty)
+  			global
+  			{not in Vi} {only for Unix}
+  			{only available when compiled with the |+python3/dyn|
+--- 5698,5705 ----
+  	Insert mode completion.  When zero as much space as available is used.
+  	|ins-completion-menu|.
+  
+! 						*'pythonthreedll'*
+! 'pythonthreedll'	string	(default empty)
+  			global
+  			{not in Vi} {only for Unix}
+  			{only available when compiled with the |+python3/dyn|
+*** ../vim-7.4.917/src/version.c	2015-11-10 19:11:55.173027459 +0100
+--- src/version.c	2015-11-10 19:28:55.926940874 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     918,
+  /**/
+
+-- 
+I AM THANKFUL...
+...for the clothes that fit a little too snug because it
+means I have more than enough to eat.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.919 b/7.4.919
new file mode 100644
index 0000000..43cfd79
--- /dev/null
+++ b/7.4.919
@@ -0,0 +1,180 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.919
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.919
+Problem:    The dll options are not in the options window.
+Solution:   Add the dll options.  And other fixes.
+Files:	    runtime/optwin.vim
+
+
+*** ../vim-7.4.918/runtime/optwin.vim	2015-07-17 14:16:49.854596682 +0200
+--- runtime/optwin.vim	2015-11-10 19:27:27.263818531 +0100
+***************
+*** 1,7 ****
+  " These commands create the option window.
+  "
+  " Maintainer:	Bram Moolenaar <Bram@vim.org>
+! " Last Change:	2013 Jun 29
+  
+  " If there already is an option window, jump to that one.
+  if bufwinnr("option-window") > 0
+--- 1,7 ----
+  " These commands create the option window.
+  "
+  " Maintainer:	Bram Moolenaar <Bram@vim.org>
+! " Last Change:	2015 Nov 10
+  
+  " If there already is an option window, jump to that one.
+  if bufwinnr("option-window") > 0
+***************
+*** 149,155 ****
+  call append(0, '" Each "set" line shows the current value of an option (on the left).')
+  call append(1, '" Hit <CR> on a "set" line to execute it.')
+  call append(2, '"            A boolean option will be toggled.')
+! call append(3, '"            For other options you can edit the value.')
+  call append(4, '" Hit <CR> on a help line to open a help window on this option.')
+  call append(5, '" Hit <CR> on an index line to jump there.')
+  call append(6, '" Hit <Space> on a "set" line to refresh it.')
+--- 149,155 ----
+  call append(0, '" Each "set" line shows the current value of an option (on the left).')
+  call append(1, '" Hit <CR> on a "set" line to execute it.')
+  call append(2, '"            A boolean option will be toggled.')
+! call append(3, '"            For other options you can edit the value before hitting <CR>.')
+  call append(4, '" Hit <CR> on a help line to open a help window on this option.')
+  call append(5, '" Hit <CR> on an index line to jump there.')
+  call append(6, '" Hit <Space> on a "set" line to refresh it.')
+***************
+*** 606,611 ****
+--- 606,615 ----
+      call append("$", "guiheadroom\troom (in pixels) left above/below the window")
+      call append("$", " \tset ghr=" . &ghr)
+    endif
++   if has("directx")
++     call append("$", "renderoptions\toptions for text rendering")
++     call <SID>OptionG("rop", &rop)
++   endif
+    call append("$", "guipty\tuse a pseudo-tty for I/O to external commands")
+    call <SID>BinOptionG("guipty", &guipty)
+    if has("browse")
+***************
+*** 701,706 ****
+--- 705,712 ----
+  call <SID>BinOptionG("eb", &eb)
+  call append("$", "visualbell\tuse a visual bell instead of beeping")
+  call <SID>BinOptionG("vb", &vb)
++ call append("$", "belloff\tdo not ring the bell for these reasons")
++ call <SID>OptionG("belloff", &belloff)
+  if has("multi_lang")
+    call append("$", "helplang\tlist of preferred languages for finding help")
+    call <SID>OptionG("hlg", &hlg)
+***************
+*** 724,729 ****
+--- 730,736 ----
+  
+  call <SID>Header("editing text")
+  call append("$", "undolevels\tmaximum number of changes that can be undone")
++ call append("$", "\t(global or local to buffer)")
+  call append("$", " \tset ul=" . &ul)
+  call append("$", "undoreload\tmaximum number lines to save for undo on a buffer reload")
+  call append("$", " \tset ur=" . &ur)
+***************
+*** 949,955 ****
+  call append("$", "endofline\tlast line in the file has an end-of-line")
+  call append("$", "\t(local to buffer)")
+  call <SID>BinOptionL("eol")
+! call append("$", "fixeol\tfixes missing end-of-line at end of text file")
+  call append("$", "\t(local to buffer)")
+  call <SID>BinOptionL("fixeol")
+  if has("multi_byte")
+--- 956,962 ----
+  call append("$", "endofline\tlast line in the file has an end-of-line")
+  call append("$", "\t(local to buffer)")
+  call <SID>BinOptionL("eol")
+! call append("$", "fixendofline\tfixes missing end-of-line at end of text file")
+  call append("$", "\t(local to buffer)")
+  call <SID>BinOptionL("fixeol")
+  if has("multi_byte")
+***************
+*** 976,981 ****
+--- 983,989 ----
+  call append("$", "backupskip\tpatterns that specify for which files a backup is not made")
+  call append("$", " \tset bsk=" . &bsk)
+  call append("$", "backupcopy\twhether to make the backup as a copy or rename the existing file")
++ call append("$", "\t(global or local to buffer)")
+  call append("$", " \tset bkc=" . &bkc)
+  call append("$", "backupdir\tlist of directories to put backup files in")
+  call <SID>OptionG("bdir", &bdir)
+***************
+*** 1191,1198 ****
+    call <SID>OptionL("kmp")
+  endif
+  if has("langmap")
+!   call append("$", "langmap\ttranslate characters for Normal mode")
+    call <SID>OptionG("lmap", &lmap)
+  endif
+  if has("xim")
+    call append("$", "imdisable\twhen set never use IM; overrules following IM options")
+--- 1199,1208 ----
+    call <SID>OptionL("kmp")
+  endif
+  if has("langmap")
+!   call append("$", "langmap\tlist of characters that are translated in Normal mode")
+    call <SID>OptionG("lmap", &lmap)
++   call append("$", "langnoremap\tdon't apply 'langmap' to mapped characters")
++   call <SID>BinOptionG("lnr", &lnr)
+  endif
+  if has("xim")
+    call append("$", "imdisable\twhen set never use IM; overrules following IM options")
+***************
+*** 1297,1302 ****
+--- 1307,1328 ----
+    call append("$", "mzquantum\tinterval in milliseconds between polls for MzScheme threads")
+    call append("$", " \tset mzq=" . &mzq)
+  endif
++ if exists("&luadll")
++   call append("$", "luadll\tname of the Lua dynamic library")
++   call <SID>OptionG("luadll", &luadll)
++ endif
++ if exists("&perldll")
++   call append("$", "perldll\tname of the Perl dynamic library")
++   call <SID>OptionG("perldll", &perldll)
++ endif
++ if exists("&pythondll")
++   call append("$", "pythondll\tname of the Python 2 dynamic library")
++   call <SID>OptionG("pythondll", &pythondll)
++ endif
++ if exists("&pythonthreedll")
++   call append("$", "pythonthreedll\tname of the Python 3 dynamic library")
++   call <SID>OptionG("pythonthreedll", &pythonthreedll)
++ endif
+  
+  set cpo&vim
+  
+*** ../vim-7.4.918/src/version.c	2015-11-10 19:41:30.519462341 +0100
+--- src/version.c	2015-11-10 19:45:40.060988233 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     919,
+  /**/
+
+-- 
+The primary purpose of the DATA statement is to give names to constants;
+instead of referring to pi as 3.141592653589793 at every appearance, the
+variable PI can be given that value with a DATA statement and used instead
+of the longer form of the constant.  This also simplifies modifying the
+program, should the value of pi change.
+	-- FORTRAN manual for Xerox Computers
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.920 b/7.4.920
new file mode 100644
index 0000000..4ea1497
--- /dev/null
+++ b/7.4.920
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.920
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.920
+Problem:    The rubydll option is not in the options window.
+Solution:   Add the rubydll option.
+Files:	    runtime/optwin.vim
+
+
+*** ../vim-7.4.919/runtime/optwin.vim	2015-11-10 19:47:32.687868645 +0100
+--- runtime/optwin.vim	2015-11-10 20:25:22.113292888 +0100
+***************
+*** 1323,1328 ****
+--- 1323,1332 ----
+    call append("$", "pythonthreedll\tname of the Python 3 dynamic library")
+    call <SID>OptionG("pythonthreedll", &pythonthreedll)
+  endif
++ if exists("&rubydll")
++   call append("$", "rubydll\tname of the Ruby dynamic library")
++   call <SID>OptionG("rubydll", &rubydll)
++ endif
+  
+  set cpo&vim
+  
+*** ../vim-7.4.919/src/version.c	2015-11-10 19:47:32.691868605 +0100
+--- src/version.c	2015-11-10 20:32:52.600790017 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     920,
+  /**/
+
+-- 
+Bare feet magnetize sharp metal objects so they point upward from the
+floor -- especially in the dark.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.921 b/7.4.921
new file mode 100644
index 0000000..e244cbe
--- /dev/null
+++ b/7.4.921
@@ -0,0 +1,44 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.921
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.921 (after 7.4.906)
+Problem:    Missing proto file update. (Randall W. Morris)
+Solution:   Add the missing line for mch_ishidden.
+Files:      src/proto/os_win32.pro
+
+
+*** ../vim-7.4.920/src/proto/os_win32.pro	2015-03-21 17:32:14.066779916 +0100
+--- src/proto/os_win32.pro	2015-11-02 14:32:36.076850843 +0100
+***************
+*** 19,24 ****
+--- 19,25 ----
+  long mch_getperm __ARGS((char_u *name));
+  int mch_setperm __ARGS((char_u *name, long perm));
+  void mch_hide __ARGS((char_u *name));
++ int mch_ishidden __ARGS((char_u *name));
+  int mch_isdir __ARGS((char_u *name));
+  int mch_mkdir __ARGS((char_u *name));
+  int mch_is_hard_link __ARGS((char_u *fname));
+*** ../vim-7.4.920/src/version.c	2015-11-10 20:45:05.437451313 +0100
+--- src/version.c	2015-11-10 20:51:19.789698207 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     921,
+  /**/
+
+-- 
+A fool learns from his mistakes, a wise man from someone else's.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.922 b/7.4.922
new file mode 100644
index 0000000..442b922
--- /dev/null
+++ b/7.4.922
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.922
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.922
+Problem:    Leaking memory with ":helpt {dir-not-exists}".
+Solution:   Free dirname. (Dominique Pelle)
+Files:      src/ex_cmds.c
+
+
+*** ../vim-7.4.921/src/ex_cmds.c	2015-11-02 14:45:12.135936003 +0100
+--- src/ex_cmds.c	2015-11-10 21:04:42.217660195 +0100
+***************
+*** 6574,6579 ****
+--- 6574,6580 ----
+      if (dirname == NULL || !mch_isdir(dirname))
+      {
+  	EMSG2(_("E150: Not a directory: %s"), eap->arg);
++ 	vim_free(dirname);
+  	return;
+      }
+  
+*** ../vim-7.4.921/src/version.c	2015-11-10 20:52:00.937285809 +0100
+--- src/version.c	2015-11-10 21:05:04.313438979 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     922,
+  /**/
+
+-- 
+I AM THANKFUL...
+...for all the complaining I hear about the government
+because it means we have freedom of speech.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.923 b/7.4.923
new file mode 100644
index 0000000..304f87b
--- /dev/null
+++ b/7.4.923
@@ -0,0 +1,119 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.923
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.923
+Problem:    Prototypes not always generated.
+Solution:   Change #if to OR with PROTO.
+Files:      src/window.c
+
+
+*** ../vim-7.4.922/src/window.c	2015-08-11 19:13:55.146175594 +0200
+--- src/window.c	2015-11-19 13:12:37.441097266 +0100
+***************
+*** 5580,5586 ****
+      }
+  }
+  
+! #ifdef FEAT_MOUSE
+  
+  /*
+   * Status line of dragwin is dragged "offset" lines down (negative is up).
+--- 5580,5586 ----
+      }
+  }
+  
+! #if defined(FEAT_MOUSE) || defined(PROTO)
+  
+  /*
+   * Status line of dragwin is dragged "offset" lines down (negative is up).
+***************
+*** 5713,5719 ****
+      showmode();
+  }
+  
+! #ifdef FEAT_VERTSPLIT
+  /*
+   * Separator line of dragwin is dragged "offset" lines right (negative is left).
+   */
+--- 5713,5719 ----
+      showmode();
+  }
+  
+! # if defined(FEAT_VERTSPLIT) || defined(PROTO)
+  /*
+   * Separator line of dragwin is dragged "offset" lines right (negative is left).
+   */
+***************
+*** 5816,5822 ****
+      (void)win_comp_pos();
+      redraw_all_later(NOT_VALID);
+  }
+! #endif /* FEAT_VERTSPLIT */
+  #endif /* FEAT_MOUSE */
+  
+  #endif /* FEAT_WINDOWS */
+--- 5816,5822 ----
+      (void)win_comp_pos();
+      redraw_all_later(NOT_VALID);
+  }
+! # endif /* FEAT_VERTSPLIT */
+  #endif /* FEAT_MOUSE */
+  
+  #endif /* FEAT_WINDOWS */
+***************
+*** 7268,7274 ****
+  }
+  #endif
+  
+! #ifdef FEAT_WINDOWS
+  /*
+   * Return TRUE if "topfrp" and its children are at the right height.
+   */
+--- 7268,7274 ----
+  }
+  #endif
+  
+! #if defined(FEAT_WINDOWS) || defined(PROTO)
+  /*
+   * Return TRUE if "topfrp" and its children are at the right height.
+   */
+***************
+*** 7291,7297 ****
+  }
+  #endif
+  
+! #ifdef FEAT_VERTSPLIT
+  /*
+   * Return TRUE if "topfrp" and its children are at the right width.
+   */
+--- 7291,7297 ----
+  }
+  #endif
+  
+! #if defined(FEAT_VERTSPLIT) || defined(PROTO)
+  /*
+   * Return TRUE if "topfrp" and its children are at the right width.
+   */
+*** ../vim-7.4.922/src/version.c	2015-11-10 21:05:45.309028557 +0100
+--- src/version.c	2015-11-19 13:13:35.820461760 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     923,
+  /**/
+
+-- 
+Corduroy pillows: They're making headlines!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.924 b/7.4.924
new file mode 100644
index 0000000..f206fb8
--- /dev/null
+++ b/7.4.924
@@ -0,0 +1,72 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.924
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.924
+Problem:    DEVELOPER_DIR gets reset by configure.
+Solution:   Do not reset DEVELOPER_DIR when there is no --with-developer-dir
+            argument. (Kazuki Sakamoto, closes #482)
+Files:      src/configure.in, src/auto/configure
+
+
+*** ../vim-7.4.923/src/configure.in	2015-09-09 20:26:58.905675773 +0200
+--- src/configure.in	2015-11-19 13:43:01.060995654 +0100
+***************
+*** 153,159 ****
+    AC_MSG_CHECKING(--with-developer-dir argument)
+    AC_ARG_WITH(developer-dir, [  --with-developer-dir=PATH    use PATH as location for Xcode developer tools],
+  	DEVELOPER_DIR="$withval"; AC_MSG_RESULT($DEVELOPER_DIR),
+!         DEVELOPER_DIR=""; AC_MSG_RESULT(not present))
+    
+    if test "x$DEVELOPER_DIR" = "x"; then
+      AC_PATH_PROG(XCODE_SELECT, xcode-select)
+--- 153,159 ----
+    AC_MSG_CHECKING(--with-developer-dir argument)
+    AC_ARG_WITH(developer-dir, [  --with-developer-dir=PATH    use PATH as location for Xcode developer tools],
+  	DEVELOPER_DIR="$withval"; AC_MSG_RESULT($DEVELOPER_DIR),
+!         AC_MSG_RESULT(not present))
+    
+    if test "x$DEVELOPER_DIR" = "x"; then
+      AC_PATH_PROG(XCODE_SELECT, xcode-select)
+*** ../vim-7.4.923/src/auto/configure	2015-09-09 20:26:58.905675773 +0200
+--- src/auto/configure	2015-11-19 13:44:23.596083275 +0100
+***************
+*** 4198,4204 ****
+    withval=$with_developer_dir; DEVELOPER_DIR="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEVELOPER_DIR" >&5
+  $as_echo "$DEVELOPER_DIR" >&6; }
+  else
+!   DEVELOPER_DIR=""; { $as_echo "$as_me:${as_lineno-$LINENO}: result: not present" >&5
+  $as_echo "not present" >&6; }
+  fi
+  
+--- 4198,4204 ----
+    withval=$with_developer_dir; DEVELOPER_DIR="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEVELOPER_DIR" >&5
+  $as_echo "$DEVELOPER_DIR" >&6; }
+  else
+!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: not present" >&5
+  $as_echo "not present" >&6; }
+  fi
+  
+*** ../vim-7.4.923/src/version.c	2015-11-19 13:14:26.031915183 +0100
+--- src/version.c	2015-11-19 13:44:44.391853422 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     924,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+113. You are asked about a bus schedule, you wonder if it is 16 or 32 bits.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.925 b/7.4.925
new file mode 100644
index 0000000..3c7d0b9
--- /dev/null
+++ b/7.4.925
@@ -0,0 +1,180 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.925
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.925
+Problem:    User may yank or put using the register being recorded in.
+Solution:   Add the recording register in the message. (Christian Brabandt,
+            closes #470)
+Files:      runtime/doc/options.txt, runtime/doc/repeat.txt, src/ops.c,
+            src/option.h, src/screen.c
+
+
+*** ../vim-7.4.924/runtime/doc/options.txt	2015-11-10 19:41:30.519462341 +0100
+--- runtime/doc/options.txt	2015-11-19 17:26:15.245736151 +0100
+***************
+*** 6507,6512 ****
+--- 6528,6534 ----
+  	  c	don't give |ins-completion-menu| messages.  For example,
+  		"-- XXX completion (YYY)", "match 1 of 2", "The only match",
+  		"Pattern not found", "Back at original", etc.
++ 	  q     use "recording" instead of "recording @a"
+  
+  	This gives you the opportunity to avoid that a change between buffers
+  	requires you to hit <Enter>, but still gives as useful a message as
+*** ../vim-7.4.924/runtime/doc/repeat.txt	2013-08-10 13:25:00.000000000 +0200
+--- runtime/doc/repeat.txt	2015-11-19 17:26:15.245736151 +0100
+***************
+*** 102,108 ****
+  q{0-9a-zA-Z"}		Record typed characters into register {0-9a-zA-Z"}
+  			(uppercase to append).  The 'q' command is disabled
+  			while executing a register, and it doesn't work inside
+! 			a mapping and |:normal|.  {Vi: no recording}
+  
+  q			Stops recording.  (Implementation note: The 'q' that
+  			stops recording is not stored in the register, unless
+--- 109,121 ----
+  q{0-9a-zA-Z"}		Record typed characters into register {0-9a-zA-Z"}
+  			(uppercase to append).  The 'q' command is disabled
+  			while executing a register, and it doesn't work inside
+! 			a mapping and |:normal|.
+! 
+! 			Note: If the register being used for recording is also
+! 			used for |y| and |p| the result is most likely not
+! 			what is expected, because the put will paste the
+! 			recorded macro and the yank will overwrite the
+! 			recorded macro. {Vi: no recording}
+  
+  q			Stops recording.  (Implementation note: The 'q' that
+  			stops recording is not stored in the register, unless
+*** ../vim-7.4.924/src/ops.c	2015-08-11 19:36:37.050004181 +0200
+--- src/ops.c	2015-11-19 17:26:15.249736106 +0100
+***************
+*** 1080,1086 ****
+  	    retval = FAIL;
+  	else
+  	{
+! 	    Recording = TRUE;
+  	    showmode();
+  	    regname = c;
+  	    retval = OK;
+--- 1080,1086 ----
+  	    retval = FAIL;
+  	else
+  	{
+! 	    Recording = c;
+  	    showmode();
+  	    regname = c;
+  	    retval = OK;
+*** ../vim-7.4.924/src/option.h	2015-11-10 19:41:30.519462341 +0100
+--- src/option.h	2015-11-19 17:26:15.249736106 +0100
+***************
+*** 213,219 ****
+  #define SHM_ATTENTION	'A'		/* no ATTENTION messages */
+  #define SHM_INTRO	'I'		/* intro messages */
+  #define SHM_COMPLETIONMENU  'c'		/* completion menu messages */
+! #define SHM_ALL		"rmfixlnwaWtToOsAIc" /* all possible flags for 'shm' */
+  
+  /* characters for p_go: */
+  #define GO_ASEL		'a'		/* autoselect */
+--- 213,220 ----
+  #define SHM_ATTENTION	'A'		/* no ATTENTION messages */
+  #define SHM_INTRO	'I'		/* intro messages */
+  #define SHM_COMPLETIONMENU  'c'		/* completion menu messages */
+! #define SHM_RECORDING	'q'		/* short recording message */
+! #define SHM_ALL		"rmfixlnwaWtToOsAIcq" /* all possible flags for 'shm' */
+  
+  /* characters for p_go: */
+  #define GO_ASEL		'a'		/* autoselect */
+*** ../vim-7.4.924/src/screen.c	2015-11-10 14:35:14.312069795 +0100
+--- src/screen.c	2015-11-19 17:54:41.439168573 +0100
+***************
+*** 163,168 ****
+--- 163,169 ----
+  static int win_do_lines __ARGS((win_T *wp, int row, int line_count, int mayclear, int del));
+  static void win_rest_invalid __ARGS((win_T *wp));
+  static void msg_pos_mode __ARGS((void));
++ static void recording_mode __ARGS((int attr));
+  #if defined(FEAT_WINDOWS)
+  static void draw_tabline __ARGS((void));
+  #endif
+***************
+*** 10163,10169 ****
+  #endif
+  		)
+  	{
+! 	    MSG_PUTS_ATTR(_("recording"), attr);
+  	    need_clear = TRUE;
+  	}
+  
+--- 10164,10170 ----
+  #endif
+  		)
+  	{
+! 	    recording_mode(attr);
+  	    need_clear = TRUE;
+  	}
+  
+***************
+*** 10227,10237 ****
+      {
+  	msg_pos_mode();
+  	if (Recording)
+! 	    MSG_PUTS_ATTR(_("recording"), hl_attr(HLF_CM));
+  	msg_clr_eos();
+      }
+  }
+  
+  #if defined(FEAT_WINDOWS)
+  /*
+   * Draw the tab pages line at the top of the Vim window.
+--- 10228,10251 ----
+      {
+  	msg_pos_mode();
+  	if (Recording)
+! 	    recording_mode(hl_attr(HLF_CM));
+  	msg_clr_eos();
+      }
+  }
+  
++     static void
++ recording_mode(attr)
++     int attr;
++ {
++     MSG_PUTS_ATTR(_("recording"), attr);
++     if (!shortmess(SHM_RECORDING))
++     {
++ 	char_u s[4];
++ 	sprintf((char *)s, " @%c", Recording);
++ 	MSG_PUTS_ATTR(s, attr);
++     }
++ }
++ 
+  #if defined(FEAT_WINDOWS)
+  /*
+   * Draw the tab pages line at the top of the Vim window.
+*** ../vim-7.4.924/src/version.c	2015-11-19 13:46:43.658535430 +0100
+--- src/version.c	2015-11-19 17:27:48.956717638 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     925,
+  /**/
+
+-- 
+FIXME and XXX are two common keywords used to mark broken or incomplete code
+not only since XXX as a sex reference would grab everybody's attention but
+simply due to the fact that Vim would highlight these words.
+					-- Hendrik Scholz
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.926 b/7.4.926
new file mode 100644
index 0000000..e8a3e4e
--- /dev/null
+++ b/7.4.926
@@ -0,0 +1,147 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.926
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.926
+Problem:    Completing the longest match doesn't work properly with multi-byte
+            characters.
+Solution:   When using multi-byte characters use another way to find the
+            longest match. (Hirohito Higashi)
+Files:      src/ex_getln.c, src/testdir/test_utf8.in, src/testdir/test_utf8.ok
+
+
+*** ../vim-7.4.925/src/ex_getln.c	2015-08-11 19:13:55.138175689 +0200
+--- src/ex_getln.c	2015-11-19 18:55:39.355292662 +0100
+***************
+*** 3691,3710 ****
+      /* Find longest common part */
+      if (mode == WILD_LONGEST && xp->xp_numfiles > 0)
+      {
+! 	for (len = 0; xp->xp_files[0][len]; ++len)
+  	{
+! 	    for (i = 0; i < xp->xp_numfiles; ++i)
+  	    {
+  		if (p_fic && (xp->xp_context == EXPAND_DIRECTORIES
+  			|| xp->xp_context == EXPAND_FILES
+  			|| xp->xp_context == EXPAND_SHELLCMD
+  			|| xp->xp_context == EXPAND_BUFFERS))
+  		{
+! 		    if (TOLOWER_LOC(xp->xp_files[i][len]) !=
+! 					    TOLOWER_LOC(xp->xp_files[0][len]))
+  			break;
+  		}
+! 		else if (xp->xp_files[i][len] != xp->xp_files[0][len])
+  		    break;
+  	    }
+  	    if (i < xp->xp_numfiles)
+--- 3691,3727 ----
+      /* Find longest common part */
+      if (mode == WILD_LONGEST && xp->xp_numfiles > 0)
+      {
+! 	int mb_len = 1;
+! 	int c0, ci;
+! 
+! 	for (len = 0; xp->xp_files[0][len]; len += mb_len)
+  	{
+! #ifdef FEAT_MBYTE
+! 	    if (has_mbyte)
+  	    {
++ 		mb_len = (*mb_ptr2len)(&xp->xp_files[0][len]);
++ 		c0 =(* mb_ptr2char)(&xp->xp_files[0][len]);
++ 	    }
++ 	    else
++ #endif
++ 		c0 = xp->xp_files[i][len];
++ 	    for (i = 1; i < xp->xp_numfiles; ++i)
++ 	    {
++ #ifdef FEAT_MBYTE
++ 		if (has_mbyte)
++ 		    ci =(* mb_ptr2char)(&xp->xp_files[i][len]);
++ 		else
++ #endif
++ 		    ci = xp->xp_files[i][len];
+  		if (p_fic && (xp->xp_context == EXPAND_DIRECTORIES
+  			|| xp->xp_context == EXPAND_FILES
+  			|| xp->xp_context == EXPAND_SHELLCMD
+  			|| xp->xp_context == EXPAND_BUFFERS))
+  		{
+! 		    if (MB_TOLOWER(c0) != MB_TOLOWER(ci))
+  			break;
+  		}
+! 		else if (c0 != ci)
+  		    break;
+  	    }
+  	    if (i < xp->xp_numfiles)
+***************
+*** 3714,3719 ****
+--- 3731,3737 ----
+  		break;
+  	    }
+  	}
++ 
+  	ss = alloc((unsigned)len + 1);
+  	if (ss)
+  	    vim_strncpy(ss, xp->xp_files[0], (size_t)len);
+*** ../vim-7.4.925/src/testdir/test_utf8.in	2015-06-25 16:09:20.706461152 +0200
+--- src/testdir/test_utf8.in	2015-11-19 18:42:47.987598529 +0100
+***************
+*** 17,22 ****
+--- 17,41 ----
+  :	$put=strchars(str, 0)
+  :	$put=strchars(str, 1)
+  :endfor
++ :" Test for customlist completion
++ :function! CustomComplete1(lead, line, pos)
++ :	return ['あ', 'い']
++ :endfunction
++ :command -nargs=1 -complete=customlist,CustomComplete1 Test1 :
++ :call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 't')
++ :
++ :function! CustomComplete2(lead, line, pos)
++ :	return ['あたし', 'あたま', 'あたりめ']
++ :endfunction
++ :command -nargs=1 -complete=customlist,CustomComplete2 Test2 :
++ :call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 't')
++ :
++ :function! CustomComplete3(lead, line, pos)
++ :	return ['Nこ', 'Nん', 'Nぶ']
++ :endfunction
++ :command -nargs=1 -complete=customlist,CustomComplete3 Test3 :
++ :call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 't')
++ :
+  :call garbagecollect(1)
+  :/^start:/,$wq! test.out
+  ENDTEST
+*** ../vim-7.4.925/src/testdir/test_utf8.ok	2015-06-25 16:09:20.706461152 +0200
+--- src/testdir/test_utf8.ok	2015-11-19 18:42:47.987598529 +0100
+***************
+*** 17,19 ****
+--- 17,22 ----
+  1
+  1
+  1
++ Test1 
++ Test2 あた
++ Test3 N
+*** ../vim-7.4.925/src/version.c	2015-11-19 17:56:09.434210164 +0100
+--- src/version.c	2015-11-19 18:45:37.129781729 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     926,
+  /**/
+
+-- 
+Amnesia is one of my favorite words, but I forgot what it means.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.927 b/7.4.927
new file mode 100644
index 0000000..c07fa66
--- /dev/null
+++ b/7.4.927
@@ -0,0 +1,104 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.927
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.927
+Problem:    Ruby crashes when there is a runtime error.
+Solution:   Use ruby_options() instead of ruby_process_options(). (Damien)
+Files:      src/if_ruby.c
+
+
+*** ../vim-7.4.926/src/if_ruby.c	2015-11-02 15:27:03.438325506 +0100
+--- src/if_ruby.c	2015-11-19 19:32:10.991642881 +0100
+***************
+*** 280,286 ****
+  #  define rb_enc_str_new			dll_rb_enc_str_new
+  #  define rb_sprintf			dll_rb_sprintf
+  #  define rb_require			dll_rb_require
+! #  define ruby_process_options		dll_ruby_process_options
+  # endif
+  
+  /*
+--- 280,286 ----
+  #  define rb_enc_str_new			dll_rb_enc_str_new
+  #  define rb_sprintf			dll_rb_sprintf
+  #  define rb_require			dll_rb_require
+! #  define ruby_options			dll_ruby_options
+  # endif
+  
+  /*
+***************
+*** 384,390 ****
+  static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
+  static VALUE (*dll_rb_sprintf) (const char*, ...);
+  static VALUE (*dll_rb_require) (const char*);
+! static void* (*ruby_process_options)(int, char**);
+  # endif
+  
+  # if defined(USE_RGENGC) && USE_RGENGC
+--- 384,390 ----
+  static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
+  static VALUE (*dll_rb_sprintf) (const char*, ...);
+  static VALUE (*dll_rb_require) (const char*);
+! static void* (*ruby_options)(int, char**);
+  # endif
+  
+  # if defined(USE_RGENGC) && USE_RGENGC
+***************
+*** 565,571 ****
+      {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
+      {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
+      {"rb_require", (RUBY_PROC*)&dll_rb_require},
+!     {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options},
+  # endif
+  # if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK)
+  #  ifdef __ia64
+--- 565,571 ----
+      {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
+      {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
+      {"rb_require", (RUBY_PROC*)&dll_rb_require},
+!     {"ruby_options", (RUBY_PROC*)&dll_ruby_options},
+  # endif
+  # if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK)
+  #  ifdef __ia64
+***************
+*** 817,823 ****
+  	    {
+  		int dummy_argc = 2;
+  		char *dummy_argv[] = {"vim-ruby", "-e0"};
+! 		ruby_process_options(dummy_argc, dummy_argv);
+  	    }
+  	    ruby_script("vim-ruby");
+  #else
+--- 817,823 ----
+  	    {
+  		int dummy_argc = 2;
+  		char *dummy_argv[] = {"vim-ruby", "-e0"};
+! 		ruby_options(dummy_argc, dummy_argv);
+  	    }
+  	    ruby_script("vim-ruby");
+  #else
+*** ../vim-7.4.926/src/version.c	2015-11-19 19:00:01.768467013 +0100
+--- src/version.c	2015-11-19 19:31:02.392387974 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     927,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+116. You are living with your boyfriend who networks your respective
+     computers so you can sit in separate rooms and email each other
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.928 b/7.4.928
new file mode 100644
index 0000000..d0107d2
--- /dev/null
+++ b/7.4.928
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.928
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.928
+Problem:    A clientserver message interrupts handling keys of a mapping.
+Solution:   Have mch_inchar() send control back to WaitForChar when it is
+            interrupted by server message. (James Kolb)
+Files:      src/os_unix.c
+
+
+*** ../vim-7.4.927/src/os_unix.c	2015-09-15 14:12:01.386632480 +0200
+--- src/os_unix.c	2015-11-19 19:48:25.901196707 +0100
+***************
+*** 401,409 ****
+      {
+  	while (WaitForChar(wtime) == 0)		/* no character available */
+  	{
+! 	    if (!do_resize)	/* return if not interrupted by resize */
+  		return 0;
+- 	    handle_resize();
+  #ifdef MESSAGE_QUEUE
+  	    parse_queued_messages();
+  #endif
+--- 401,415 ----
+      {
+  	while (WaitForChar(wtime) == 0)		/* no character available */
+  	{
+! 	    if (do_resize)
+! 		handle_resize();
+! #ifdef FEAT_CLIENTSERVER
+! 	    else if (!server_waiting())
+! #else
+! 	    else
+! #endif
+! 		/* return if not interrupted by resize or server */
+  		return 0;
+  #ifdef MESSAGE_QUEUE
+  	    parse_queued_messages();
+  #endif
+*** ../vim-7.4.927/src/version.c	2015-11-19 19:33:10.850992480 +0100
+--- src/version.c	2015-11-19 19:44:41.791599027 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     928,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+118. You are on a first-name basis with your ISP's staff.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.929 b/7.4.929
new file mode 100644
index 0000000..6db323e
--- /dev/null
+++ b/7.4.929
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.929
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.929
+Problem:    "gv" after paste selects one character less if 'selection' is
+            "exclusive".
+Solution:   Increment the end position. (Christian Brabandt)
+Files:      src/normal.c, src/testdir/test94.in, src/testdir/test94.ok
+
+
+*** ../vim-7.4.928/src/normal.c	2015-09-25 19:34:57.891936941 +0200
+--- src/normal.c	2015-11-19 20:09:02.567921274 +0100
+***************
+*** 9496,9501 ****
+--- 9496,9504 ----
+  	{
+  	    curbuf->b_visual.vi_start = curbuf->b_op_start;
+  	    curbuf->b_visual.vi_end = curbuf->b_op_end;
++ 	    /* need to adjust cursor position */
++ 	    if (*p_sel == 'e')
++ 		inc(&curbuf->b_visual.vi_end);
+  	}
+  
+  	/* When all lines were selected and deleted do_put() leaves an empty
+*** ../vim-7.4.928/src/testdir/test94.in	2015-06-19 15:17:49.891065610 +0200
+--- src/testdir/test94.in	2015-11-19 20:08:31.508255552 +0100
+***************
+*** 210,215 ****
+--- 210,230 ----
+  :-2yank
+  $v$p
+  :$put ='---'
++ :
++ :$put =''
++ :$put ='gv in exclusive select mode after operation'
++ :$put ='zzz '
++ :$put ='äà '
++ :set selection=exclusive
++ kv3lyjv3lpgvcxxx
++ :$put ='---'
++ :
++ :$put =''
++ :$put ='gv in exclusive select mode without operation'
++ :$put ='zzz '
++ :set selection=exclusive
++ 0v3lgvcxxx
++ :$put ='---'
+  :/^start:/+2,$w! test.out
+  :q!
+  ENDTEST
+*** ../vim-7.4.928/src/testdir/test94.ok	2015-06-19 15:17:49.891065610 +0200
+--- src/testdir/test94.ok	2015-11-19 19:59:32.450049406 +0100
+***************
+*** 112,114 ****
+--- 112,123 ----
+  aaa
+  
+  ---
++ 
++ gv in exclusive select mode after operation
++ zzz 
++ xxx 
++ ---
++ 
++ gv in exclusive select mode without operation
++ xxx 
++ ---
+*** ../vim-7.4.928/src/version.c	2015-11-19 19:55:12.340839491 +0100
+--- src/version.c	2015-11-19 19:59:18.198202378 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     929,
+  /**/
+
+-- 
+Support your right to bare arms!  Wear short sleeves!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.930 b/7.4.930
new file mode 100644
index 0000000..646646a
--- /dev/null
+++ b/7.4.930
@@ -0,0 +1,73 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.930
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.930
+Problem:    MS-Windows: Most users appear not to like the window border.
+Solution:   Remove WS_EX_CLIENTEDGE. (Ian Halliday)
+Files:      src/gui_w32.c
+
+
+*** ../vim-7.4.929/src/gui_w32.c	2015-08-27 22:25:03.464318030 +0200
+--- src/gui_w32.c	2015-11-19 20:20:37.224433622 +0100
+***************
+*** 1661,1667 ****
+  	    return FAIL;
+      }
+      s_textArea = CreateWindowEx(
+! 	WS_EX_CLIENTEDGE,
+  	szTextAreaClass, "Vim text area",
+  	WS_CHILD | WS_VISIBLE, 0, 0,
+  	100,				/* Any value will do for now */
+--- 1661,1667 ----
+  	    return FAIL;
+      }
+      s_textArea = CreateWindowEx(
+! 	0,
+  	szTextAreaClass, "Vim text area",
+  	WS_CHILD | WS_VISIBLE, 0, 0,
+  	100,				/* Any value will do for now */
+***************
+*** 1716,1724 ****
+      highlight_gui_started();
+  
+      /*
+!      * Start out by adding the configured border width into the border offset
+       */
+!     gui.border_offset = gui.border_width + 2;	/*CLIENT EDGE*/
+  
+      /*
+       * Set up for Intellimouse processing
+--- 1716,1724 ----
+      highlight_gui_started();
+  
+      /*
+!      * Start out by adding the configured border width into the border offset.
+       */
+!     gui.border_offset = gui.border_width;
+  
+      /*
+       * Set up for Intellimouse processing
+*** ../vim-7.4.929/src/version.c	2015-11-19 20:11:50.026118225 +0100
+--- src/version.c	2015-11-19 20:19:55.232886832 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     930,
+  /**/
+
+-- 
+"A clear conscience is usually the sign of a bad memory."
+                             -- Steven Wright
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.931 b/7.4.931
new file mode 100644
index 0000000..a6c43ec
--- /dev/null
+++ b/7.4.931
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.931
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.931 (after 7.4.929)
+Problem:    Test 94 fails on some systems.
+Solution:   Set 'encoding' to utf-8.
+Files:      src/testdir/test94.in
+
+
+*** ../vim-7.4.930/src/testdir/test94.in	2015-11-19 20:11:50.022118268 +0100
+--- src/testdir/test94.in	2015-11-21 14:16:35.799454566 +0100
+***************
+*** 17,23 ****
+  
+  STARTTEST
+  :so small.vim
+! :set nocp viminfo+=nviminfo
+  :
+  :" User functions
+  :function MoveToCap()
+--- 17,23 ----
+  
+  STARTTEST
+  :so small.vim
+! :set enc=utf-8 nocp viminfo+=nviminfo
+  :
+  :" User functions
+  :function MoveToCap()
+*** ../vim-7.4.930/src/version.c	2015-11-19 20:23:34.410520484 +0100
+--- src/version.c	2015-11-20 23:01:20.974791757 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     931,
+  /**/
+
+-- 
+"Computers in the future may weigh no more than 1.5 tons."
+                                   Popular Mechanics, 1949
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.932 b/7.4.932
new file mode 100644
index 0000000..11d75cd
--- /dev/null
+++ b/7.4.932
@@ -0,0 +1,108 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.932
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.932 (after 7.4.926)
+Problem:    test_utf8 has confusing dummy command.
+Solution:   Use a real command instead of a colon.
+Files:      src/testdir/test_utf8.in
+
+
+*** ../vim-7.4.931/src/testdir/test_utf8.in	2015-11-19 19:00:01.768467013 +0100
+--- src/testdir/test_utf8.in	2015-11-21 14:28:11.463946910 +0100
+***************
+*** 3,8 ****
+--- 3,9 ----
+  STARTTEST
+  :so small.vim
+  :set encoding=utf-8
++ :"
+  :" Visual block Insert adjusts for multi-byte char
+  :new
+  :call setline(1, ["aaa", "あああ", "bbb"])
+***************
+*** 11,39 ****
+  :
+  :bwipeout!
+  :$put=r
+  :" Test for built-in function strchars()
+  :for str in ["a", "あいa", "A\u20dd", "A\u20dd\u20dd", "\u20dd"]
+  :	$put=strchars(str)
+  :	$put=strchars(str, 0)
+  :	$put=strchars(str, 1)
+  :endfor
+  :" Test for customlist completion
+  :function! CustomComplete1(lead, line, pos)
+  :	return ['あ', 'い']
+  :endfunction
+! :command -nargs=1 -complete=customlist,CustomComplete1 Test1 :
+  :call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 't')
+  :
+  :function! CustomComplete2(lead, line, pos)
+  :	return ['あたし', 'あたま', 'あたりめ']
+  :endfunction
+! :command -nargs=1 -complete=customlist,CustomComplete2 Test2 :
+  :call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 't')
+  :
+  :function! CustomComplete3(lead, line, pos)
+  :	return ['Nこ', 'Nん', 'Nぶ']
+  :endfunction
+! :command -nargs=1 -complete=customlist,CustomComplete3 Test3 :
+  :call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 't')
+  :
+  :call garbagecollect(1)
+--- 12,42 ----
+  :
+  :bwipeout!
+  :$put=r
++ :"
+  :" Test for built-in function strchars()
+  :for str in ["a", "あいa", "A\u20dd", "A\u20dd\u20dd", "\u20dd"]
+  :	$put=strchars(str)
+  :	$put=strchars(str, 0)
+  :	$put=strchars(str, 1)
+  :endfor
++ :"
+  :" Test for customlist completion
+  :function! CustomComplete1(lead, line, pos)
+  :	return ['あ', 'い']
+  :endfunction
+! :command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
+  :call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 't')
+  :
+  :function! CustomComplete2(lead, line, pos)
+  :	return ['あたし', 'あたま', 'あたりめ']
+  :endfunction
+! :command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
+  :call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 't')
+  :
+  :function! CustomComplete3(lead, line, pos)
+  :	return ['Nこ', 'Nん', 'Nぶ']
+  :endfunction
+! :command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
+  :call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 't')
+  :
+  :call garbagecollect(1)
+*** ../vim-7.4.931/src/version.c	2015-11-21 14:24:46.686156894 +0100
+--- src/version.c	2015-11-21 14:31:12.165996746 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     932,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+121. You ask for e-mail adresses instead of telephone numbers.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.933 b/7.4.933
new file mode 100644
index 0000000..201a914
--- /dev/null
+++ b/7.4.933
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.933
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.933 (after 7.4.926)
+Problem:    Crash when using longest completion match.
+Solution:   Fix array index.
+Files:      src/ex_getln.c
+
+
+*** ../vim-7.4.932/src/ex_getln.c	2015-11-19 19:00:01.764467054 +0100
+--- src/ex_getln.c	2015-11-21 16:24:42.615966196 +0100
+***************
+*** 3704,3710 ****
+  	    }
+  	    else
+  #endif
+! 		c0 = xp->xp_files[i][len];
+  	    for (i = 1; i < xp->xp_numfiles; ++i)
+  	    {
+  #ifdef FEAT_MBYTE
+--- 3704,3710 ----
+  	    }
+  	    else
+  #endif
+! 		c0 = xp->xp_files[0][len];
+  	    for (i = 1; i < xp->xp_numfiles; ++i)
+  	    {
+  #ifdef FEAT_MBYTE
+*** ../vim-7.4.932/src/version.c	2015-11-21 14:31:29.273812116 +0100
+--- src/version.c	2015-11-21 16:27:32.042123218 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     933,
+  /**/
+
+-- 
+~
+~
+~
+".signature" 4 lines, 50 characters written
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.934 b/7.4.934
new file mode 100644
index 0000000..d1afd7d
--- /dev/null
+++ b/7.4.934
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.934
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.934
+Problem:    Appveyor also builds on a tag push.
+Solution:   Add a skip_tags line. (Kenichi Ito, closes #489)
+Files:      appveyor.yml
+
+
+*** ../vim-7.4.933/appveyor.yml	2015-09-15 19:17:51.990768865 +0200
+--- appveyor.yml	2015-11-21 17:12:31.180685935 +0100
+***************
+*** 1,5 ****
+--- 1,7 ----
+  version: "{build}"
+  
++ skip_tags: true
++ 
+  before_build:
+    - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release'
+  
+*** ../vim-7.4.933/src/version.c	2015-11-21 16:28:47.405303477 +0100
+--- src/version.c	2015-11-21 17:13:44.691887089 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     934,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+122. You ask if the Netaholics Anonymous t-shirt you ordered can be
+     sent to you via e-mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.935 b/7.4.935
new file mode 100644
index 0000000..4133ab3
--- /dev/null
+++ b/7.4.935
@@ -0,0 +1,95 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.935
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.935 (after 7.4.932)
+Problem:    test_utf8 fails on MS-Windows when executed with gvim.
+Solution:   Use the insert flag on feedkeys() to put the string before the
+            ":" that was already read when checking for available chars.
+Files:      src/testdir/test_utf8.in
+
+
+*** ../vim-7.4.934/src/testdir/test_utf8.in	2015-11-21 14:31:29.269812159 +0100
+--- src/testdir/test_utf8.in	2015-11-22 15:04:56.698114325 +0100
+***************
+*** 9,15 ****
+  :call setline(1, ["aaa", "あああ", "bbb"])
+  :exe ":norm! gg0l\<C-V>jjIx\<Esc>"
+  :let r = getline(1, '$')
+! :
+  :bwipeout!
+  :$put=r
+  :"
+--- 9,15 ----
+  :call setline(1, ["aaa", "あああ", "bbb"])
+  :exe ":norm! gg0l\<C-V>jjIx\<Esc>"
+  :let r = getline(1, '$')
+! :"
+  :bwipeout!
+  :$put=r
+  :"
+***************
+*** 25,44 ****
+  :	return ['あ', 'い']
+  :endfunction
+  :command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
+! :call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 't')
+! :
+  :function! CustomComplete2(lead, line, pos)
+  :	return ['あたし', 'あたま', 'あたりめ']
+  :endfunction
+  :command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
+! :call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 't')
+! :
+  :function! CustomComplete3(lead, line, pos)
+  :	return ['Nこ', 'Nん', 'Nぶ']
+  :endfunction
+  :command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
+! :call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 't')
+! :
+  :call garbagecollect(1)
+  :/^start:/,$wq! test.out
+  ENDTEST
+--- 25,44 ----
+  :	return ['あ', 'い']
+  :endfunction
+  :command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
+! :call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
+! :"
+  :function! CustomComplete2(lead, line, pos)
+  :	return ['あたし', 'あたま', 'あたりめ']
+  :endfunction
+  :command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
+! :call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
+! :"
+  :function! CustomComplete3(lead, line, pos)
+  :	return ['Nこ', 'Nん', 'Nぶ']
+  :endfunction
+  :command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
+! :call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
+! :"
+  :call garbagecollect(1)
+  :/^start:/,$wq! test.out
+  ENDTEST
+*** ../vim-7.4.934/src/version.c	2015-11-21 17:15:29.478748351 +0100
+--- src/version.c	2015-11-22 15:06:49.884881491 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     935,
+  /**/
+
+-- 
+I have a watch cat! Just break in and she'll watch.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/7.4.936 b/7.4.936
new file mode 100644
index 0000000..6d67b0a
--- /dev/null
+++ b/7.4.936
@@ -0,0 +1,67 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.936
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.936
+Problem:    Crash when dragging with the mouse.
+Solution:   Add safety check for NULL pointer. Check mouse position for valid
+            value. (Hirohito Higashi)
+Files:      src/window.c, src/term.c
+
+
+*** ../vim-7.4.935/src/window.c	2015-11-19 13:14:26.031915183 +0100
+--- src/window.c	2015-11-22 19:22:45.009237162 +0100
+***************
+*** 5785,5790 ****
+--- 5785,5792 ----
+  	offset = room;		/* Move as far as we can */
+      if (offset <= 0)		/* No room at all, quit. */
+  	return;
++     if (fr == NULL)
++ 	return;			/* Safety check, should not happen. */
+  
+      /* grow frame fr by offset lines */
+      frame_new_width(fr, fr->fr_width + offset, left, FALSE);
+*** ../vim-7.4.935/src/term.c	2015-11-10 15:17:59.166278487 +0100
+--- src/term.c	2015-11-22 19:31:09.535677713 +0100
+***************
+*** 5231,5236 ****
+--- 5231,5243 ----
+  	    else
+  		key_name[1] = get_pseudo_mouse_code(current_button,
+  							   is_click, is_drag);
++ 
++ 	    /* Make sure the mouse position is valid.  Some terminals may
++ 	     * return weird values. */
++ 	    if (mouse_col >= Columns)
++ 		mouse_col = Columns - 1;
++ 	    if (mouse_row >= Rows)
++ 		mouse_row = Rows - 1;
+  	}
+  #endif /* FEAT_MOUSE */
+  
+*** ../vim-7.4.935/src/version.c	2015-11-22 15:08:17.475927509 +0100
+--- src/version.c	2015-11-22 19:35:43.728648086 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     936,
+  /**/
+
+-- 
+A: Because it messes up the order in which people normally read text.
+Q: Why is top-posting such a bad thing?
+A: Top-posting.
+Q: What is the most annoying thing on usenet and in e-mail?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 --git a/README.patches b/README.patches
index 7dd566b..496eb46 100644
--- a/README.patches
+++ b/README.patches
@@ -1,3 +1,1595 @@
+commit 2b527328d1927b42ca190ff5f92ba69283bdcad0
+Author: Karsten Hopp <karsten@redhat.com>
+Date:   Tue Jan 12 14:59:32 2016 +0100
+
+    add more ssh keywords
+
+commit d79e55016cf8268cee935f1ac3b5b28712d1399e
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 22:13:02 2016 +0100
+
+    patch 7.4.1087
+    Problem:    CTRL-A and CTRL-X do not work properly with blockwise visual
+                selection if there is a mix of Tab and spaces.
+    Solution:   Add OP_NR_ADD and OP_NR_SUB. (Hirohito Higashi)
+
+commit 507edf63df75fe228e0f76b845b58d60266e65d8
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 20:54:17 2016 +0100
+
+    patch 7.4.1086
+    Problem:    Crash with an extremely long buffer name.
+    Solution:   Limit the return value of vim_snprintf(). (Dominique Pelle)
+
+commit a52dfaed104183c1fa2a3b6e4430b23d86bcbece
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 20:21:57 2016 +0100
+
+    patch 7.4.1085
+    Problem:    The CTRL-A and CTRL-X commands do not update the '[ and '] marks.
+    Solution:   (Yukihiro Nakadaira)
+
+commit e1edc1caba05c553fa60b1cf45a7670b1cfd63fe
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 20:08:03 2016 +0100
+
+    patch 7.4.1084
+    Problem:    Using "." to repeat CTRL-A in Visual mode increments the wrong
+                numbers.
+    Solution:   Append right size to the redo buffer. (Ozaki Kiichi)
+
+commit 4514d2769b05faf6edcca42c3ab3d42da84270f1
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 19:21:36 2016 +0100
+
+    patch 7.4.1083
+    Problem:    Building GvimExt with VS2015 may fail.
+    Solution:   Adjust the makefile. (Mike Williams)
+
+commit 858b96f382eeb8f1eab5100639e7b09523a6a2a1
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 16:12:24 2016 +0100
+
+    patch 7.4.1082
+    Problem:    The Tcl interface is always skipping memory free on exit.
+    Solution:   Only skip for dynamically loaded Tcl.
+
+commit 254b105b755d9736ece5f7f28db92acaf3e7bf76
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 16:10:17 2016 +0100
+
+    patch 7.4.1081
+    Problem:    No test for what previously caused a crash.
+    Solution:   Add test for unletting errmsg.
+
+commit f32c5cd6e0e6aa6d4aeacb6bf52e3d3ba21e5201
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 16:07:44 2016 +0100
+
+    patch 7.4.1080
+    Problem:    VS2015 has a function HandleToLong() that is shadowed by the macro
+                that Vim defines.
+    Solution:   Do not define HandleToLong() for MSVC version 1400 and later.
+                (Mike Williams)
+
+commit b86a343280b08d6701da68ee0651e960a0a7a61c
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 16:00:53 2016 +0100
+
+    patch 7.4.1079
+    Problem:    New include file missing from distribution.  Missing changes to
+                quickfix code.
+    Solution:   Add alloc.h to the list of distributed files. Use the enum in
+                quickfix code.
+
+commit acb4f221c715a333f4c49a2235a8006c6ac6e4d5
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 15:59:26 2016 +0100
+
+    Updated runtime files.
+
+commit d08a8d4a31ed10225aca6be7565220fa541c32ac
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 15:20:29 2016 +0100
+
+    patch 7.4.1078
+    Problem:    MSVC: "make clean" doesn't cleanup in the tee directory.
+    Solution:   Add the commands to cleanup tee. (Erich Ritz)
+
+commit 30a89473ee64a276215a55e7fa99e008945022df
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 14:35:58 2016 +0100
+
+    patch 7.4.1077
+    Problem:    The build instructions for MS-Windows are incomplete.
+    Solution:   Add explanations for how to build with various interfaces. (Ken
+                Takata)
+
+commit 6a3c8aff0439c8406082760c54b26e00ff19a90c
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 14:13:40 2016 +0100
+
+    patch 7.4.1076
+    Problem:    CTRL-A does not work well in right-left mode.
+    Solution:   Remove reversing the line, add a test. (Hirohito Higashi)
+
+commit 05fe017c1ac0503b706dad695097572fde01ab0b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 13:54:48 2016 +0100
+
+    patch 7.4.1075
+    Problem:    Crash when using an invalid command.
+    Solution:   Fix generating the error message. (Dominique Pelle)
+
+commit 5fa4d448fb717874b6619bcda62e42190702997c
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 10 13:25:55 2016 +0100
+
+    patch 7.4.1074
+    Problem:    Warning from VX2015 compiler.
+    Solution:   Add a type cast. (Mike Williams)
+
+commit 28fb79db6b52d1154e8dc63d227673648c2fce15
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 9 22:28:33 2016 +0100
+
+    patch 7.4.1073
+    Problem:    Alloc_id depends on numbers, may use the same one twice.  It's not
+                clear from the number what it's for.
+    Solution:   Use an enum.  Add a function to lookup the enum value from the
+                name.
+
+commit 44132a10aeb45c957959cafb4ac39d3f478be98c
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 9 21:09:10 2016 +0100
+
+    add missing test file
+
+commit 450919587d4566ce3d17e685e183d5c17d9c2a11
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 9 21:08:35 2016 +0100
+
+    patch 7.4.1072
+    Problem:    Increment test is old style.
+    Solution:   Make the increment test a new style test. (Hirohito Higashi)
+
+commit cfc0a350a9fa04f1b0cfa1ba31fbd2847376513f
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 9 20:23:00 2016 +0100
+
+    patch 7.4.1071
+    Problem:    New style tests are executed in arbitrary order.
+    Solution:   Sort the test function names. (Hirohito Higashi)
+                Fix the quickfix test that depended on the order.
+
+commit 8a5115cf18751022387af2085f374d38c60dde83
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 9 19:41:11 2016 +0100
+
+    patch 7.4.1070
+    Problem:    The Tcl interface can't be loaded dynamically on Unix.
+    Solution:   Make it possible to load it dynamically. (Ken Takata)
+
+commit 5f24542e5eda590acdbee89b120fa2e19ec7596e
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 9 18:52:40 2016 +0100
+
+    patch 7.4.1069
+    Problem:    Compiler warning for unused argument.
+    Solution:   Add UNUSED.
+
+commit 71bcfdf30109c3d6e40d143adcaf33964b18a70b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 9 18:20:46 2016 +0100
+
+    patch 7.4.1068
+    Problem:    Wrong way to check for unletting internal variables.
+    Solution:   Use a better way. (Olaf Dabrunz)
+
+commit 449538c3d2f7089dcaa1a888f09f41714faec9a6
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 9 17:49:15 2016 +0100
+
+    patch 7.4.1067
+    Problem:    Can't build with MingW and Python on MS-Windows.
+    Solution:   Move the build flags to CFLAGS.
+
+commit 64496ffc9cfb0eb6f2074f22809de2b420b5f300
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 9 15:08:03 2016 +0100
+
+    patch 7.4.1066
+    Problem:    Build fails on MS-Windows.
+    Solution:   Adjust the #ifdefs for "dll" options.
+
+commit 25e4fcde767084d1a79e0926bc301c92987c0cce
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 9 14:57:47 2016 +0100
+
+    patch 7.4.1065
+    Problem:    Cannot use the "dll" options on MS-Windows.
+    Solution:   Support the options on all platforms.  Use the built-in name as
+                the default, so that it's clear what Vim is looking for.
+
+commit 7b877b360532713dc21a0ff3d55a76ac02eaf573
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 9 13:51:34 2016 +0100
+
+    patch 7.4.1064
+    Problem:    When a spell file has single letter compounding creating
+                suggestions takes an awful long time.
+    Solution:   Add th eNOCOMPOUNDSUGS flag.
+
+commit 4d1c0a44419afb3c15a861dcb88f46bfed8cd952
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 9 13:23:54 2016 +0100
+
+    Update to newer English spell files,
+    
+    but without the COMPOUND rules that make suggestions very slow.
+
+commit eca99bd45f094b1b12e22b9d6b206bd05dc9a38c
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Jan 7 22:50:05 2016 +0100
+
+    patch 7.4.1063
+    Problem:    TCL_VER_LONG and DYNAMIC_TCL_VER are not set when building with
+                Cygwin and MingW.
+    Solution:   Add TCL_VER_LONG and DYNAMIC_TCL_VER to the makefile.
+
+commit 0bee2fe25aca7e8e5fefe55fe0f2c0e5e0878a98
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Jan 7 22:45:09 2016 +0100
+
+    patch 7.4.1062
+    Problem:    Building with Ruby on MS-Windows requires a lot of arguments.
+    Solution:   Make it simpler. (Ken Takata)
+
+commit 285bf84b4b9aca828828a8729b04cd59ab333dac
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Jan 7 22:34:01 2016 +0100
+
+    patch 7.4.1061
+    Problem:    Compiler warning for ignoring return value of fwrite().
+    Solution:   Do use the return value. (idea: Charles Campbell)
+
+commit 6602af7fe069246dbcf419c3e904a78b60e7d4dc
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Jan 7 22:01:01 2016 +0100
+
+    patch 7.4.1060
+    Problem:    Instructions for writing tests are outdated.
+    Solution:   Mention Make_all.mak.  Add steps for new style tests.
+
+commit fd39d08fb6f61bc6c1366de8a7af19a42dc1b377
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Jan 7 21:28:24 2016 +0100
+
+    patch 7.4.1059
+    Problem:    Code will never be executed.
+    Solution:   Remove the code.
+
+commit 75bdf6aa30a5c99d67c42886cf7a4a000bbaa422
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Jan 7 21:25:08 2016 +0100
+
+    patch 7.4.1058
+    Problem:    It is not possible to test code that is only reached when memory
+                allocation fails.
+    Solution:   Add the alloc_fail() function.  Try it out with :vimgrep.
+
+commit 2b7db933b0418f3964da5399047ce8998007874c
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Jan 7 16:52:10 2016 +0100
+
+    patch 7.4.1057
+    Problem:    Typos in the :options window.
+    Solution:   Fix the typos. (Dominique Pelle)
+
+commit ca1fe985175385c609f8e06672a1014729aba05c
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Jan 7 16:22:06 2016 +0100
+
+    patch 7.4.1056
+    Problem:    Don't know why finding spell suggestions is slow.
+    Solution:   Add some code to gather profiling information.
+
+commit a61018d7e02a4c98086a04ef747ff0406437b509
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Jan 7 16:19:13 2016 +0100
+
+    Revert English spell file update
+
+commit e7893a4088d6ea796bcab6195d232cb26c12c317
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Wed Jan 6 21:23:56 2016 +0100
+
+    patch 7.4.1055
+    Problem:    Running "make newtests" in src/testdir has no output.
+    Solution:   List the messages file when a test fails. (Christian Brabandt)
+                Update the list of tests.
+
+commit 2795e21eaafaeaf95a91667fd411023280d0f902
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Jan 5 22:04:49 2016 +0100
+
+    patch 7.4.1054
+    Problem:    Illegal memory access.
+    Solution:   Check for missing pattern. (Dominique Pelle)
+
+commit da59dd5da6440c3410866ed61ce169a2012ba5bd
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Jan 5 21:59:58 2016 +0100
+
+    patch 7.4.1053
+    Problem:    Insufficient testing for quickfix commands.
+    Solution:   Add a new style quickfix test. (Yegappan Lakshmanan)
+
+commit 04bff88df6211f64731bf8f5afa088e94496db16
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Jan 5 20:46:16 2016 +0100
+
+    patch 7.4.1052
+    Problem:    Illegal memory access with weird syntax command. (Dominique Pelle)
+    Solution:   Check for column past end of line.
+
+commit af8af8bfac5792fa64efbc524032d568cc7754f7
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Jan 4 22:05:24 2016 +0100
+
+    patch 7.4.1051
+    Problem:    Segfault when unletting "count".
+    Solution:   Check for readonly and locked first. (Dominique Pelle)
+                Add a test.
+
+commit c71982b23978ef61d0a2f0fe5535e782e1c561ed
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Jan 4 21:43:08 2016 +0100
+
+    patch 7.4.1050
+    Problem:    Warning for unused var with tiny features. (Tony Mechelynck)
+    Solution:   Add #ifdef.  Use vim_snprintf().  Reduce number of statemements.
+
+commit 485dace817a99f4cf92a598845d27c8ee685df93
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Jan 4 12:45:29 2016 +0100
+
+    patch 7.4.1049
+    Problem:    Wordcount test still still fails on MS-Windows.
+    Solution:   Set 'fileformats' to "unix".
+
+commit c7803a1c42228566ee2e2efcd621b21d0a8ed3ea
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Jan 4 12:26:23 2016 +0100
+
+    patch 7.4.1048
+    Problem:    Wordcount test still fail on MS-Windows.
+    Solution:   Set 'fileformat' to "unix".
+
+commit 7f68203168aeb22fcf8a5a9680503fe16759ebd4
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Jan 4 12:13:05 2016 +0100
+
+    patch 7.4.1047
+    Problem:    Tests fail on MS-Windows.
+    Solution:   Set 'selection' to inclusive.
+
+commit 2d6c8002729821acc54a4de41d5c5f3d50594973
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 3 23:31:24 2016 +0100
+
+    patch 7.4.1046
+    Problem:    No test coverage for menus.
+    Solution:   Load the standard menus and check there is no error.
+
+commit 47707f6f34007dd803c75addbbd578fd37a74a92
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 3 23:06:34 2016 +0100
+
+    patch 7.4.1045
+    Problem:    Having shadow and coverage on the same build results in the source
+                files not being available in the coverage view.
+    Solution:   Move using shadow to the normal build.
+
+commit 718272a7e13c71095ce07eb3b3d5e1f9790a6991
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 3 22:56:45 2016 +0100
+
+    patch 7.4.1044
+    Problem:    Can't build without the +eval feature.
+    Solution:   Add #ifdef.
+
+commit d7a08a23bf210147e846c74af570bd219e4903da
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 3 22:51:16 2016 +0100
+
+    patch 7.4.1043
+    Problem:    Another small thing.
+    Solution:   Now really update the Mac install text.
+
+commit ed767a2073ef150971b0439a58e7ee582af6984e
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 3 22:49:16 2016 +0100
+
+    patch 7.4.1042
+    Problem:    g-CTRL-G shows the word count, but there is no way to get the word
+                count in a script.
+    Solution:   Add the wordcount() function. (Christian Brabandt)
+
+commit 022b896592721838e387e99fd785d3ded7b68be7
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 3 22:16:20 2016 +0100
+
+    patch 7.4.1041
+    Problem:    Various small things.
+    Solution:   Add file to list of distributed files.  Adjust README.  Fix typo.
+
+commit fa7353428f705f7a13465a1943dddeede4083023
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 3 22:14:44 2016 +0100
+
+    Updated runtime files.
+
+commit 24db72958fc91bd067c7d60a4990d09a6f295b48
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 3 16:56:10 2016 +0100
+
+    patch 7.4.1040
+    Problem:    The tee command is not available on MS-Windows.
+    Solution:   Adjust tee.c for MSVC and add a makefile. (Yasuhiro Matsumoto)
+
+commit d798af8c77cf47dba74b6b69ae4eba904023981c
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Jan 3 14:32:41 2016 +0100
+
+    patch 7.4.1039
+    Problem:    Test 31 fails with small build.
+    Solution:   Bail out for small build. (Hirohito Higashi)
+
+commit d2e03f02c4a69d13bd90b5d084990bca95d0b0af
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 22:46:36 2016 +0100
+
+    patch 7.4.1038
+    Problem:    Still get a warning for a deprecated function with gdk-pixbuf
+                2.31.
+    Solution:   Change minimum minor version from 32 to 31.
+
+commit 027387f70c671f62e3e08e0bdd09ec05b0232735
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 22:25:52 2016 +0100
+
+    patch 7.4.1037
+    Problem:    Using "q!" when there is a modified hidden buffer does not unload
+                the current buffer, resulting in the need to abandon it again.
+    Solution:   When using "q!" unload the current buffer when needed. (Yasuhiro
+                Matsumoto, Hirohito Higashi)
+
+commit fa03fd6c4a9fe05274d62ddefd645cb5801d2023
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 22:03:00 2016 +0100
+
+    patch 7.4.1036
+    Problem:    Only terminals with up to 256 colors work properly.
+    Solution:   Use the 256 color behavior for all terminals with 256 or more
+                colors. (Robert de Bath, closes #504)
+
+commit a3306958dcb9aadff1e1e8521d908d86b10ac99a
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 21:41:06 2016 +0100
+
+    patch 7.4.1035
+    Problem:    An Ex range gets adjusted for folded lines even when the range is
+                not using line numbers.
+    Solution:   Only adjust line numbers for folding. (Christian Brabandt)
+
+commit 27a82e31ee9acedb6922093b2764f7f6860b0f91
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 21:39:09 2016 +0100
+
+    Add new file left out from patch 7.4.1034.
+
+commit aac624bacd4be0c5a8e603dac9020f4a754c9c9c
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 21:31:39 2016 +0100
+
+    patch 7.4.1034
+    Problem:    There is no test for the 'backspace' option behavior.
+    Solution:   Add a test. (Hirohito Higashi)
+
+commit ee2739787f1e996739541bb60e6003b892497e03
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 21:11:51 2016 +0100
+
+    patch 7.4.1033
+    Problem:    Memory use on MS-Windows is very conservative.
+    Solution:   Use the global memory status to estimate amount of memory.
+                (Mike Williams)
+
+commit cbfe32953aea09d35d9ac7e5865c915b14e310c1
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 20:59:10 2016 +0100
+
+    patch 7.4.1032
+    Problem:    message from assert_false() does not look nice.
+    Solution:   Handle missing sourcing_name. Use right number of spaces. (Watiko)
+                Don't use line number if it's zero.
+
+commit 3c6f92e52ef15df4aa248ce00eacd65928044210
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 20:26:36 2016 +0100
+
+    patch 7.4.1031
+    Problem:    Can't build with Python interface using MingW.
+    Solution:   Update the Makefile. (Yasuhiro Matsumoto)
+
+commit a2cce8630756769b2cefdc28c7290ae9262cddb1
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 19:50:04 2016 +0100
+
+    patch 7.4.1030
+    Problem:    test49 is still slow.
+    Solution:   Move more tests from old to new style.
+
+commit d3343960d7745bd586197a28b9a96d634a292422
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 18:17:16 2016 +0100
+
+    patch 7.4.1029
+    Problem:    test_increment fails on systems with 32 bit long.
+    Solution:   Only test with 32 bits.
+
+commit 92c23d8ab82e723e5fa2e0c5ee06348d72b8e444
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 18:08:01 2016 +0100
+
+    patch 7.4.1028
+    Problem:    Nsis version file missing from the distribution.
+    Solution:   Add the file to the list.
+
+commit 89b24fcfc2250d3ccb2f96c61911d9ad0020756b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 18:05:10 2016 +0100
+
+    Update ignored files.  Delete file that should have been deleted by patch 7.4.1016.
+
+commit 887c1fea4a114e7170091942d0446c8882701b5b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 17:56:35 2016 +0100
+
+    patch 7.4.1027
+    Problem:    No support for binary numbers.
+    Solution:   Add "bin" to nrformats. (Jason Schulz)
+
+commit acf92d27c94811e3bd6b84cfd54246e91d44c355
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 16:00:20 2016 +0100
+
+    patch 7.4.1026
+    Problem:    When using MingW the tests do not clean up all files.  E.g. test
+                17 leaves Xdir1 behind. (Michael Soyka)
+    Solution:   Also delete directories, like Make_dos.mak.  Delete files after
+                directories to reduce warnings.
+
+commit 6c7b44472f7055c78d996e1b626bd2932502212f
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 15:44:32 2016 +0100
+
+    patch 7.4.1025
+    Problem:    Version in installer needs to be updated manually.
+    Solution:   Generate a file with the version number. (Guopeng Wen)
+
+commit d5c899a3f1d67a220e571dadf90dde1bbd41e166
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 15:07:02 2016 +0100
+
+    patch 7.4.1024
+    Problem:    Interfaces for MS-Windows are outdated.
+    Solution:   Use Python 2.7.10, Python 3.4.4, Perl 5.22, TCL 8.6.
+
+commit 2c15f6aa8fd057721e35d03523577b41cf7aaad5
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Jan 2 15:00:30 2016 +0100
+
+    patch 7.4.1023
+    Problem:    The distribution files for MS-Windows use CR-LF, which is
+                inconsistent with what one gets from github.
+    Solution:   Use LF in the distribution files.
+
+commit 43f837dea588207c87c34794b19c024e9ff1db3e
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Jan 1 18:34:39 2016 +0100
+
+    patch 7.4.1022
+    Problem:    The README file contains some outdated information.
+    Solution:   Update the information about supported systems.
+
+commit 17b609ed7f3d718e233a561f792f7473e48b0aaa
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Jan 1 17:56:17 2016 +0100
+
+    patch 7.4.1021
+    Problem:    Some makefiles are outdated.
+    Solution:   Add a note to warn developers.
+
+commit 7eae47af89580df07a72079405a0e7b8aad784a8
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Jan 1 17:49:44 2016 +0100
+
+    patch 7.4.1020
+    Problem:    On MS-Windows there is no target to run tests with gvim.
+    Solution:   Add the testgvim target.
+
+commit 40a346dc19a75f2be1b2d491053487cf365dd7d4
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Jan 1 17:29:40 2016 +0100
+
+    Update gitignore for files created when running tests.
+
+commit 39373819fd5fad825df416f1e2b96a6f43758e23
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Jan 1 17:20:27 2016 +0100
+
+    patch 7.4.1019
+    Problem:    Directory listing of "src" is too long.
+    Solution:   Rename the resources file to make it shorter.
+
+commit af2dff8fbc0e0c1dd7cb5ae058c3b896c28f7d24
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Jan 1 14:57:51 2016 +0100
+
+    patch 7.4.1018
+    Problem:    Failure running tests.
+    Solution:   Add missing change to list of old style tests.
+
+commit 8f79acdf7ede2693fbda53c3c9693f16db4f193b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Jan 1 14:48:20 2016 +0100
+
+    patch 7.4.1017
+    Problem:    When there is a backslash in an option ":set -=" doesn't work.
+    Solution:   Handle a backslash better. (Jacob Niehus)  Add a new test, merge
+                in old test.
+
+commit 8dfc5eb32818b11ff5818a060324b94345c40031
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 31 22:37:52 2015 +0100
+
+    patch 7.4.1016
+    Problem:    Still a few OS/2 pieces remain.
+    Solution:   Delete more.
+
+commit c21d67e33c1b42a492e04788cbb14a23a6724e39
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 31 22:27:55 2015 +0100
+
+    patch 7.4.1015
+    Problem:    The column is not restored properly when the matchparen plugin is
+                used in Insert mode and the cursor is after the end of the line.
+    Solution:   Set the curswant flag. (Christian Brabandt).  Also fix
+                highlighting the match of the character before the cursor.
+
+commit 06b0734d9cd2f39d4c12c7fd89a100eadbe5be78
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 31 22:26:28 2015 +0100
+
+    patch 7.4.1014
+    Problem:    fnamemodify('.', ':.') returns an empty string in Cygwin.
+    Solution:   Use CCP_RELATIVE in the call to cygwin_conv_path. (Jacob Niehus,
+                closes #505)
+
+commit 9b05a0d0f94d8c4c1ddd51e7f31b73f7556bdbdc
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 31 21:19:49 2015 +0100
+
+    patch 7.4.1013
+    Problem:    The local value of 'errorformat' is not used for ":lexpr" and
+                ":cexpr".
+    Solution:   Use the local value if it exists. (Christian Brabandt) Adjust the
+                help for this.
+
+commit 1000565c3a2439c9a7c9759284814dbf3b8bc20d
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 31 21:03:23 2015 +0100
+
+    patch 7.4.1012
+    Problem:    Vim overwrites the value of $PYTHONHOME.
+    Solution:   Do not set $PYTHONHOME if it is already set. (Kazuki Sakamoto,
+                closes #500)
+
+commit 2bf2417612879de627dcea1dbb22ee2199b16963
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 31 20:54:51 2015 +0100
+
+    patch 7.4.1011
+    Problem:    Can't build with Strawberry Perl.
+    Solution:   Include stdbool.h. (Ken Takata, closes #328)
+
+commit 2d820808cda15b3ad9fe674393d1f1e997453d9e
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 31 20:46:39 2015 +0100
+
+    patch 7.4.1010
+    Problem:    Some developers are unhappy while running tests.
+    Solution:   Add a test and some color.
+
+commit 53076830fea6df737455523f7e235bfe4f79864d
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 31 19:53:21 2015 +0100
+
+    patch 7.4.1009
+    Problem:    There are still #ifdefs for ARCHIE.
+    Solution:   Remove references to ARCHIE, the code was removed in Vim 5.
+
+commit e7fedb6ebe72d9a475aa65109b77d5ed4667067a
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 31 19:07:19 2015 +0100
+
+    patch 7.4.1008
+    Problem:    The OS/2 code pollutes the source while nobody uses it these days.
+    Solution:   Drop the support for OS/2.
+
+commit e3303cb0817e826e3c25d5dc4ac10b569d0841e1
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 31 18:29:46 2015 +0100
+
+    patch 7.4.1007
+    Problem:    When a symbolic link points to a file in the root directory, the
+                swapfile is not correct.
+    Solution:   Do not try getting the full name of a file in the root directory.
+                (Milly, closes #501)
+
+commit 96c664af27ec9535f2c3cd9b889faad3e9460ad6
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 31 16:21:52 2015 +0100
+
+    patch 7.4.1006
+    Problem:    The fix in patch 7.3.192 is not tested.
+    Solution:   Add a test, one for each regexp engine. (Elias Diem)
+
+commit 86e179dbe75010e9545e1a2fcc92a15d57bf27fd
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 31 16:10:23 2015 +0100
+
+    patch 7.4.1005
+    Problem:    Vim users are not always happy.
+    Solution:   Make them happy.
+
+commit cc7ff3fcd8c8fd7da6faac98a138b830ec5c00d8
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Wed Dec 30 19:13:24 2015 +0100
+
+    Update English spell files.
+
+commit 08b7bae91adb79d30d4c923fd758e2f7cecd33ef
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Wed Dec 30 17:56:05 2015 +0100
+
+    patch 7.4.1004
+    Problem:    Using Makefile when auto/config.mk does not exists results in
+                warnings.
+    Solution:   Use default values for essential variables.
+
+commit 7b5f0a15bce11754c47f849b2ddd68ba0909afac
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Wed Dec 30 17:40:43 2015 +0100
+
+    patch 7.4.1003
+    Problem:    Travis could check a few more things.
+    Solution:   Run autoconf on one of the builds. (James McCoy, closes #510)
+                Also build with normal features.
+
+commit 604619784c7f9007a883c123231d080598bd49f5
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Wed Dec 30 17:17:10 2015 +0100
+
+    patch 7.4.1002
+    Problem:    Cannot run an individual test on MS-Windows.
+    Solution:   Move the rule to run test1 downwards. (Ken Takata)
+
+commit f49e240c2def978247fa457aa105bb3024413f7d
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Wed Dec 30 15:59:25 2015 +0100
+
+    patch 7.4.1001
+    Problem:    test_viml isn't run.
+    Solution:   Include change in makefile.
+
+commit c06624661a3aa6642304c06db9cebe553a4cab17
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Wed Dec 30 15:49:05 2015 +0100
+
+    patch 7.4.1000
+    Problem:    Test 49 is slow and doesn't work on MS-Windows.
+    Solution:   Start moving parts of test 49 to test_viml.
+
+commit b8cb643eab0e84d6a41f5884c7e41736218425fb
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Wed Dec 30 13:43:56 2015 +0100
+
+    patch 7.4.999
+    Problem:    "make shadow" creates a broken link. (Tony Mechelynck)
+    Solution:   Remove vimrc.unix from the list.
+
+commit f9c8bd2137b045f9a64d63eefcf022b4726b1419
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Dec 29 21:34:48 2015 +0100
+
+    patch 7.4.998
+    Problem:    Running tests in shadow directory fails.  Test 49 fails.
+    Solution:   Link more files for the shadow directory. Make test 49 end up in
+                the right buffer.
+
+commit 4c7bb12c82914307e6bbb73d95cfb3ba7189813a
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Dec 29 20:32:23 2015 +0100
+
+    patch 7.4.997
+    Problem:    "make shadow" was sometimes broken.
+    Solution:   Add a test for it. (James McCoy, closes #520)
+
+commit 256972a9849b5d575b62a6a71be5b6934b5b0e8b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Dec 29 19:10:25 2015 +0100
+
+    Updated runtime files.
+
+commit e292d80bede5cb0b9b1ca95176ad6c3fbaae2e0a
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Dec 29 19:03:21 2015 +0100
+
+    patch 7.4.996
+    Problem:    New GDK files and testdir/Make_all.mak missing from distribution.
+                PC build instructions are outdated.
+    Solution:   Add the file to the list.  Update PC build instructions.
+
+commit 36e294c00c784b9ddd05a4fdbea2e331ab2b1ca8
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Dec 29 18:55:46 2015 +0100
+
+    patch 7.4.995
+    Problem:    gdk_pixbuf_new_from_inline() is deprecated.
+    Solution:   Generate auto/gui_gtk_gresources.c. (Kazunobu Kazunobu,
+                closes #507)
+
+commit 4e5a31c8b3e259605f4d8543aaae68578cf9b0d7
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Dec 29 17:11:15 2015 +0100
+
+    patch 7.4.994
+    Problem:    New style tests are not run on MS-Windows.
+    Solution:   Add the new style tests.
+
+commit 52f6ae1366b34fc5771595c0bd17c779a7f6f544
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Dec 29 16:34:06 2015 +0100
+
+    patch 7.4.993
+    Problem:    Test 87 is flaky on AppVeyor.
+    Solution:   Reduce the minimum background thread count.
+
+commit 013806229a1e15480592f6bc8453130685ec750b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Dec 29 16:04:42 2015 +0100
+
+    patch 7.4.992
+    Problem:    Makefiles for MS-Windows in src/po are outdated.
+    Solution:   Make them work. (Ken Takata, Taro Muraoka)
+
+commit 096c8bb40d51b22a4b1d761baf7bb79fb9e55a28
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Dec 29 14:26:57 2015 +0100
+
+    patch 7.4.991
+    Problem:    When running new style tests the output is not visible.
+    Solution:   Add the testdir/messages file and show it.  Update the list of
+                test names.
+
+commit e5c5f0c66c9491aca013f30da6e4f730a7ba7db6
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Dec 29 13:59:29 2015 +0100
+
+    patch 7.4.990
+    Problem:    Test 86 fails on AppVeyor.
+    Solution:   Do some registry magic. (Ken Takata)
+
+commit 0107f5ba87ca9427500d0fc42ec80a1f3fca9fdb
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Dec 28 22:51:20 2015 +0100
+
+    patch 7.4.989
+    Problem:    Leaking memory when hash_add() fails. Coverity error 99126.
+    Solution:   When hash_add() fails free the memory.
+
+commit 40bbceee2213a6fa8fdc1d3f3920d61fb5370803
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Dec 28 22:24:41 2015 +0100
+
+    patch 7.4.988
+    Problem:    Default test target is test49.out.
+    Solution:   Add a build rule before including Make_all.mak.
+
+commit 0d27f64f7188efef99062a3c5694027c12401670
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Dec 28 22:05:28 2015 +0100
+
+    patch 7.4.987
+    Problem:    Can't build with Ruby 1.9.2.
+    Solution:   Require Rub 2.0 for defining USE_TYPEDDATA.
+
+commit da9888a3f0118ce1ce5acbdcf4720602c2de2a3b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Dec 28 21:35:14 2015 +0100
+
+    patch 7.4.986
+    Problem:    Test49 doesn't work on MS-Windows.  test70 is listed twice.
+    Solution:   Move test49 to the group not used on Amiga and MS-Windows.
+                Remove test70 from SCRIPTS_WIN32.
+
+commit f2f6d297966ec0e357640b71a238e51afcaba6cc
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Dec 28 20:57:10 2015 +0100
+
+    patch 7.4.985
+    Problem:    Can't build with Ruby 2.3.0.
+    Solution:   Use the new TypedData_XXX macro family instead of Data_XXX. Use
+                TypedData. (Ken Takata)
+
+commit ad4d8a192abf44b89371af87d70b971cd654b799
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Dec 28 19:20:36 2015 +0100
+
+    patch 7.4.984
+    Problem:    searchpos() always starts searching in the first column, which is
+                not what some people expect. (Brett Stahlman)
+    Solution:   Add the 'z' flag: start at the specified column.
+
+commit a60824308cd9bc192c5d38fc16cccfcf652b40f6
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Dec 28 16:26:45 2015 +0100
+
+    patch 7.4.983
+    Problem:    Executing one test after "make testclean" doesn't work.
+    Solution:   Add a dependency on test1.out.
+
+commit 7b6156f4cd4027b664a916ba546e9b05d4c49e11
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Dec 28 16:01:26 2015 +0100
+
+    patch 7.4.982
+    Problem:    Keeping the list of tests updated is a hassle.
+    Solution:   Move the list to a separate file, so that it only needs to be
+                udpated in one place.
+
+commit 4686b323e4bc0f466500b018959f6c8965f010f9
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Dec 28 14:44:10 2015 +0100
+
+    patch 7.4.981
+    Problem:    An error in a test script goes unnoticed.
+    Solution:   Source the test script inside try/catch. (Hirohito Higashi)
+
+commit 57d7971b5f1621071176eea81cdb0d1fc50c925d
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Dec 28 14:04:47 2015 +0100
+
+    patch 7.4.980
+    Problem:    Tests for :cdo, :ldo, etc. are outdated.
+    Solution:   Add new style tests for these commands. (Yegappan Lakshmanan)
+
+commit 4a8c2cfc56b9affc36934aa0f20d8cfd2b1511c8
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Dec 19 15:28:18 2015 +0100
+
+    patch 7.4.979
+    Problem:    When changing the crypt key the blocks read from disk are not
+                decrypted.
+    Solution:   Also call ml_decrypt_data() when mf_old_key is set. (Ken Takata)
+
+commit c42b9c670ea621d4dac0f216e011a6db576c5136
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Dec 19 15:15:54 2015 +0100
+
+    patch 7.4.978
+    Problem:    test_cdo fails when using another language than English.
+    Solution:   Set the language to C. (Dominique Pelle)
+
+commit 9bc01ebb957d2b30d57bd30d7aee6f1df2a336b0
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 17 21:14:58 2015 +0100
+
+    patch 7.4.977
+    Problem:    'linebreak' does not work properly when using "space" in
+                'listchars'.
+    Solution:   (Hirohito Higashi, Christian Brabandt)
+
+commit 8def26a0f5f5535e9af64e715cb80845fc8ec322
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 17 15:34:53 2015 +0100
+
+    patch 7.4.976
+    Problem:    When compiling Vim for MSYS2 (linked with msys-2.0.dll), the Win32
+                clipboard is not enabled.
+    Solution:   Recognize MSYS like CYGWIN. (Ken Takata)
+
+commit 75e3ad019933f4879137775549261bf51985ab7d
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 17 15:07:32 2015 +0100
+
+    patch 7.4.975
+    Problem:    Using ":sort" on a very big file sometimes causes text to be
+                corrupted. (John Beckett)
+    Solution:   Copy the line into a buffer before calling ml_append().
+
+commit f29a82dcd0914c76f595d475ddac4517371fab2b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 17 15:03:55 2015 +0100
+
+    patch 7.4.974
+    Problem:    When using :diffsplit the cursor jumps to the first line.
+    Solution:   Put the cursor on the line related to where the cursor was before
+                the split.
+
+commit 6f62fed349bf829da2adb02619dc9acba13c8ab6
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 17 14:04:24 2015 +0100
+
+    patch 7.4.973
+    Problem:    When pasting on the command line line breaks result in literal
+                <CR> characters. This makes pasting a long file name difficult.
+    Solution:   Skip the characters.
+
+commit a98849670674264de699d7ab22ae4b9b32e78f4a
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Dec 13 15:08:56 2015 +0100
+
+    patch 7.4.972
+    Problem:    Memory leak when there is an error in setting an option.
+    Solution:   Free the saved value (Christian Brabandt)
+
+commit 099fdde0f073315b7f2700786ae533d23a556348
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Dec 13 14:45:21 2015 +0100
+
+    patch 7.4.971
+    Problem:    The asin() function can't be used.
+    Solution:   Sort the function table properly. (Watiko)
+
+commit 9ec021a2b0dd35ba744a8e2a9430a643c85b922a
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Dec 12 16:23:29 2015 +0100
+
+    patch 7.4.970
+    Problem:    Rare crash in getvcol(). (Timo Mihaljov)
+    Solution:   Check for the buffer being NULL in init_preedit_start_col.
+                (Hirohito Higashi, Christian Brabandt)
+
+commit 35be4534c029148a89ccc41e8e465d793e7ed7c2
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Dec 11 22:38:36 2015 +0100
+
+    patch 7.4.969
+    Problem:    Compiler warnings on Windowx x64 build.
+    Solution:   Add type casts. (Mike Williams)
+
+commit b65c749ac5a8a990d53493e3b9677142b1b9e4ce
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Dec 11 20:53:58 2015 +0100
+
+    patch 7.4.968
+    Problem:    test86 and test87 are flaky in Appveyor.
+    Solution:   Reduce the count from 8 to 7. (suggested by ZyX)
+
+commit 6b90351786eb0915336b576cc930300bf5c9ac63
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Dec 11 19:38:44 2015 +0100
+
+    patch 7.4.967
+    Problem:    Cross compilation on MS-windows doesn't work well.
+    Solution:   Tidy up cross compilation across architectures with Visual Studio.
+                (Mike Williams)
+
+commit 49222bee65228c7b5994b33c1568394c3cbf4583
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Dec 11 18:11:30 2015 +0100
+
+    patch 7.4.966
+    Problem:    Configure doesn't work with a space in a path.
+    Solution:   Put paths in quotes. (James McCoy, close #525)
+
+commit 941aea2b975623a0c8bc24b140881ef0032a8bb8
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Dec 11 17:14:27 2015 +0100
+
+    patch 7.4.965
+    Problem:    On FreeBSD /dev/fd/ files are special.
+    Solution:   Use is_dev_fd_file() also for FreeBSD. (Derek Schrock, closes #521)
+
+commit 91376b63877c113fe9a3fff2c1b04bf9504f447f
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Fri Dec 11 16:17:02 2015 +0100
+
+    patch 7.4.964
+    Problem:    Test 87 doesn't work in a shadow directory.
+    Solution:   Handle the extra subdirectory. (James McCoy, closes #515)
+
+commit 1c57fe8b9450eb29c3e42a94527d4b7514f853e2
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Dec 6 14:53:18 2015 +0100
+
+    patch 7.4.963
+    Problem:    test_listlbr_utf8 sometimes fails.
+    Solution:   Don't use a literal multibyte character but <C-V>uXXXX. Do not
+                dump the screen highlighting. (Christian Brabandt, closes #518)
+
+commit 2c5e8e80eacf491d4f266983f534a77776c7ae83
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Dec 5 20:59:21 2015 +0100
+
+    Updated runtime files.
+
+commit 3f12a2421bda43a4e48c822541b75f72ee11125a
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Dec 5 20:56:57 2015 +0100
+
+    patch 7.4.962
+    Problem:    Cannot run the tests with gvim.  Cannot run individual new stests.
+    Solution:   Add the -f flag. Add new test targets in Makefile.
+
+commit 9dc2ce398bb3456cc8f590ef0260459798b34d2a
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Dec 5 19:47:04 2015 +0100
+
+    patch 7.4.961
+    Problem:    Test107 fails in some circunstances.
+    Solution:   When using "zt", "zb" and "z=" recompute the fraction.
+
+commit 90f5d0a5c3bbfeefcbc4d6eac59cf225ec714b28
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 22:37:21 2015 +0100
+
+    patch 7.4.960
+    Problem:    Detecting every version of nmake is clumsy.
+    Solution:   Use a tiny C program to get the version of _MSC_VER. (Ken Takata)
+
+commit 0379d01c52e7930ccfc9133f229fba54a2024a42
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 21:17:24 2015 +0100
+
+    patch 7.4.959
+    Problem:    When setting 'term' the clipboard ownership is lost.
+    Solution:   Do not call clip_init(). (James McCoy)
+
+commit e1a61991d9b6fd5f65636d17583f93118268cda5
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 21:02:27 2015 +0100
+
+    patch 7.4.958
+    Problem:    Vim checks if the directory "$TMPDIR" exists.
+    Solution:   Do not check if the name starts with "$".
+
+commit bc96c29ffc753daef302d20322d1e3d560094f44
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 20:46:20 2015 +0100
+
+    patch 7.4.957
+    Problem:    Test_tagcase fails when using another language than English.
+    Solution:   Set the messages language to C. (Kenichi Ito)
+
+commit f882d9f89dbe24ab1ba4bc88529bef28242fd2ed
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 20:18:24 2015 +0100
+
+    patch 7.4.956
+    Problem:    A few more file name extensions not recognized.
+    Solution:   Add .asciidoc, .bzl, .gradle, etc.
+
+commit 3b8fcd945c5f0ee104eaabcf969fb6f973e79c77
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 20:14:12 2015 +0100
+
+    patch 7.4.955
+    Problem:    Vim doesn't recognize .pl6 and .pod6 files.
+    Solution:   Recognize them as perl6 and pod6. (Mike Eve, closes #511)
+
+commit f609dcf8c1094f6fc95f4fc36321a1fb08a7110c
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 17:43:17 2015 +0100
+
+    patch 7.4.954
+    Problem:    When using Lua there may be a crash. (issue #468)
+    Solution:   Avoid using an unitialized tv. (Yukihiro Nakadaira)
+
+commit de0ad40cb3c1bc691a754698ed16a5b6cdb4086b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 17:21:28 2015 +0100
+
+    patch 7.4.953
+    Problem:    When a test script navigates to another buffer the .res file is
+                created with the wrong name.
+    Solution:   Use the "testname" for the .res file. (Damien)
+
+commit 6cd1345307440491580e5e86cb82c54ee9a46baa
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 16:54:53 2015 +0100
+
+    patch 7.4.952
+    Problem:    'lispwords' is tested in the old way.
+    Solution:   Make a new style test for 'lispwords'.
+
+commit b00da1d6d1655cb6e415f84ecc3be5ff3b790811
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 16:33:12 2015 +0100
+
+    patch 7.4.951
+    Problem:    Sorting number strings does not work as expected. (Luc Hermitte)
+    Solution:   Add the 'N" argument to sort()
+
+commit 4649ded2877508fe343cbcf6f7e7fd277be0aab3
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 14:55:55 2015 +0100
+
+    patch 7.4.950
+    Problem:    v:errors is not initialized.
+    Solution:   Initialze it to an empty list. (Thinca)
+
+commit 32a214e78df0120f92fe049eab1385c60f0cdb0b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 14:29:02 2015 +0100
+
+    patch 7.4.949
+    Problem:    When using 'colorcolumn' and there is a sign with a fullwidth
+                character the highlighting is wrong. (Andrew Stewart)
+    Solution:   Only increment vcol when in the right state. (Christian Brabandt)
+
+commit 20ad69ccfb60ef718bd26387ef0e5424461a643e
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Dec 3 13:52:52 2015 +0100
+
+    patch 7.4.948
+    Problem:    Can't build when the insert_expand feature is disabled.
+    Solution:   Add #ifdefs. (Dan Pasanen, closes #499)
+
+commit 5311c02f25eed8f34e8a80becb98e86264f371c3
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Dec 1 20:19:26 2015 +0100
+
+    patch 7.4.947
+    Problem:    Test_listchars fails with MingW. (Michael Soyka)
+    Solution:   Add the test to the ones that need the fileformat fixed.
+                (Christian Brabandt)
+
+commit bbfbaf9741deebb9f1ed790885bd571c4cbce17a
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Dec 1 15:32:56 2015 +0100
+
+    patch 7.4.946
+    Problem:    Missing changes in source file.
+    Solution:   Include changes to the eval.c file.
+
+commit 683fa185a4b4ed7595e5942901548b8239ed5cdb
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Mon Nov 30 21:38:24 2015 +0100
+
+    patch 7.4.945
+    Problem:    New style testing is incomplete.
+    Solution:   Add the runtest script to the list of distributed files.
+                Add the new functions to the function overview.
+                Rename the functions to match Vim function style.
+                Move undolevels testing into a new style test script.
+
+commit 43345546ae63710441f066648b8485fb545b3801
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Nov 29 17:35:35 2015 +0100
+
+    patch 7.4.944
+    Problem:    Writing tests for Vim script is hard.
+    Solution:   Add assertEqual(), assertFalse() and assertTrue() functions.  Add
+                the v:errors variable.  Add the runtest script. Add a first new
+                style test script.
+
+commit 48a969b48898fb08dce636c6b918408c6fbd3ea0
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Nov 28 14:29:26 2015 +0100
+
+    patch 7.4.943
+    Problem:    Tests are not run.
+    Solution:   Add test_writefile to makefiles. (Ken Takata)
+
+commit 60422e68a3a555144f8c76c666f050e8d104c16b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Wed Nov 25 23:53:01 2015 +0100
+
+    patch 7.4.942
+    Problem:    test_tagcase breaks for small builds.
+    Solution:   Bail out of the test early. (Hirohito Higashi)
+
+commit d042dc825c9b97dacd84d4728f88300da4d5b6b9
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 24 19:18:36 2015 +0100
+
+    Update runtime files.
+
+commit 0f6562e9036f889185dff49a75c7fc5ffb28b307
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 24 18:48:14 2015 +0100
+
+    patch 7.4.941
+    Problem:    There is no way to ignore case only for tag searches.
+    Solution:   Add the 'tagcase' option. (Gary Johnson)
+
+commit 2a1b474fd82aff922f18570593972b12feaa2073
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 24 18:15:51 2015 +0100
+
+    patch 7.4.940
+    Problem:    vt52 terminal codes are not correct.
+    Solution:   Move entries outside of #if. (Random)  Adjustments based on
+                documented codes.
+
+commit 9a7d58e42ed54406437c2394e5a489ee6a9e4220
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 24 17:23:56 2015 +0100
+
+    patch 7.4.939
+    Problem:    Memory leak when encountering a syntax error.
+    Solution:   Free the memory. (Dominique Pelle)
+
+commit 88e484bf1b0afb5f2dec44f19335729578ace66a
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 24 15:38:44 2015 +0100
+
+    patch 7.4.938
+    Problem:    X11 and GTK have moure mouse buttons than Vim supports.
+    Solution:   Recognize more mouse buttons. (Benoit Pierre, closes #498)
+
+commit 5ad075c0735d3d8b97708d17c22de8facb15f997
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 24 15:18:32 2015 +0100
+
+    patch 7.4.937
+    Problem:    Segfault reading unitialized memory.
+    Solution:   Do not read match \z0, it does not exist. (Marius Gedminas, closes
+                #497)
+
+commit 294a7e55b01149154807a23323038784549b8946
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Nov 22 19:39:38 2015 +0100
+
+    patch 7.4.936
+    Problem:    Crash when dragging with the mouse.
+    Solution:   Add safety check for NULL pointer. Check mouse position for valid
+                value. (Hirohito Higashi)
+
+commit 6040256d8b0404564ac6f192296b12ea9d175e7d
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sun Nov 22 15:08:59 2015 +0100
+
+    patch 7.4.935
+    Problem:    test_utf8 fails on MS-Windows when executed with gvim.
+    Solution:   Use the insert flag on feedkeys() to put the string before the
+                ":" that was already read when checking for available chars.
+
+commit 7487792ab14c1fb8dbdb37bdd74265d8b1d3be50
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Nov 21 17:15:33 2015 +0100
+
+    patch 7.4.934
+    Problem:    Appveyor also builds on a tag push.
+    Solution:   Add a skip_tags line. (Kenichi Ito, closes #489)
+
+commit e4eda3bc7157932b0bf380fd3fdc1ba8f4438b60
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Nov 21 16:28:50 2015 +0100
+
+    patch 7.4.933
+    Problem:    Crash when using longest completion match.
+    Solution:   Fix array index.
+
+commit 8f08dab18df6dbf6c4b4973fd2d480e4bffb82d8
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Nov 21 14:31:33 2015 +0100
+
+    patch 7.4.932
+    Problem:    test_utf8 has confusing dummy command.
+    Solution:   Use a real command instead of a colon.
+
+commit cfcd1ddd103129b309671cba5cff55e19a9908e4
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Sat Nov 21 14:24:50 2015 +0100
+
+    patch 7.4.931
+    Problem:    Test 94 fails on some systems.
+    Solution:   Set 'encoding' to utf-8.
+
+commit e392eb41f8dfc01bd13634e534ac6b4d505326f4
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Nov 19 20:38:09 2015 +0100
+
+    Update runtime files.
+
+commit 97b0b0ec764d3a247ef600d809b965d5ab37155d
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Nov 19 20:23:37 2015 +0100
+
+    patch 7.4.930
+    Problem:    MS-Windows: Most users appear not to like the window border.
+    Solution:   Remove WS_EX_CLIENTEDGE. (Ian Halliday)
+
+commit d29c6fea94947b3f4b54fbd5a6f832a7d744bf27
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Nov 19 20:11:54 2015 +0100
+
+    patch 7.4.929
+    Problem:    "gv" after paste selects one character less if 'selection' is
+                "exclusive".
+    Solution:   Increment the end position. (Christian Brabandt)
+
+commit 5d8afebb5bf7fb1e8ce06062451dc6a1f9a53ac0
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Nov 19 19:55:16 2015 +0100
+
+    patch 7.4.928
+    Problem:    A clientserver message interrupts handling keys of a mapping.
+    Solution:   Have mch_inchar() send control back to WaitForChar when it is
+                interrupted by server message. (James Kolb)
+
+commit 9b1067e038d371bd6c51e5da025383761f4921b4
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Nov 19 19:33:15 2015 +0100
+
+    patch 7.4.927
+    Problem:    Ruby crashes when there is a runtime error.
+    Solution:   Use ruby_options() instead of ruby_process_options(). (Damien)
+
+commit 4f8fa1633cdfbd09a41160c8480fe67c198067e9
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Nov 19 19:00:05 2015 +0100
+
+    patch 7.4.926
+    Problem:    Completing the longest match doesn't work properly with multi-byte
+                characters.
+    Solution:   When using multi-byte characters use another way to find the
+                longest match. (Hirohito Higashi)
+
+commit a0ed84a26897c994512873a895b9fc54e90c6845
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Nov 19 17:56:13 2015 +0100
+
+    patch 7.4.925
+    Problem:    User may yank or put using the register being recorded in.
+    Solution:   Add the recording register in the message. (Christian Brabandt,
+                closes #470)
+
+commit 32d03b34ac8a34a962f57847fc431a2b4e14efea
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Nov 19 13:46:48 2015 +0100
+
+    patch 7.4.924
+    Problem:    DEVELOPER_DIR gets reset by configure.
+    Solution:   Do not reset DEVELOPER_DIR when there is no --with-developer-dir
+                argument. (Kazuki Sakamoto, closes #482)
+
+commit 6a2697ffd7e894861853b351689b0ddec8901c96
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Thu Nov 19 13:14:30 2015 +0100
+
+    patch 7.4.923
+    Problem:    Prototypes not always generated.
+    Solution:   Change #if to OR with PROTO.
+
+commit b4ff518d95aa57c2f8c0568c915035bef849581b
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 21:15:48 2015 +0100
+
+    Updated runtime files.
+
+commit 1c2836e268ce930bca9ea1287d0d83e92ce1b3ff
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 21:05:48 2015 +0100
+
+    patch 7.4.922
+    Problem:    Leaking memory with ":helpt {dir-not-exists}".
+    Solution:   Free dirname. (Dominique Pelle)
+
+commit cd1c55f706c2f9b8310b8a9fc1f8226c7fd19372
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 20:52:04 2015 +0100
+
+    patch 7.4.921
+    Problem:    Missing proto file update. (Randall W. Morris)
+    Solution:   Add the missing line for mch_ishidden.
+
+commit a93f975e8b39d7cfc8145dbe181cc4e5e4ec0bdf
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 20:45:09 2015 +0100
+
+    patch 7.4.920
+    Problem:    The rubydll option is not in the options window.
+    Solution:   Add the rubydll option.
+
+commit d4ece23e2e602d820ab7367c383dc0d72dd87029
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 19:48:14 2015 +0100
+
+    patch 7.4.919
+    Problem:    The dll options are not in the options window.
+    Solution:   Add the dll options.  And other fixes.
+
+commit 0796c0625fa4b9eb2f47fe8c976b78523924e1fb
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 19:41:37 2015 +0100
+
+    patch 7.4.918
+    Problem:    A digit in an option name has problems.
+    Solution:   Rename 'python3dll' to 'pythonthreedll'.
+
+commit 1be2ed6c11671eabefa0fc8600fd2af6cd3963e8
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 19:11:58 2015 +0100
+
+    patch 7.4.917
+    Problem:    Compiler warning for comparing signed and unsigned.
+    Solution:   Add a type cast.
+
+commit 8648357841065295e39831d2b559d87ca01a7a7c
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 19:04:23 2015 +0100
+
+    patch 7.4.916
+    Problem:    When running out of memory while copying a dict memory may be
+                freed twice. (ZyX)
+    Solution:   Do not call the garbage collector when running out of memory.
+
+commit 174674743d9a2d7361c9cd89836f8dd8651edeeb
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 17:50:24 2015 +0100
+
+    patch 7.4.915
+    Problem:    When removing from 'path' and then adding, a comma may go missing.
+                (Malcolm Rowe)
+    Solution:   Fix the check for P_ONECOMMA. (closes #471)
+
+commit 98b30a473a58ae98c280e0383c8b1e08c0ebced5
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 15:18:02 2015 +0100
+
+    patch 7.4.914
+    Problem:    New compiler warning: logical-not-parentheses
+    Solution:   Silence the warning.
+
+commit 72f4cc4a987d123c0ed909c85b9a05f65cef7202
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 14:35:18 2015 +0100
+
+    patch 7.4.913
+    Problem:    No utf-8 support for the hangul input feature.
+    Solution:   Add utf-8 support. (Namsh)
+
+commit e01f4f86cef7bed3cb99b26f9f57d86f6eb5fe1a
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 14:06:53 2015 +0100
+
+    patch 7.4.912
+    Problem:    Wrong indenting for C++ constructor.
+    Solution:   Recognize ::.  (Anhong)
+
+commit 450ca4335e467ac29c1560b7397225a974aee3bf
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 13:30:39 2015 +0100
+
+    patch 7.4.911
+    Problem:    t_Ce and t_Cs are documented but not supported. (Hirohito Higashi)
+    Solution:   Define the options.
+
+commit e7427f4b7e1af6a63600183be6b4c5724beb2f66
+Author: Bram Moolenaar <Bram@vim.org>
+Date:   Tue Nov 10 13:24:20 2015 +0100
+
+    patch 7.4.910
+    Problem:    Compiler complains about type punned pointer.
+    Solution:   Use another way to increment the ref count.
+
 commit de59ba33aa3b94f2757dbf3451682d762c15ebcf
 Author: Bram Moolenaar <Bram@vim.org>
 Date:   Tue Nov 3 22:03:16 2015 +0100
diff --git a/sources b/sources
index 0ce1846..84e7d1f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-2e6ebe2e029a80cc305c34e14d71fa9a  vim-7.4-909.tar.bz2
+078dc7bd026962f14837a2ffdaa601d9  vim-7.4-1087.tar.bz2
diff --git a/vim-7.4-globalsyntax.patch b/vim-7.4-globalsyntax.patch
new file mode 100644
index 0000000..1e0b08e
--- /dev/null
+++ b/vim-7.4-globalsyntax.patch
@@ -0,0 +1,12 @@
+diff -up vim74/runtime/syntax/spec.vim.orig vim74/runtime/syntax/spec.vim
+--- vim74/runtime/syntax/spec.vim.orig	2016-01-12 13:51:55.727569873 +0100
++++ vim74/runtime/syntax/spec.vim	2016-01-12 13:53:08.124991178 +0100
+@@ -114,7 +114,7 @@ syn region specDescriptionArea matchgrou
+ syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment
+ 
+ "%% Scripts Section %%
+-syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|check\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
++syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|check\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|global\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
+ 
+ "%% Changelog Section %%
+ syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense
diff --git a/vim-7.4-ssh-keywords.patch b/vim-7.4-ssh-keywords.patch
index 1a40a3d..30e1586 100644
--- a/vim-7.4-ssh-keywords.patch
+++ b/vim-7.4-ssh-keywords.patch
@@ -1,7 +1,7 @@
-diff -urN vim74/runtime/syntax/sshconfig.vim vim74_work/runtime/syntax/sshconfig.vim
---- vim74/runtime/syntax/sshconfig.vim	2012-02-24 21:28:30.000000000 +0100
-+++ vim74_work/runtime/syntax/sshconfig.vim	2015-02-11 15:17:16.146626439 +0100
-@@ -68,8 +68,8 @@
+diff -up vim74/runtime/syntax/sshconfig.vim.kh vim74/runtime/syntax/sshconfig.vim
+--- vim74/runtime/syntax/sshconfig.vim.kh	2016-01-12 14:13:15.532558597 +0100
++++ vim74/runtime/syntax/sshconfig.vim	2016-01-12 14:16:51.039800172 +0100
+@@ -69,8 +69,8 @@ syn keyword sshconfigSysLogFacility DAEM
  syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
  syn keyword sshconfigAddressFamily  inet inet6
  
@@ -12,12 +12,7 @@ diff -urN vim74/runtime/syntax/sshconfig.vim vim74_work/runtime/syntax/sshconfig
  syn match   sshconfigIPQoS	"af3[123]"
  syn match   sshconfigIPQoS	"af4[123]"
  syn match   sshconfigIPQoS	"cs[0-7]"
-@@ -99,10 +99,15 @@
- 
- " Keywords
- syn keyword sshconfigHostSect Host
-+syn keyword sshconfigMatchSect Match
- 
+@@ -106,6 +106,10 @@ syn keyword sshconfigMatch canonical exe
  syn keyword sshconfigKeyword AddressFamily
  syn keyword sshconfigKeyword BatchMode
  syn keyword sshconfigKeyword BindAddress
@@ -28,7 +23,7 @@ diff -urN vim74/runtime/syntax/sshconfig.vim vim74_work/runtime/syntax/sshconfig
  syn keyword sshconfigKeyword ChallengeResponseAuthentication
  syn keyword sshconfigKeyword CheckHostIP
  syn keyword sshconfigKeyword Cipher
-@@ -141,6 +146,8 @@
+@@ -145,6 +149,8 @@ syn keyword sshconfigKeyword HostbasedKe
  syn keyword sshconfigKeyword IPQoS
  syn keyword sshconfigKeyword IdentitiesOnly
  syn keyword sshconfigKeyword IdentityFile
@@ -37,26 +32,10 @@ diff -urN vim74/runtime/syntax/sshconfig.vim vim74_work/runtime/syntax/sshconfig
  syn keyword sshconfigKeyword KbdInteractiveAuthentication
  syn keyword sshconfigKeyword KbdInteractiveDevices
  syn keyword sshconfigKeyword KexAlgorithms
-@@ -157,6 +164,7 @@
- syn keyword sshconfigKeyword PreferredAuthentications
- syn keyword sshconfigKeyword Protocol
- syn keyword sshconfigKeyword ProxyCommand
-+syn keyword sshconfigKeyword ProxyUseFdpass
- syn keyword sshconfigKeyword PubkeyAuthentication
- syn keyword sshconfigKeyword RSAAuthentication
- syn keyword sshconfigKeyword RekeyLimit
-@@ -211,6 +219,7 @@
-   HiLink sshconfigSpecial        Special
-   HiLink sshconfigKeyword        Keyword
-   HiLink sshconfigHostSect       Type
-+  HiLink sshconfigMatchSect      Type
-   delcommand HiLink
- endif
- 
-diff -urN vim74/runtime/syntax/sshdconfig.vim vim74_work/runtime/syntax/sshdconfig.vim
---- vim74/runtime/syntax/sshdconfig.vim	2011-11-30 12:14:42.000000000 +0100
-+++ vim74_work/runtime/syntax/sshdconfig.vim	2015-02-11 15:40:38.082148329 +0100
-@@ -58,8 +58,8 @@
+diff -up vim74/runtime/syntax/sshdconfig.vim.kh vim74/runtime/syntax/sshdconfig.vim
+--- vim74/runtime/syntax/sshdconfig.vim.kh	2016-01-12 14:17:06.278889344 +0100
++++ vim74/runtime/syntax/sshdconfig.vim	2016-01-12 14:20:12.737980416 +0100
+@@ -65,8 +65,8 @@ syn keyword sshdconfigSysLogFacility LOC
  
  syn keyword sshdconfigCompression    delayed
  
@@ -67,17 +46,15 @@ diff -urN vim74/runtime/syntax/sshdconfig.vim vim74_work/runtime/syntax/sshdconf
  syn match   sshdconfigIPQoS	"af3[123]"
  syn match   sshdconfigIPQoS	"af4[123]"
  syn match   sshdconfigIPQoS	"cs[0-7]"
-@@ -101,6 +101,9 @@
- syn keyword sshdconfigKeyword AllowGroups
+@@ -109,6 +109,7 @@ syn keyword sshdconfigKeyword AllowGroup
+ syn keyword sshdconfigKeyword AllowStreamLocalForwarding
  syn keyword sshdconfigKeyword AllowTcpForwarding
  syn keyword sshdconfigKeyword AllowUsers
 +syn keyword sshdconfigKeyword AuthenticationMethods
-+syn keyword sshdconfigKeyword AuthorizedKeysCommand
-+syn keyword sshdconfigKeyword AuthorizedKeysCommandUser
  syn keyword sshdconfigKeyword AuthorizedKeysFile
- syn keyword sshdconfigKeyword AuthorizedPrincipalsFile
- syn keyword sshdconfigKeyword Banner
-@@ -116,12 +119,14 @@
+ syn keyword sshdconfigKeyword AuthorizedKeysCommand
+ syn keyword sshdconfigKeyword AuthorizedKeysCommandUser
+@@ -126,12 +127,14 @@ syn keyword sshdconfigKeyword DenyUsers
  syn keyword sshdconfigKeyword ForceCommand
  syn keyword sshdconfigKeyword GSSAPIAuthentication
  syn keyword sshdconfigKeyword GSSAPICleanupCredentials
@@ -89,10 +66,10 @@ diff -urN vim74/runtime/syntax/sshdconfig.vim vim74_work/runtime/syntax/sshdconf
  syn keyword sshdconfigKeyword HostCertificate
  syn keyword sshdconfigKeyword HostKey
 +syn keyword sshdconfigKeyword HostKeyAgent
+ syn keyword sshdconfigKeyword HostKeyAlgorithms
+ syn keyword sshdconfigKeyword HostbasedAcceptedKeyTypes
  syn keyword sshdconfigKeyword HostbasedAuthentication
- syn keyword sshdconfigKeyword HostbasedUsesNameFromPacketOnly
- syn keyword sshdconfigKeyword IPQoS
-@@ -132,6 +137,7 @@
+@@ -144,6 +147,7 @@ syn keyword sshdconfigKeyword KerberosAu
  syn keyword sshdconfigKeyword KerberosGetAFSToken
  syn keyword sshdconfigKeyword KerberosOrLocalPasswd
  syn keyword sshdconfigKeyword KerberosTicketCleanup
@@ -100,27 +77,3 @@ diff -urN vim74/runtime/syntax/sshdconfig.vim vim74_work/runtime/syntax/sshdconf
  syn keyword sshdconfigKeyword KexAlgorithms
  syn keyword sshdconfigKeyword KeyRegenerationInterval
  syn keyword sshdconfigKeyword ListenAddress
-@@ -148,6 +154,7 @@
- syn keyword sshdconfigKeyword PermitOpen
- syn keyword sshdconfigKeyword PermitRootLogin
- syn keyword sshdconfigKeyword PermitTunnel
-+syn keyword sshdconfigKeyword PermitTTY
- syn keyword sshdconfigKeyword PermitUserEnvironment
- syn keyword sshdconfigKeyword PidFile
- syn keyword sshdconfigKeyword Port
-@@ -156,6 +163,7 @@
- syn keyword sshdconfigKeyword Protocol
- syn keyword sshdconfigKeyword PubkeyAuthentication
- syn keyword sshdconfigKeyword RSAAuthentication
-+syn keyword sshdconfigKeyword RekeyLimit
- syn keyword sshdconfigKeyword RevokedKeys
- syn keyword sshdconfigKeyword RhostsRSAAuthentication
- syn keyword sshdconfigKeyword ServerKeyBits
-@@ -169,6 +177,7 @@
- syn keyword sshdconfigKeyword UseLogin
- syn keyword sshdconfigKeyword UsePAM
- syn keyword sshdconfigKeyword UsePrivilegeSeparation
-+syn keyword sshdconfigKeyword VersionAddendum
- syn keyword sshdconfigKeyword X11DisplayOffset
- syn keyword sshdconfigKeyword X11Forwarding
- syn keyword sshdconfigKeyword X11UseLocalhost
diff --git a/vim-update.sh b/vim-update.sh
index c7a3064..bc50fa7 100755
--- a/vim-update.sh
+++ b/vim-update.sh
@@ -12,7 +12,6 @@ fedpkg switch-branch master
 MAJORVERSION=`grep "define baseversion" vim.spec | cut -d ' ' -f 3`
 ORIGPL=`grep "define patchlevel" vim.spec | cut -d ' ' -f 3 | sed -e "s/^0*//g"`
 ORIGPLFILLED=`printf "%03d" $ORIGPL`
-PL=$ORIGPL
 
 if [ ! -d vim-upstream ]; then
    git clone https://github.com/vim/vim.git vim-upstream
@@ -23,37 +22,44 @@ else
 fi
 
 pushd vim-upstream
+# get the latest tag. Might be tricky with other packages, but upstream vim uses just a single branch:
 LASTTAG=$(git describe --tags $(git rev-list --tags --max-count=1))
+# vim upstream tags have the form v7.4.123. Remove the 'v' and get major release and patchlevel:
 UPSTREAMMAJOR=$(echo $LASTTAG | sed -e 's/v\([0-9]*\.[0-9]*\).*/\1/')
 LASTPL=`echo $LASTTAG| sed -e 's/.*\.//'`
 LASTPLFILLED=`printf "%03d" $LASTPL`
-echo "$ORIGPLFILLED" == "$LASTPLFILLED"
 if [ "$ORIGPLFILLED" == "$LASTPLFILLED" ]; then
     echo "No new patchlevel available"
     CHANGES=0
 fi
 rm -rf dist/* 2>/dev/null
 make unixall
+# include patchlevel in tarball name so that older sources won't get overwritten:
 mv dist/vim-${UPSTREAMMAJOR}.tar.bz2 dist/vim-${UPSTREAMMAJOR}-${LASTPLFILLED}.tar.bz2
+# We don't include the full upstream changelog in the rpm changelog, just ship a file with
+# the changes:
 git log > dist/README.patches
 popd
 
 cp -f vim-upstream/dist/README.patches README.patches
 cp -f vim-upstream/dist/vim-${UPSTREAMMAJOR}-${LASTPLFILLED}.tar.bz2 .
 if [ $CHANGES -ne 0 ]; then
-	CHLOG="* $DATE Karsten Hopp <karsten@redhat.com> $UPSTREAMMAJOR"
-	$debug sed -i -e "/Release: /cRelease: 1%{?dist}" $SPEC
-	$debug sed -i -e "s/define patchlevel $ORIGPLFILLED/define patchlevel $LASTPLFILLED/" $SPEC
-	$debug sed -i -e "/\%changelog/a$CHLOG.$LASTPLFILLED-1\n- patchlevel $LASTPLFILLED\n" $SPEC
-	$debug fedpkg new-sources vim-${UPSTREAMMAJOR}-${LASTPLFILLED}.tar.bz2
-	$debug git add vim.spec README.patches
-	$debug git commit -m "- patchlevel $LASTPL" 
-	$debug git push
-	if [ $? -eq 0 ]; then
-	    $debug rm -f $HOME/.koji/config
-	    $debug fedpkg build
-	    $debug ln -sf ppc-config $HOME/.koji/config
-	else
-	    echo "GIT push failed"
-	fi
+   CHLOG="* $DATE Karsten Hopp <karsten@redhat.com> $UPSTREAMMAJOR"
+   $debug sed -i -e "/Release: /cRelease: 1%{?dist}" $SPEC
+   if [ "x$MAJORVERSION" != "x$UPSTREAMMAJOR" ]; then
+      $debug sed -i -s "s/define baseversion: $MAJORVERSION/define baseversion: $UPSTREAMMAJOR=/" $SPEC
+   fi
+   $debug sed -i -e "s/define patchlevel $ORIGPLFILLED/define patchlevel $LASTPLFILLED/" $SPEC
+   $debug sed -i -e "/\%changelog/a$CHLOG.$LASTPLFILLED-1\n- patchlevel $LASTPLFILLED\n" $SPEC
+   $debug fedpkg new-sources vim-${UPSTREAMMAJOR}-${LASTPLFILLED}.tar.bz2
+   $debug git add vim.spec README.patches
+   $debug git commit -m "- patchlevel $LASTPL" 
+   $debug git push
+   if [ $? -eq 0 ]; then
+      $debug rm -f $HOME/.koji/config
+      $debug fedpkg build
+      $debug ln -sf ppc-config $HOME/.koji/config
+   else
+      echo "GIT push failed"
+   fi
 fi
diff --git a/vim.spec b/vim.spec
index d28c62e..4256c9e 100644
--- a/vim.spec
+++ b/vim.spec
@@ -1,4 +1,4 @@
-%define patchlevel 909
+%define patchlevel 1087
 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1}
 %define WITH_SELINUX 1
 %endif
@@ -21,7 +21,7 @@ Summary: The VIM editor
 URL:     http://www.vim.org/
 Name: vim
 Version: %{baseversion}.%{patchlevel}
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: Vim
 Group: Applications/Editors
 Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}-%{patchlevel}.tar.bz2
@@ -47,7 +47,6 @@ Patch2011: vim-7.0-hunspell.patch
 BuildRequires: hunspell-devel
 %endif
 
-
 Patch3000: vim-7.4-syntax.patch
 Patch3002: vim-7.1-nowarnings.patch
 Patch3004: vim-7.0-rclocation.patch
@@ -61,6 +60,7 @@ Patch3012: vim-7.3-manpage-typo-668894-675480.patch
 Patch3013: vim-manpagefixes-948566.patch
 Patch3014: vim-7.4-licensemacro-1151450.patch
 Patch3015: vim-7.4-ssh-keywords.patch
+Patch3016: vim-7.4-globalsyntax.patch
 
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: python-devel python3-devel ncurses-devel gettext perl-devel
@@ -214,6 +214,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk
 
 %patch3013 -p1
 %patch3015 -p1
+%patch3016 -p1
 
 %build
 cp -f %{SOURCE5} .
@@ -757,11 +758,84 @@ rm -rf %{buildroot}
 %{_datadir}/icons/hicolor/*/apps/*
 
 %changelog
+* Tue Jan 12 2016 Karsten Hopp <karsten@redhat.com> - 7.4.1087-2
+- fix ssh syntax files
+- fix %%global in spec.vim (rhbz#1058041)
+
+* Mon Jan 11 2016 Karsten Hopp <karsten@redhat.com> 7.4.1087-1
+- patchlevel 1087
+
+* Sun Dec 20 2015 Karsten Hopp <karsten@redhat.com> 7.4.979-1
+- patchlevel 979
+
+* Fri Dec 18 2015 Karsten Hopp <karsten@redhat.com> 7.4.977-1
+- patchlevel 977
+
+* Mon Dec 14 2015 Karsten Hopp <karsten@redhat.com> 7.4.972-1
+- patchlevel 972
+
+* Sun Dec 13 2015 Karsten Hopp <karsten@redhat.com> 7.4.970-1
+- patchlevel 970
+
+* Sat Dec 12 2015 Karsten Hopp <karsten@redhat.com> 7.4.969-1
+- patchlevel 969
+
+* Mon Dec 07 2015 Karsten Hopp <karsten@redhat.com> 7.4.963-1
+- patchlevel 963
+
+* Sun Dec 06 2015 Karsten Hopp <karsten@redhat.com> 7.4.962-1
+- patchlevel 962
+
+* Fri Dec 04 2015 Karsten Hopp <karsten@redhat.com> 7.4.960-1
+- patchlevel 960
+
+* Wed Dec 02 2015 Karsten Hopp <karsten@redhat.com> 7.4.947-1
+- patchlevel 947
+
+* Tue Dec 01 2015 Karsten Hopp <karsten@redhat.com> 7.4.945-1
+- patchlevel 945
+
+* Mon Nov 30 2015 Karsten Hopp <karsten@redhat.com> 7.4.944-1
+- patchlevel 944
+
+* Thu Nov 26 2015 Karsten Hopp <karsten@redhat.com> 7.4.942-1
+- patchlevel 942
+
+* Wed Nov 25 2015 Karsten Hopp <karsten@redhat.com> 7.4.941-1
+- patchlevel 941
+
+* Mon Nov 23 2015 Karsten Hopp <karsten@redhat.com> 7.4.936-1
+- patchlevel 936
+
+* Sun Nov 22 2015 Karsten Hopp <karsten@redhat.com> 7.4.934-1
+- patchlevel 934
+
+* Fri Nov 20 2015 Karsten Hopp <karsten@redhat.com> 7.4.930-1
+- patchlevel 930
+
+* Wed Nov 11 2015 Karsten Hopp <karsten@redhat.com> 7.4.922-1
+- patchlevel 922
+
+* Tue Nov 10 2015 Karsten Hopp <karsten@redhat.com> 7.4.917-1
+- patchlevel 917
+
 * Wed Nov 04 2015 Karsten Hopp <karsten@redhat.com> 7.4.909-1
 - patchlevel 909
 - Fedora vim now uses tarballs created from upstream git instead
   of just upstream patches. Now runtime files will have fixes, too.
 
+* Tue Nov 03 2015 Karsten Hopp <karsten@redhat.com> 7.4.908-1
+- patchlevel 908
+
+* Mon Nov 02 2015 Karsten Hopp <karsten@redhat.com> 7.4.903-1
+- patchlevel 903
+
+* Sat Oct 31 2015 Karsten Hopp <karsten@redhat.com> 7.4.902-1
+- patchlevel 902
+
+* Mon Oct 26 2015 Karsten Hopp <karsten@redhat.com> 7.4.900-1
+- patchlevel 900
+
 * Wed Oct 14 2015 Karsten Hopp <karsten@redhat.com> 7.4.898-1
 - patchlevel 898