summary refs log tree commit diff
path: root/pkgs/applications/editors/vim
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/editors/vim')
-rw-r--r--pkgs/applications/editors/vim/configurable.nix31
-rw-r--r--pkgs/applications/editors/vim/default.nix22
-rw-r--r--pkgs/applications/editors/vim/ft-nix-support.patch4
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.001489
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.00277
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.003100
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.004232
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.00548
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.00666
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.00795
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.00871
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.00964
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.01079
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.011100
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.012202
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.01399
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.014102
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.015106
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.016221
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.01778
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.01845
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.01961
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.02082
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.02186
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.022148
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.02353
26 files changed, 27 insertions, 2734 deletions
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 789ddcc10395..f8e717d60898 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -19,10 +19,12 @@ composableDerivation {
       builtins.getAttr source {
       "default" =
         # latest release
-        args.fetchurl {
-            url = ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2;
-            sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
-          };
+      args.fetchhg {
+            url = "https://vim.googlecode.com/hg/";
+            tag = "v7-4-131";
+            sha256 = "1akr0i4pykbrkqwrglm0dfn5nwpncb9pgg4h7fl6a8likbr5f3wb";
+      };
+
       "vim-nox" =
           {
             # vim nox branch: client-server without X by uing sockets
@@ -53,14 +55,6 @@ composableDerivation {
 
     prePatch = "cd src";
     
-    patches =
-      [ ./patches/7.4.001 ./patches/7.4.002 ./patches/7.4.003 ./patches/7.4.004
-        ./patches/7.4.005 ./patches/7.4.006 ./patches/7.4.007 ./patches/7.4.008
-        ./patches/7.4.009 ./patches/7.4.010 ./patches/7.4.011 ./patches/7.4.012
-        ./patches/7.4.013 ./patches/7.4.014 ./patches/7.4.015 ./patches/7.4.016
-        ./patches/7.4.017 ./patches/7.4.018 ./patches/7.4.019 ./patches/7.4.020
-        ./patches/7.4.021 ./patches/7.4.022 ./patches/7.4.023 ];
-
     # most interpreters aren't tested yet.. (see python for example how to do it)
     flags = {
         ftNix = {
@@ -93,7 +87,17 @@ composableDerivation {
 
       // edf { name = "tcl"; enable = { nativeBuildInputs = [tcl]; }; } #Include Tcl interpreter.
       // edf { name = "ruby"; feat = "rubyinterp"; enable = { nativeBuildInputs = [ruby]; };} #Include Ruby interpreter.
-      // edf { name = "lua" ; feat = "luainterp"; enable = { nativeBuildInputs = [lua]; configureFlags = ["--with-lua-prefix=${args.lua}"];};}
+      // edf {
+        name = "lua";
+        feat = "luainterp";
+        enable = {
+          nativeBuildInputs = [lua];
+          configureFlags = [
+            "--with-lua-prefix=${args.lua}"
+            "--enable-luainterp"
+          ];
+        };
+      }
       // edf { name = "cscope"; } #Include cscope interface.
       // edf { name = "workshop"; } #Include Sun Visual Workshop support.
       // edf { name = "netbeans"; } #Disable NetBeans integration support.
@@ -108,6 +112,7 @@ composableDerivation {
       ;
 
   cfg = {
+    luaSupport       = config.vim.lua or true;
     pythonSupport    = config.vim.python or true;
     rubySupport      = config.vim.ruby or true;
     nlsSupport       = config.vim.nls or false;
diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix
index a2672b5c0d67..7dd4a0519ce4 100644
--- a/pkgs/applications/editors/vim/default.nix
+++ b/pkgs/applications/editors/vim/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, ncurses, gettext, pkgconfig }:
+{ stdenv, fetchhg, ncurses, gettext, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  patchLevel = "23";
-  name       = "vim-7.4.${patchLevel}";
+  name = "vim-7.4.131";
  
-  src = fetchurl {
-    url    = "ftp://ftp.vim.org/pub/vim/unix/${name}.tar.bz2";
-    sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
+  src = fetchhg {
+    url = "https://vim.googlecode.com/hg/";
+    tag = "v7-4-131";
+    sha256 = "1akr0i4pykbrkqwrglm0dfn5nwpncb9pgg4h7fl6a8likbr5f3wb";
   };
 
   enableParallelBuilding = true;
@@ -44,16 +44,6 @@ stdenv.mkDerivation rec {
   #   sed -i -e 's/as_fn_error.*int32.*/:/' src/auto/configure
   # '';
 
-  prePatch = "cd src";
-  
-  patches =
-    [ ./patches/7.4.001 ./patches/7.4.002 ./patches/7.4.003 ./patches/7.4.004
-      ./patches/7.4.005 ./patches/7.4.006 ./patches/7.4.007 ./patches/7.4.008
-      ./patches/7.4.009 ./patches/7.4.010 ./patches/7.4.011 ./patches/7.4.012
-      ./patches/7.4.013 ./patches/7.4.014 ./patches/7.4.015 ./patches/7.4.016
-      ./patches/7.4.017 ./patches/7.4.018 ./patches/7.4.019 ./patches/7.4.020
-      ./patches/7.4.021 ./patches/7.4.022 ./patches/7.4.023 ];
-
   meta = with stdenv.lib; {
     description = "The most popular clone of the VI editor";
     homepage    = http://www.vim.org;
diff --git a/pkgs/applications/editors/vim/ft-nix-support.patch b/pkgs/applications/editors/vim/ft-nix-support.patch
index 4b5a742dac1c..0e73162d33ef 100644
--- a/pkgs/applications/editors/vim/ft-nix-support.patch
+++ b/pkgs/applications/editors/vim/ft-nix-support.patch
@@ -38,7 +38,8 @@ index 0000000..a2f9918
 +  finish
 +endif
 +
-+syn keyword	nixKeyword	let throw inherit import true false null with
++syn keyword	nixKeyword	let in rec assert inherit import true false null with ...
++syn keyword	nixBuiltin	import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation
 +syn keyword	nixConditional	if else then
 +syn keyword     nixBrace        ( ) { } =
 +syn keyword     nixBuiltin         __currentSystem __currentTime __isFunction __getEnv __trace __toPath __pathExists 
@@ -54,6 +55,7 @@ index 0000000..a2f9918
 +syn region nixString         start=+"+ skip=+\\"+ end=+"+ contains=nixStringParam
 +
 +hi def link nixKeyword       Keyword
++hi def link nixBuiltin       Function
 +hi def link nixConditional   Conditional
 +hi def link nixBrace         Special
 +hi def link nixString        String
diff --git a/pkgs/applications/editors/vim/patches/7.4.001 b/pkgs/applications/editors/vim/patches/7.4.001
deleted file mode 100644
index 5788972a569d..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.001
+++ /dev/null
@@ -1,489 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.001
-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.001
-Problem:    Character classes such as [a-z] to not react to 'ignorecase'.
-	    Breaks man page highlighting. (Mario Grgic)
-Solution:   Add separate items for classes that react to 'ignorecase'.  Clean
-	    up logic handling character classes.  Add more tests.
-Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-
-*** ../vim-7.4.000/src/regexp_nfa.c	2013-08-01 18:27:51.000000000 +0200
---- src/regexp_nfa.c	2013-08-14 11:49:50.000000000 +0200
-***************
-*** 29,34 ****
---- 29,37 ----
-  # define NFA_REGEXP_DEBUG_LOG	"nfa_regexp_debug.log"
-  #endif
-  
-+ /* Added to NFA_ANY - NFA_NUPPER_IC to include a NL. */
-+ #define NFA_ADD_NL		31
-+ 
-  enum
-  {
-      NFA_SPLIT = -1024,
-***************
-*** 183,188 ****
---- 186,198 ----
-      NFA_NLOWER,		/*	Match non-lowercase char */
-      NFA_UPPER,		/*	Match uppercase char */
-      NFA_NUPPER,		/*	Match non-uppercase char */
-+     NFA_LOWER_IC,	/*	Match [a-z] */
-+     NFA_NLOWER_IC,	/*	Match [^a-z] */
-+     NFA_UPPER_IC,	/*	Match [A-Z] */
-+     NFA_NUPPER_IC,	/*	Match [^A-Z] */
-+ 
-+     NFA_FIRST_NL = NFA_ANY + NFA_ADD_NL,
-+     NFA_LAST_NL = NFA_NUPPER_IC + NFA_ADD_NL,
-  
-      NFA_CURSOR,		/*	Match cursor pos */
-      NFA_LNUM,		/*	Match line number */
-***************
-*** 199,207 ****
-      NFA_MARK_LT,	/*	Match < mark */
-      NFA_VISUAL,		/*	Match Visual area */
-  
--     NFA_FIRST_NL = NFA_ANY + ADD_NL,
--     NFA_LAST_NL = NFA_NUPPER + ADD_NL,
-- 
-      /* Character classes [:alnum:] etc */
-      NFA_CLASS_ALNUM,
-      NFA_CLASS_ALPHA,
---- 209,214 ----
-***************
-*** 578,583 ****
---- 585,592 ----
-   * On failure, return 0 (=FAIL)
-   * Start points to the first char of the range, while end should point
-   * to the closing brace.
-+  * Keep in mind that 'ignorecase' applies at execution time, thus [a-z] may
-+  * need to be interpreted as [a-zA-Z].
-   */
-      static int
-  nfa_recognize_char_class(start, end, extra_newl)
-***************
-*** 681,687 ****
-  	return FAIL;
-  
-      if (newl == TRUE)
-! 	extra_newl = ADD_NL;
-  
-      switch (config)
-      {
---- 690,696 ----
-  	return FAIL;
-  
-      if (newl == TRUE)
-! 	extra_newl = NFA_ADD_NL;
-  
-      switch (config)
-      {
-***************
-*** 710,722 ****
-  	case CLASS_not | CLASS_az | CLASS_AZ:
-  	    return extra_newl + NFA_NALPHA;
-  	case CLASS_az:
-! 	   return extra_newl + NFA_LOWER;
-  	case CLASS_not | CLASS_az:
-! 	    return extra_newl + NFA_NLOWER;
-  	case CLASS_AZ:
-! 	    return extra_newl + NFA_UPPER;
-  	case CLASS_not | CLASS_AZ:
-! 	    return extra_newl + NFA_NUPPER;
-      }
-      return FAIL;
-  }
---- 719,731 ----
-  	case CLASS_not | CLASS_az | CLASS_AZ:
-  	    return extra_newl + NFA_NALPHA;
-  	case CLASS_az:
-! 	   return extra_newl + NFA_LOWER_IC;
-  	case CLASS_not | CLASS_az:
-! 	    return extra_newl + NFA_NLOWER_IC;
-  	case CLASS_AZ:
-! 	    return extra_newl + NFA_UPPER_IC;
-  	case CLASS_not | CLASS_AZ:
-! 	    return extra_newl + NFA_NUPPER_IC;
-      }
-      return FAIL;
-  }
-***************
-*** 914,920 ****
-  		break;
-  	    }
-  
-! 	    extra = ADD_NL;
-  
-  	    /* "\_[" is collection plus newline */
-  	    if (c == '[')
---- 923,929 ----
-  		break;
-  	    }
-  
-! 	    extra = NFA_ADD_NL;
-  
-  	    /* "\_[" is collection plus newline */
-  	    if (c == '[')
-***************
-*** 970,976 ****
-  	    }
-  #endif
-  	    EMIT(nfa_classcodes[p - classchars]);
-! 	    if (extra == ADD_NL)
-  	    {
-  		EMIT(NFA_NEWL);
-  		EMIT(NFA_OR);
---- 979,985 ----
-  	    }
-  #endif
-  	    EMIT(nfa_classcodes[p - classchars]);
-! 	    if (extra == NFA_ADD_NL)
-  	    {
-  		EMIT(NFA_NEWL);
-  		EMIT(NFA_OR);
-***************
-*** 1240,1260 ****
-  	    {
-  		/*
-  		 * Try to reverse engineer character classes. For example,
-! 		 * recognize that [0-9] stands for  \d and [A-Za-z_] with \h,
-  		 * and perform the necessary substitutions in the NFA.
-  		 */
-  		result = nfa_recognize_char_class(regparse, endp,
-! 							    extra == ADD_NL);
-  		if (result != FAIL)
-  		{
-! 		    if (result >= NFA_DIGIT && result <= NFA_NUPPER)
-! 			EMIT(result);
-! 		    else	/* must be char class + newline */
-  		    {
-! 			EMIT(result - ADD_NL);
-  			EMIT(NFA_NEWL);
-  			EMIT(NFA_OR);
-  		    }
-  		    regparse = endp;
-  		    mb_ptr_adv(regparse);
-  		    return OK;
---- 1249,1269 ----
-  	    {
-  		/*
-  		 * Try to reverse engineer character classes. For example,
-! 		 * recognize that [0-9] stands for \d and [A-Za-z_] for \h,
-  		 * and perform the necessary substitutions in the NFA.
-  		 */
-  		result = nfa_recognize_char_class(regparse, endp,
-! 							 extra == NFA_ADD_NL);
-  		if (result != FAIL)
-  		{
-! 		    if (result >= NFA_FIRST_NL && result <= NFA_LAST_NL)
-  		    {
-! 			EMIT(result - NFA_ADD_NL);
-  			EMIT(NFA_NEWL);
-  			EMIT(NFA_OR);
-  		    }
-+ 		    else
-+ 			EMIT(result);
-  		    regparse = endp;
-  		    mb_ptr_adv(regparse);
-  		    return OK;
-***************
-*** 1504,1510 ****
-  			     * collection, add an OR below. But not for negated
-  			     * range. */
-  			    if (!negated)
-! 				extra = ADD_NL;
-  			}
-  			else
-  			{
---- 1513,1519 ----
-  			     * collection, add an OR below. But not for negated
-  			     * range. */
-  			    if (!negated)
-! 				extra = NFA_ADD_NL;
-  			}
-  			else
-  			{
-***************
-*** 1537,1543 ****
-  		    EMIT(NFA_END_COLL);
-  
-  		/* \_[] also matches \n but it's not negated */
-! 		if (extra == ADD_NL)
-  		{
-  		    EMIT(reg_string ? NL : NFA_NEWL);
-  		    EMIT(NFA_OR);
---- 1546,1552 ----
-  		    EMIT(NFA_END_COLL);
-  
-  		/* \_[] also matches \n but it's not negated */
-! 		if (extra == NFA_ADD_NL)
-  		{
-  		    EMIT(reg_string ? NL : NFA_NEWL);
-  		    EMIT(NFA_OR);
-***************
-*** 2011,2017 ****
-      if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
-      {
-  	addnl = TRUE;
-! 	c -= ADD_NL;
-      }
-  
-      STRCPY(code, "");
---- 2020,2026 ----
-      if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
-      {
-  	addnl = TRUE;
-! 	c -= NFA_ADD_NL;
-      }
-  
-      STRCPY(code, "");
-***************
-*** 2217,2222 ****
---- 2226,2235 ----
-  	case NFA_NLOWER:STRCPY(code, "NFA_NLOWER"); break;
-  	case NFA_UPPER:	STRCPY(code, "NFA_UPPER"); break;
-  	case NFA_NUPPER:STRCPY(code, "NFA_NUPPER"); break;
-+ 	case NFA_LOWER_IC:  STRCPY(code, "NFA_LOWER_IC"); break;
-+ 	case NFA_NLOWER_IC: STRCPY(code, "NFA_NLOWER_IC"); break;
-+ 	case NFA_UPPER_IC:  STRCPY(code, "NFA_UPPER_IC"); break;
-+ 	case NFA_NUPPER_IC: STRCPY(code, "NFA_NUPPER_IC"); break;
-  
-  	default:
-  	    STRCPY(code, "CHAR(x)");
-***************
-*** 2687,2692 ****
---- 2700,2709 ----
-  	    case NFA_NLOWER:
-  	    case NFA_UPPER:
-  	    case NFA_NUPPER:
-+ 	    case NFA_LOWER_IC:
-+ 	    case NFA_NLOWER_IC:
-+ 	    case NFA_UPPER_IC:
-+ 	    case NFA_NUPPER_IC:
-  		/* possibly non-ascii */
-  #ifdef FEAT_MBYTE
-  		if (has_mbyte)
-***************
-*** 3841,3846 ****
---- 3858,3867 ----
-  	    case NFA_NLOWER:
-  	    case NFA_UPPER:
-  	    case NFA_NUPPER:
-+ 	    case NFA_LOWER_IC:
-+ 	    case NFA_NLOWER_IC:
-+ 	    case NFA_UPPER_IC:
-+ 	    case NFA_NUPPER_IC:
-  	    case NFA_START_COLL:
-  	    case NFA_START_NEG_COLL:
-  	    case NFA_NEWL:
-***************
-*** 5872,5877 ****
---- 5893,5920 ----
-  		ADD_STATE_IF_MATCH(t->state);
-  		break;
-  
-+ 	    case NFA_LOWER_IC:	/* [a-z] */
-+ 		result = ri_lower(curc) || (ireg_ic && ri_upper(curc));
-+ 		ADD_STATE_IF_MATCH(t->state);
-+ 		break;
-+ 
-+ 	    case NFA_NLOWER_IC:	/* [^a-z] */
-+ 		result = curc != NUL
-+ 			  && !(ri_lower(curc) || (ireg_ic && ri_upper(curc)));
-+ 		ADD_STATE_IF_MATCH(t->state);
-+ 		break;
-+ 
-+ 	    case NFA_UPPER_IC:	/* [A-Z] */
-+ 		result = ri_upper(curc) || (ireg_ic && ri_lower(curc));
-+ 		ADD_STATE_IF_MATCH(t->state);
-+ 		break;
-+ 
-+ 	    case NFA_NUPPER_IC:	/* ^[A-Z] */
-+ 		result = curc != NUL
-+ 			  && !(ri_upper(curc) || (ireg_ic && ri_lower(curc)));
-+ 		ADD_STATE_IF_MATCH(t->state);
-+ 		break;
-+ 
-  	    case NFA_BACKREF1:
-  	    case NFA_BACKREF2:
-  	    case NFA_BACKREF3:
-*** ../vim-7.4.000/src/testdir/test64.in	2013-08-01 17:45:33.000000000 +0200
---- src/testdir/test64.in	2013-08-14 11:50:11.000000000 +0200
-***************
-*** 289,303 ****
-  :call add(tl, [2, '.a\%$', " a\n "])
-  :call add(tl, [2, '.a\%$', " a\n_a", "_a"])
-  :"
-! :"""" Test recognition of some character classes
-! :call add(tl, [2, '[0-9]', '8', '8'])
-! :call add(tl, [2, '[^0-9]', '8'])
-! :call add(tl, [2, '[0-9a-fA-F]*', '0a7', '0a7'])
-! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0a7'])
-! :call add(tl, [2, '[a-z_A-Z0-9]\+', 'aso_sfoij', 'aso_sfoij'])
-! :call add(tl, [2, '[a-z]', 'a', 'a'])
-! :call add(tl, [2, '[a-zA-Z]', 'a', 'a'])
-! :call add(tl, [2, '[A-Z]', 'a'])
-  :call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
-  :"
-  :"""" Tests for \z features
---- 289,317 ----
-  :call add(tl, [2, '.a\%$', " a\n "])
-  :call add(tl, [2, '.a\%$', " a\n_a", "_a"])
-  :"
-! :"""" Test recognition of character classes
-! :call add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
-! :call add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
-! :call add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
-! :call add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
-! :call add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
-! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
-! :call add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
-! :call add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
-! :call add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
-! :call add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
-! :call add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
-! :call add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
-! :call add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
-! :call add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
-! :call add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
-! :call add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
-! :call add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
-! :call add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
-! :call add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
-! :call add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
-! :call add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
-! :call add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
-  :call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
-  :"
-  :"""" Tests for \z features
-*** ../vim-7.4.000/src/testdir/test64.ok	2013-08-01 18:28:56.000000000 +0200
---- src/testdir/test64.ok	2013-08-14 11:50:37.000000000 +0200
-***************
-*** 650,679 ****
-  OK 0 - .a\%$
-  OK 1 - .a\%$
-  OK 2 - .a\%$
-! OK 0 - [0-9]
-! OK 1 - [0-9]
-! OK 2 - [0-9]
-! OK 0 - [^0-9]
-! OK 1 - [^0-9]
-! OK 2 - [^0-9]
-! OK 0 - [0-9a-fA-F]*
-! OK 1 - [0-9a-fA-F]*
-! OK 2 - [0-9a-fA-F]*
-  OK 0 - [^0-9A-Fa-f]\+
-  OK 1 - [^0-9A-Fa-f]\+
-  OK 2 - [^0-9A-Fa-f]\+
-  OK 0 - [a-z_A-Z0-9]\+
-  OK 1 - [a-z_A-Z0-9]\+
-  OK 2 - [a-z_A-Z0-9]\+
-! OK 0 - [a-z]
-! OK 1 - [a-z]
-! OK 2 - [a-z]
-! OK 0 - [a-zA-Z]
-! OK 1 - [a-zA-Z]
-! OK 2 - [a-zA-Z]
-! OK 0 - [A-Z]
-! OK 1 - [A-Z]
-! OK 2 - [A-Z]
-  OK 0 - \C[^A-Z]\+
-  OK 1 - \C[^A-Z]\+
-  OK 2 - \C[^A-Z]\+
---- 650,721 ----
-  OK 0 - .a\%$
-  OK 1 - .a\%$
-  OK 2 - .a\%$
-! OK 0 - [0-7]\+
-! OK 1 - [0-7]\+
-! OK 2 - [0-7]\+
-! OK 0 - [^0-7]\+
-! OK 1 - [^0-7]\+
-! OK 2 - [^0-7]\+
-! OK 0 - [0-9]\+
-! OK 1 - [0-9]\+
-! OK 2 - [0-9]\+
-! OK 0 - [^0-9]\+
-! OK 1 - [^0-9]\+
-! OK 2 - [^0-9]\+
-! OK 0 - [0-9a-fA-F]\+
-! OK 1 - [0-9a-fA-F]\+
-! OK 2 - [0-9a-fA-F]\+
-  OK 0 - [^0-9A-Fa-f]\+
-  OK 1 - [^0-9A-Fa-f]\+
-  OK 2 - [^0-9A-Fa-f]\+
-  OK 0 - [a-z_A-Z0-9]\+
-  OK 1 - [a-z_A-Z0-9]\+
-  OK 2 - [a-z_A-Z0-9]\+
-! OK 0 - [^a-z_A-Z0-9]\+
-! OK 1 - [^a-z_A-Z0-9]\+
-! OK 2 - [^a-z_A-Z0-9]\+
-! OK 0 - [a-z_A-Z]\+
-! OK 1 - [a-z_A-Z]\+
-! OK 2 - [a-z_A-Z]\+
-! OK 0 - [^a-z_A-Z]\+
-! OK 1 - [^a-z_A-Z]\+
-! OK 2 - [^a-z_A-Z]\+
-! OK 0 - [a-z]\+
-! OK 1 - [a-z]\+
-! OK 2 - [a-z]\+
-! OK 0 - [a-z]\+
-! OK 1 - [a-z]\+
-! OK 2 - [a-z]\+
-! OK 0 - [^a-z]\+
-! OK 1 - [^a-z]\+
-! OK 2 - [^a-z]\+
-! OK 0 - [^a-z]\+
-! OK 1 - [^a-z]\+
-! OK 2 - [^a-z]\+
-! OK 0 - [a-zA-Z]\+
-! OK 1 - [a-zA-Z]\+
-! OK 2 - [a-zA-Z]\+
-! OK 0 - [^a-zA-Z]\+
-! OK 1 - [^a-zA-Z]\+
-! OK 2 - [^a-zA-Z]\+
-! OK 0 - [A-Z]\+
-! OK 1 - [A-Z]\+
-! OK 2 - [A-Z]\+
-! OK 0 - [^A-Z]\+
-! OK 1 - [^A-Z]\+
-! OK 2 - [^A-Z]\+
-! OK 0 - [a-z]\+\c
-! OK 1 - [a-z]\+\c
-! OK 2 - [a-z]\+\c
-! OK 0 - [A-Z]\+\c
-! OK 1 - [A-Z]\+\c
-! OK 2 - [A-Z]\+\c
-! OK 0 - \c[^a-z]\+
-! OK 1 - \c[^a-z]\+
-! OK 2 - \c[^a-z]\+
-! OK 0 - \c[^A-Z]\+
-! OK 1 - \c[^A-Z]\+
-! OK 2 - \c[^A-Z]\+
-  OK 0 - \C[^A-Z]\+
-  OK 1 - \C[^A-Z]\+
-  OK 2 - \C[^A-Z]\+
-*** ../vim-7.4.000/src/version.c	2013-08-10 13:29:20.000000000 +0200
---- src/version.c	2013-08-14 11:54:57.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     1,
-  /**/
-
--- 
-How many light bulbs does it take to change a person?
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.002 b/pkgs/applications/editors/vim/patches/7.4.002
deleted file mode 100644
index d92f4de6c2d7..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.002
+++ /dev/null
@@ -1,77 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.002
-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.4b.002
-Problem:    Pattern with two alternative look-behind matches does not match.
-	    (Amadeus Demarzi)
-Solution:   When comparing PIMs also compare their state ID to see if they are
-	    different.
-Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-
-*** ../vim-7.4.001/src/regexp_nfa.c	2013-08-14 12:05:54.000000000 +0200
---- src/regexp_nfa.c	2013-08-14 13:12:09.000000000 +0200
-***************
-*** 3782,3787 ****
---- 3782,3790 ----
-      if (two_unused)
-  	/* one is used and two is not: not equal */
-  	return FALSE;
-+     /* compare the state id */
-+     if (one->state->id != two->state->id)
-+ 	return FALSE;
-      /* compare the position */
-      if (REG_MULTI)
-  	return one->end.pos.lnum == two->end.pos.lnum
-*** ../vim-7.4.001/src/testdir/test64.in	2013-08-14 12:05:54.000000000 +0200
---- src/testdir/test64.in	2013-08-14 12:58:38.000000000 +0200
-***************
-*** 421,426 ****
---- 421,429 ----
-  :call add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
-  :call add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
-  :"
-+ :" complicated look-behind match
-+ :call add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
-+ :"
-  :""""" \@>
-  :call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
-  :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
-*** ../vim-7.4.001/src/testdir/test64.ok	2013-08-14 12:05:54.000000000 +0200
---- src/testdir/test64.ok	2013-08-14 13:14:09.000000000 +0200
-***************
-*** 974,979 ****
---- 974,982 ----
-  OK 0 - \(foo\)\@<=.*
-  OK 1 - \(foo\)\@<=.*
-  OK 2 - \(foo\)\@<=.*
-+ OK 0 - \(r\@<=\|\w\@<!\)\/
-+ OK 1 - \(r\@<=\|\w\@<!\)\/
-+ OK 2 - \(r\@<=\|\w\@<!\)\/
-  OK 0 - \(a*\)\@>a
-  OK 1 - \(a*\)\@>a
-  OK 2 - \(a*\)\@>a
-*** ../vim-7.4.001/src/version.c	2013-08-14 12:05:54.000000000 +0200
---- src/version.c	2013-08-14 13:13:45.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     2,
-  /**/
-
--- 
-From "know your smileys":
- :-)-O	Smiling doctor with stethoscope
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.003 b/pkgs/applications/editors/vim/patches/7.4.003
deleted file mode 100644
index 9aad3c8c8f1c..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.003
+++ /dev/null
@@ -1,100 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.003
-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.003
-Problem:    Memory access error in Ruby syntax highlighting. (Christopher Chow)
-Solution:   Refresh stale pointer. (James McCoy)
-Files:	    src/regexp_nfa.c
-
-
-*** ../vim-7.4.002/src/regexp_nfa.c	2013-08-14 13:31:03.000000000 +0200
---- src/regexp_nfa.c	2013-08-14 14:02:06.000000000 +0200
-***************
-*** 4120,4126 ****
-  		sub = &subs->norm;
-  	    }
-  #ifdef FEAT_SYN_HL
-! 	    else if (state->c >= NFA_ZOPEN)
-  	    {
-  		subidx = state->c - NFA_ZOPEN;
-  		sub = &subs->synt;
---- 4120,4126 ----
-  		sub = &subs->norm;
-  	    }
-  #ifdef FEAT_SYN_HL
-! 	    else if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
-  	    {
-  		subidx = state->c - NFA_ZOPEN;
-  		sub = &subs->synt;
-***************
-*** 4189,4194 ****
---- 4189,4201 ----
-  	    }
-  
-  	    subs = addstate(l, state->out, subs, pim, off);
-+ 	    /* "subs" may have changed, need to set "sub" again */
-+ #ifdef FEAT_SYN_HL
-+ 	    if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
-+ 		sub = &subs->synt;
-+ 	    else
-+ #endif
-+ 		sub = &subs->norm;
-  
-  	    if (save_in_use == -1)
-  	    {
-***************
-*** 4237,4243 ****
-  		sub = &subs->norm;
-  	    }
-  #ifdef FEAT_SYN_HL
-! 	    else if (state->c >= NFA_ZCLOSE)
-  	    {
-  		subidx = state->c - NFA_ZCLOSE;
-  		sub = &subs->synt;
---- 4244,4250 ----
-  		sub = &subs->norm;
-  	    }
-  #ifdef FEAT_SYN_HL
-! 	    else if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
-  	    {
-  		subidx = state->c - NFA_ZCLOSE;
-  		sub = &subs->synt;
-***************
-*** 4281,4286 ****
---- 4288,4300 ----
-  	    }
-  
-  	    subs = addstate(l, state->out, subs, pim, off);
-+ 	    /* "subs" may have changed, need to set "sub" again */
-+ #ifdef FEAT_SYN_HL
-+ 	    if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
-+ 		sub = &subs->synt;
-+ 	    else
-+ #endif
-+ 		sub = &subs->norm;
-  
-  	    if (REG_MULTI)
-  		sub->list.multi[subidx].end = save_lpos;
-*** ../vim-7.4.002/src/version.c	2013-08-14 13:31:03.000000000 +0200
---- src/version.c	2013-08-14 14:03:51.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     3,
-  /**/
-
--- 
-Where do you want to crash today?
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.004 b/pkgs/applications/editors/vim/patches/7.4.004
deleted file mode 100644
index f629d673fb8a..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.004
+++ /dev/null
@@ -1,232 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.004
-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.004
-Problem:    When closing a window fails ":bwipe" may hang.
-Solution:   Let win_close() return FAIL and break out of the loop.
-Files:	    src/window.c, src/proto/window.pro, src/buffer.c
-
-
-*** ../vim-7.4.003/src/window.c	2013-07-24 17:38:29.000000000 +0200
---- src/window.c	2013-08-14 16:52:44.000000000 +0200
-***************
-*** 2172,2179 ****
-   * If "free_buf" is TRUE related buffer may be unloaded.
-   *
-   * Called by :quit, :close, :xit, :wq and findtag().
-   */
-!     void
-  win_close(win, free_buf)
-      win_T	*win;
-      int		free_buf;
---- 2172,2180 ----
-   * If "free_buf" is TRUE related buffer may be unloaded.
-   *
-   * Called by :quit, :close, :xit, :wq and findtag().
-+  * Returns FAIL when the window was not closed.
-   */
-!     int
-  win_close(win, free_buf)
-      win_T	*win;
-      int		free_buf;
-***************
-*** 2190,2210 ****
-      if (last_window())
-      {
-  	EMSG(_("E444: Cannot close last window"));
-! 	return;
-      }
-  
-  #ifdef FEAT_AUTOCMD
-      if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
-! 	return; /* window is already being closed */
-      if (win == aucmd_win)
-      {
-  	EMSG(_("E813: Cannot close autocmd window"));
-! 	return;
-      }
-      if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
-      {
-  	EMSG(_("E814: Cannot close window, only autocmd window would remain"));
-! 	return;
-      }
-  #endif
-  
---- 2191,2211 ----
-      if (last_window())
-      {
-  	EMSG(_("E444: Cannot close last window"));
-! 	return FAIL;
-      }
-  
-  #ifdef FEAT_AUTOCMD
-      if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
-! 	return FAIL; /* window is already being closed */
-      if (win == aucmd_win)
-      {
-  	EMSG(_("E813: Cannot close autocmd window"));
-! 	return FAIL;
-      }
-      if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
-      {
-  	EMSG(_("E814: Cannot close window, only autocmd window would remain"));
-! 	return FAIL;
-      }
-  #endif
-  
-***************
-*** 2212,2218 ****
-       * and then close the window and the tab page to avoid that curwin and
-       * curtab are invalid while we are freeing memory. */
-      if (close_last_window_tabpage(win, free_buf, prev_curtab))
-!       return;
-  
-      /* When closing the help window, try restoring a snapshot after closing
-       * the window.  Otherwise clear the snapshot, it's now invalid. */
---- 2213,2219 ----
-       * and then close the window and the tab page to avoid that curwin and
-       * curtab are invalid while we are freeing memory. */
-      if (close_last_window_tabpage(win, free_buf, prev_curtab))
-!       return FAIL;
-  
-      /* When closing the help window, try restoring a snapshot after closing
-       * the window.  Otherwise clear the snapshot, it's now invalid. */
-***************
-*** 2240,2261 ****
-  	    win->w_closing = TRUE;
-  	    apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
-  	    if (!win_valid(win))
-! 		return;
-  	    win->w_closing = FALSE;
-  	    if (last_window())
-! 		return;
-  	}
-  	win->w_closing = TRUE;
-  	apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
-  	if (!win_valid(win))
-! 	    return;
-  	win->w_closing = FALSE;
-  	if (last_window())
-! 	    return;
-  # ifdef FEAT_EVAL
-  	/* autocmds may abort script processing */
-  	if (aborting())
-! 	    return;
-  # endif
-      }
-  #endif
---- 2241,2262 ----
-  	    win->w_closing = TRUE;
-  	    apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
-  	    if (!win_valid(win))
-! 		return FAIL;
-  	    win->w_closing = FALSE;
-  	    if (last_window())
-! 		return FAIL;
-  	}
-  	win->w_closing = TRUE;
-  	apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
-  	if (!win_valid(win))
-! 	    return FAIL;
-  	win->w_closing = FALSE;
-  	if (last_window())
-! 	    return FAIL;
-  # ifdef FEAT_EVAL
-  	/* autocmds may abort script processing */
-  	if (aborting())
-! 	    return FAIL;
-  # endif
-      }
-  #endif
-***************
-*** 2303,2309 ****
-       * other window or moved to another tab page. */
-      else if (!win_valid(win) || last_window() || curtab != prev_curtab
-  	    || close_last_window_tabpage(win, free_buf, prev_curtab))
-! 	return;
-  
-      /* Free the memory used for the window and get the window that received
-       * the screen space. */
---- 2304,2310 ----
-       * other window or moved to another tab page. */
-      else if (!win_valid(win) || last_window() || curtab != prev_curtab
-  	    || close_last_window_tabpage(win, free_buf, prev_curtab))
-! 	return FAIL;
-  
-      /* Free the memory used for the window and get the window that received
-       * the screen space. */
-***************
-*** 2383,2388 ****
---- 2384,2390 ----
-  #endif
-  
-      redraw_all_later(NOT_VALID);
-+     return OK;
-  }
-  
-  /*
-*** ../vim-7.4.003/src/proto/window.pro	2013-08-10 13:37:30.000000000 +0200
---- src/proto/window.pro	2013-08-14 16:52:50.000000000 +0200
-***************
-*** 9,15 ****
-  void win_equal __ARGS((win_T *next_curwin, int current, int dir));
-  void close_windows __ARGS((buf_T *buf, int keep_curwin));
-  int one_window __ARGS((void));
-! void win_close __ARGS((win_T *win, int free_buf));
-  void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
-  void win_free_all __ARGS((void));
-  win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
---- 9,15 ----
-  void win_equal __ARGS((win_T *next_curwin, int current, int dir));
-  void close_windows __ARGS((buf_T *buf, int keep_curwin));
-  int one_window __ARGS((void));
-! int win_close __ARGS((win_T *win, int free_buf));
-  void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
-  void win_free_all __ARGS((void));
-  win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
-*** ../vim-7.4.003/src/buffer.c	2013-07-17 16:39:00.000000000 +0200
---- src/buffer.c	2013-08-14 16:54:34.000000000 +0200
-***************
-*** 1186,1192 ****
-  		   && !(curwin->w_closing || curwin->w_buffer->b_closing)
-  # endif
-  		   && (firstwin != lastwin || first_tabpage->tp_next != NULL))
-! 	    win_close(curwin, FALSE);
-  #endif
-  
-  	/*
---- 1186,1195 ----
-  		   && !(curwin->w_closing || curwin->w_buffer->b_closing)
-  # endif
-  		   && (firstwin != lastwin || first_tabpage->tp_next != NULL))
-! 	{
-! 	    if (win_close(curwin, FALSE) == FAIL)
-! 		break;
-! 	}
-  #endif
-  
-  	/*
-*** ../vim-7.4.003/src/version.c	2013-08-14 14:18:37.000000000 +0200
---- src/version.c	2013-08-14 17:10:23.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     4,
-  /**/
-
--- 
-From "know your smileys":
- *<|:-)	Santa Claus (Ho Ho Ho)
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.005 b/pkgs/applications/editors/vim/patches/7.4.005
deleted file mode 100644
index f85d1f0e3c81..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.005
+++ /dev/null
@@ -1,48 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.005
-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.005
-Problem:    Using "vaB" while 'virtualedit' is set selects the wrong area.
-	    (Dimitar Dimitrov)
-Solution:   Reset coladd when finding a match.
-Files:	    src/search.c
-
-
-*** ../vim-7.4.004/src/search.c	2013-07-17 19:20:47.000000000 +0200
---- src/search.c	2013-08-14 17:32:38.000000000 +0200
-***************
-*** 1760,1765 ****
---- 1760,1768 ----
-  #endif
-  
-      pos = curwin->w_cursor;
-+ #ifdef FEAT_VIRTUALEDIT
-+     pos.coladd = 0;
-+ #endif
-      linep = ml_get(pos.lnum);
-  
-      cpo_match = (vim_strchr(p_cpo, CPO_MATCH) != NULL);
-*** ../vim-7.4.004/src/version.c	2013-08-14 17:11:14.000000000 +0200
---- src/version.c	2013-08-14 17:38:05.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     5,
-  /**/
-
--- 
-You can't have everything.  Where would you put it?
-		-- 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/pkgs/applications/editors/vim/patches/7.4.006 b/pkgs/applications/editors/vim/patches/7.4.006
deleted file mode 100644
index 55d3802c4d14..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.006
+++ /dev/null
@@ -1,66 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.006
-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.006
-Problem:    mkdir("foo/bar/", "p") gives an error message. (David Barnett)
-Solution:   Remove the trailing slash. (lcd)
-Files:	    src/eval.c
-
-
-*** ../vim-7.4.005/src/eval.c	2013-07-05 18:23:42.000000000 +0200
---- src/eval.c	2013-08-22 12:00:28.000000000 +0200
-***************
-*** 14292,14297 ****
---- 14292,14301 ----
-  	return;
-  
-      dir = get_tv_string_buf(&argvars[0], buf);
-+     if (*gettail(dir) == NUL)
-+ 	/* remove trailing slashes */
-+ 	*gettail_sep(dir) = NUL;
-+ 
-      if (argvars[1].v_type != VAR_UNKNOWN)
-      {
-  	if (argvars[2].v_type != VAR_UNKNOWN)
-***************
-*** 14299,14305 ****
-  	if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
-  	    mkdir_recurse(dir, prot);
-      }
-!     rettv->vval.v_number = prot != -1 ? vim_mkdir_emsg(dir, prot) : 0;
-  }
-  #endif
-  
---- 14303,14309 ----
-  	if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
-  	    mkdir_recurse(dir, prot);
-      }
-!     rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
-  }
-  #endif
-  
-*** ../vim-7.4.005/src/version.c	2013-08-14 17:45:25.000000000 +0200
---- src/version.c	2013-08-22 12:02:46.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     6,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-97. Your mother tells you to remember something, and you look for
-    a File/Save command.
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.007 b/pkgs/applications/editors/vim/patches/7.4.007
deleted file mode 100644
index 5495ffbf9797..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.007
+++ /dev/null
@@ -1,95 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.007
-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.007
-Problem:    Creating a preview window on startup leaves the screen layout in a
-	    messed up state. (Marius Gedminas)
-Solution:   Don't change firstwin. (Christian Brabandt)
-Files:	    src/main.c
-
-
-*** ../vim-7.4.006/src/main.c	2013-07-03 12:36:49.000000000 +0200
---- src/main.c	2013-08-22 14:02:39.000000000 +0200
-***************
-*** 2727,2732 ****
---- 2727,2733 ----
-      int		arg_idx;		/* index in argument list */
-      int		i;
-      int		advance = TRUE;
-+     win_T	*win;
-  
-  # ifdef FEAT_AUTOCMD
-      /*
-***************
-*** 2816,2839 ****
-  # ifdef FEAT_AUTOCMD
-      --autocmd_no_enter;
-  # endif
-  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-!     /*
-!      * Avoid making a preview window the current window.
-!      */
-!     if (firstwin->w_p_pvw)
-      {
-!        win_T   *win;
-! 
-!        for (win = firstwin; win != NULL; win = win->w_next)
-!            if (!win->w_p_pvw)
-!            {
-!                firstwin = win;
-!                break;
-!            }
-      }
-  #endif
-!     /* make the first window the current window */
-!     win_enter(firstwin, FALSE);
-  
-  # ifdef FEAT_AUTOCMD
-      --autocmd_no_leave;
---- 2817,2838 ----
-  # ifdef FEAT_AUTOCMD
-      --autocmd_no_enter;
-  # endif
-+ 
-+     /* make the first window the current window */
-+     win = firstwin;
-  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-!     /* Avoid making a preview window the current window. */
-!     while (win->w_p_pvw)
-      {
-! 	win = win->w_next;
-! 	if (win == NULL)
-! 	{
-! 	    win = firstwin;
-! 	    break;
-! 	}
-      }
-  #endif
-!     win_enter(win, FALSE);
-  
-  # ifdef FEAT_AUTOCMD
-      --autocmd_no_leave;
-*** ../vim-7.4.006/src/version.c	2013-08-22 12:06:50.000000000 +0200
---- src/version.c	2013-08-22 14:04:11.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     7,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-105. When someone asks you for your address, you tell them your URL.
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.008 b/pkgs/applications/editors/vim/patches/7.4.008
deleted file mode 100644
index 6abd493f9145..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.008
+++ /dev/null
@@ -1,71 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.008
-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.008
-Problem:    New regexp engine can't be interrupted.
-Solution:   Check for CTRL-C pressed. (Yasuhiro Matsumoto)
-Files:	    src/regexp_nfa.c, src/regexp.c
-
-
-*** ../vim-7.4.007/src/regexp_nfa.c	2013-08-14 14:18:37.000000000 +0200
---- src/regexp_nfa.c	2013-08-25 16:55:56.000000000 +0200
-***************
-*** 5089,5094 ****
---- 5089,5100 ----
-  	return FALSE;
-      }
-  #endif
-+     /* Some patterns may take a long time to match, especially when using
-+      * recursive_regmatch(). Allow interrupting them with CTRL-C. */
-+     fast_breakcheck();
-+     if (got_int)
-+ 	return FALSE;
-+ 
-      nfa_match = FALSE;
-  
-      /* Allocate memory for the lists of nodes. */
-*** ../vim-7.4.007/src/regexp.c	2013-08-01 18:31:30.000000000 +0200
---- src/regexp.c	2013-08-25 16:57:35.000000000 +0200
-***************
-*** 4311,4318 ****
-     */
-    for (;;)
-    {
-!     /* Some patterns may cause a long time to match, even though they are not
-!      * illegal.  E.g., "\([a-z]\+\)\+Q".  Allow breaking them with CTRL-C. */
-      fast_breakcheck();
-  
-  #ifdef DEBUG
---- 4311,4318 ----
-     */
-    for (;;)
-    {
-!     /* Some patterns may take a long time to match, e.g., "\([a-z]\+\)\+Q".
-!      * Allow interrupting them with CTRL-C. */
-      fast_breakcheck();
-  
-  #ifdef DEBUG
-*** ../vim-7.4.007/src/version.c	2013-08-22 14:14:23.000000000 +0200
---- src/version.c	2013-08-25 16:57:51.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     8,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-124. You begin conversations with, "Who is your internet service provider?"
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.009 b/pkgs/applications/editors/vim/patches/7.4.009
deleted file mode 100644
index f5e5fa609126..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.009
+++ /dev/null
@@ -1,64 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.009
-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.009
-Problem:    When a file was not decrypted (yet), writing it may destroy the
-	    contents.
-Solution:   Mark the file as readonly until decryption was done. (Christian
-	    Brabandt)
-Files:	    src/fileio.c
-
-
-*** ../vim-7.4.008/src/fileio.c	2013-08-05 21:58:03.000000000 +0200
---- src/fileio.c	2013-08-25 17:45:27.000000000 +0200
-***************
-*** 2926,2934 ****
---- 2926,2939 ----
-      int		*did_ask;	/* flag: whether already asked for key */
-  {
-      int method = crypt_method_from_magic((char *)ptr, *sizep);
-+     int b_p_ro = curbuf->b_p_ro;
-  
-      if (method >= 0)
-      {
-+ 	/* Mark the buffer as read-only until the decryption has taken place.
-+ 	 * Avoids accidentally overwriting the file with garbage. */
-+ 	curbuf->b_p_ro = TRUE;
-+ 
-  	set_crypt_method(curbuf, method);
-  	if (method > 0)
-  	    (void)blowfish_self_test();
-***************
-*** 2977,2982 ****
---- 2982,2989 ----
-  	    *sizep -= CRYPT_MAGIC_LEN + salt_len + seed_len;
-  	    mch_memmove(ptr, ptr + CRYPT_MAGIC_LEN + salt_len + seed_len,
-  							      (size_t)*sizep);
-+ 	    /* Restore the read-only flag. */
-+ 	    curbuf->b_p_ro = b_p_ro;
-  	}
-      }
-      /* When starting to edit a new file which does not have encryption, clear
-*** ../vim-7.4.008/src/version.c	2013-08-25 17:01:36.000000000 +0200
---- src/version.c	2013-08-25 17:44:30.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     9,
-  /**/
-
--- 
-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/pkgs/applications/editors/vim/patches/7.4.010 b/pkgs/applications/editors/vim/patches/7.4.010
deleted file mode 100644
index fee6ba5b4a84..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.010
+++ /dev/null
@@ -1,79 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.010
-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.010 (after 7.4.006)
-Problem:    Crash with invalid argument to mkdir().
-Solution:   Check for empty string. (lcd47)
-Files:	    src/eval.c
-
-
-*** ../vim-7.4.009/src/eval.c	2013-08-22 12:06:50.000000000 +0200
---- src/eval.c	2013-08-30 15:47:47.000000000 +0200
-***************
-*** 14292,14309 ****
-  	return;
-  
-      dir = get_tv_string_buf(&argvars[0], buf);
-!     if (*gettail(dir) == NUL)
-! 	/* remove trailing slashes */
-! 	*gettail_sep(dir) = NUL;
-! 
-!     if (argvars[1].v_type != VAR_UNKNOWN)
-      {
-! 	if (argvars[2].v_type != VAR_UNKNOWN)
-! 	    prot = get_tv_number_chk(&argvars[2], NULL);
-! 	if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
-! 	    mkdir_recurse(dir, prot);
-      }
--     rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
-  }
-  #endif
-  
---- 14292,14314 ----
-  	return;
-  
-      dir = get_tv_string_buf(&argvars[0], buf);
-!     if (*dir == NUL)
-! 	rettv->vval.v_number = FAIL;
-!     else
-      {
-! 	if (*gettail(dir) == NUL)
-! 	    /* remove trailing slashes */
-! 	    *gettail_sep(dir) = NUL;
-! 
-! 	if (argvars[1].v_type != VAR_UNKNOWN)
-! 	{
-! 	    if (argvars[2].v_type != VAR_UNKNOWN)
-! 		prot = get_tv_number_chk(&argvars[2], NULL);
-! 	    if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
-! 		mkdir_recurse(dir, prot);
-! 	}
-! 	rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
-      }
-  }
-  #endif
-  
-*** ../vim-7.4.009/src/version.c	2013-08-25 17:46:05.000000000 +0200
---- src/version.c	2013-08-30 15:48:37.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     10,
-  /**/
-
--- 
-I wish there was a knob on the TV to turn up the intelligence.
-There's a knob called "brightness", but it doesn't seem to work. 
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.011 b/pkgs/applications/editors/vim/patches/7.4.011
deleted file mode 100644
index efff82c5eba9..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.011
+++ /dev/null
@@ -1,100 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.011
-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.011
-Problem:    Cannot find out if "acl" and "xpm" features are supported.
-Solution:   Add "acl" and "xpm" to the list of features. (Ken Takata)
-Files:	    src/eval.c, src/version.c
-
-
-*** ../vim-7.4.010/src/eval.c	2013-08-30 16:00:04.000000000 +0200
---- src/eval.c	2013-08-30 16:34:12.000000000 +0200
-***************
-*** 12135,12140 ****
---- 12135,12143 ----
-  #ifndef CASE_INSENSITIVE_FILENAME
-  	"fname_case",
-  #endif
-+ #ifdef HAVE_ACL
-+ 	"acl",
-+ #endif
-  #ifdef FEAT_ARABIC
-  	"arabic",
-  #endif
-***************
-*** 12538,12544 ****
-  	"xfontset",
-  #endif
-  #ifdef FEAT_XPM_W32
-! 	"xpm_w32",
-  #endif
-  #ifdef USE_XSMP
-  	"xsmp",
---- 12541,12552 ----
-  	"xfontset",
-  #endif
-  #ifdef FEAT_XPM_W32
-! 	"xpm",
-! 	"xpm_w32",	/* for backward compatibility */
-! #else
-! # if defined(HAVE_XPM)
-! 	"xpm",
-! # endif
-  #endif
-  #ifdef USE_XSMP
-  	"xsmp",
-*** ../vim-7.4.010/src/version.c	2013-08-30 16:00:04.000000000 +0200
---- src/version.c	2013-08-30 16:34:37.000000000 +0200
-***************
-*** 60,65 ****
---- 60,70 ----
-  
-  static char *(features[]) =
-  {
-+ #ifdef HAVE_ACL
-+ 	"+acl",
-+ #else
-+ 	"-acl",
-+ #endif
-  #ifdef AMIGA		/* only for Amiga systems */
-  # ifdef FEAT_ARP
-  	"+ARP",
-***************
-*** 721,726 ****
---- 726,737 ----
-  # else
-  	"-xpm_w32",
-  # endif
-+ #else
-+ # ifdef HAVE_XPM
-+ 	"+xpm",
-+ # else
-+ 	"-xpm",
-+ # endif
-  #endif
-  	NULL
-  };
-*** ../vim-7.4.010/src/version.c	2013-08-30 16:00:04.000000000 +0200
---- src/version.c	2013-08-30 16:34:37.000000000 +0200
-***************
-*** 729,730 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     11,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-141. You'd rather go to http://www.weather.com/ than look out your window.
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.012 b/pkgs/applications/editors/vim/patches/7.4.012
deleted file mode 100644
index f831442ea569..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.012
+++ /dev/null
@@ -1,202 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.012
-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.012
-Problem:    MS-Windows: resolving shortcut does not work properly with
-	    multi-byte characters.
-Solution:   Use wide system functions. (Ken Takata)
-Files:	    src/os_mswin.c
-
-
-*** ../vim-7.4.011/src/os_mswin.c	2013-06-16 16:41:11.000000000 +0200
---- src/os_mswin.c	2013-08-30 16:43:23.000000000 +0200
-***************
-*** 1761,1769 ****
-      IPersistFile	*ppf = NULL;
-      OLECHAR		wsz[MAX_PATH];
-      WIN32_FIND_DATA	ffd; // we get those free of charge
-!     TCHAR		buf[MAX_PATH]; // could have simply reused 'wsz'...
-      char_u		*rfname = NULL;
-      int			len;
-  
-      /* Check if the file name ends in ".lnk". Avoid calling
-       * CoCreateInstance(), it's quite slow. */
---- 1761,1773 ----
-      IPersistFile	*ppf = NULL;
-      OLECHAR		wsz[MAX_PATH];
-      WIN32_FIND_DATA	ffd; // we get those free of charge
-!     CHAR		buf[MAX_PATH]; // could have simply reused 'wsz'...
-      char_u		*rfname = NULL;
-      int			len;
-+ # ifdef FEAT_MBYTE
-+     IShellLinkW		*pslw = NULL;
-+     WIN32_FIND_DATAW	ffdw; // we get those free of charge
-+ # endif
-  
-      /* Check if the file name ends in ".lnk". Avoid calling
-       * CoCreateInstance(), it's quite slow. */
-***************
-*** 1775,1792 ****
-  
-      CoInitialize(NULL);
-  
-      // create a link manager object and request its interface
-      hr = CoCreateInstance(
-  	    &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
-  	    &IID_IShellLink, (void**)&psl);
-      if (hr != S_OK)
-! 	goto shortcut_error;
-  
-      // Get a pointer to the IPersistFile interface.
-      hr = psl->lpVtbl->QueryInterface(
-  	    psl, &IID_IPersistFile, (void**)&ppf);
-      if (hr != S_OK)
-! 	goto shortcut_error;
-  
-      // full path string must be in Unicode.
-      MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
---- 1779,1840 ----
-  
-      CoInitialize(NULL);
-  
-+ # ifdef FEAT_MBYTE
-+     if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
-+     {
-+ 	// create a link manager object and request its interface
-+ 	hr = CoCreateInstance(
-+ 		&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
-+ 		&IID_IShellLinkW, (void**)&pslw);
-+ 	if (hr == S_OK)
-+ 	{
-+ 	    WCHAR	*p = enc_to_utf16(fname, NULL);
-+ 
-+ 	    if (p != NULL)
-+ 	    {
-+ 		// Get a pointer to the IPersistFile interface.
-+ 		hr = pslw->lpVtbl->QueryInterface(
-+ 			pslw, &IID_IPersistFile, (void**)&ppf);
-+ 		if (hr != S_OK)
-+ 		    goto shortcut_errorw;
-+ 
-+ 		// "load" the name and resolve the link
-+ 		hr = ppf->lpVtbl->Load(ppf, p, STGM_READ);
-+ 		if (hr != S_OK)
-+ 		    goto shortcut_errorw;
-+ #  if 0  // This makes Vim wait a long time if the target does not exist.
-+ 		hr = pslw->lpVtbl->Resolve(pslw, NULL, SLR_NO_UI);
-+ 		if (hr != S_OK)
-+ 		    goto shortcut_errorw;
-+ #  endif
-+ 
-+ 		// Get the path to the link target.
-+ 		ZeroMemory(wsz, MAX_PATH * sizeof(WCHAR));
-+ 		hr = pslw->lpVtbl->GetPath(pslw, wsz, MAX_PATH, &ffdw, 0);
-+ 		if (hr == S_OK && wsz[0] != NUL)
-+ 		    rfname = utf16_to_enc(wsz, NULL);
-+ 
-+ shortcut_errorw:
-+ 		vim_free(p);
-+ 		if (hr == S_OK)
-+ 		    goto shortcut_end;
-+ 	    }
-+ 	}
-+ 	/* Retry with non-wide function (for Windows 98). */
-+     }
-+ # endif
-      // create a link manager object and request its interface
-      hr = CoCreateInstance(
-  	    &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
-  	    &IID_IShellLink, (void**)&psl);
-      if (hr != S_OK)
-! 	goto shortcut_end;
-  
-      // Get a pointer to the IPersistFile interface.
-      hr = psl->lpVtbl->QueryInterface(
-  	    psl, &IID_IPersistFile, (void**)&ppf);
-      if (hr != S_OK)
-! 	goto shortcut_end;
-  
-      // full path string must be in Unicode.
-      MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
-***************
-*** 1794,1805 ****
-      // "load" the name and resolve the link
-      hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
-      if (hr != S_OK)
-! 	goto shortcut_error;
-! #if 0  // This makes Vim wait a long time if the target doesn't exist.
-      hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
-      if (hr != S_OK)
-! 	goto shortcut_error;
-! #endif
-  
-      // Get the path to the link target.
-      ZeroMemory(buf, MAX_PATH);
---- 1842,1853 ----
-      // "load" the name and resolve the link
-      hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
-      if (hr != S_OK)
-! 	goto shortcut_end;
-! # if 0  // This makes Vim wait a long time if the target doesn't exist.
-      hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
-      if (hr != S_OK)
-! 	goto shortcut_end;
-! # endif
-  
-      // Get the path to the link target.
-      ZeroMemory(buf, MAX_PATH);
-***************
-*** 1807,1818 ****
-      if (hr == S_OK && buf[0] != NUL)
-  	rfname = vim_strsave(buf);
-  
-! shortcut_error:
-      // Release all interface pointers (both belong to the same object)
-      if (ppf != NULL)
-  	ppf->lpVtbl->Release(ppf);
-      if (psl != NULL)
-  	psl->lpVtbl->Release(psl);
-  
-      CoUninitialize();
-      return rfname;
---- 1855,1870 ----
-      if (hr == S_OK && buf[0] != NUL)
-  	rfname = vim_strsave(buf);
-  
-! shortcut_end:
-      // Release all interface pointers (both belong to the same object)
-      if (ppf != NULL)
-  	ppf->lpVtbl->Release(ppf);
-      if (psl != NULL)
-  	psl->lpVtbl->Release(psl);
-+ # ifdef FEAT_MBYTE
-+     if (pslw != NULL)
-+ 	pslw->lpVtbl->Release(pslw);
-+ # endif
-  
-      CoUninitialize();
-      return rfname;
-*** ../vim-7.4.011/src/version.c	2013-08-30 16:35:41.000000000 +0200
---- src/version.c	2013-08-30 16:39:40.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     12,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-142. You dream about creating the world's greatest web site.
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.013 b/pkgs/applications/editors/vim/patches/7.4.013
deleted file mode 100644
index dcbe0fb3e43d..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.013
+++ /dev/null
@@ -1,99 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.013
-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.013
-Problem:    File name buffer too small for utf-8.
-Solution:   Use character count instead of byte count. (Ken Takata)
-Files:	    src/os_mswin.c
-
-
-*** ../vim-7.4.012/src/os_mswin.c	2013-08-30 16:44:15.000000000 +0200
---- src/os_mswin.c	2013-08-30 16:47:54.000000000 +0200
-***************
-*** 456,462 ****
---- 456,469 ----
-      int
-  mch_isFullName(char_u *fname)
-  {
-+ #ifdef FEAT_MBYTE
-+     /* WinNT and later can use _MAX_PATH wide characters for a pathname, which
-+      * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
-+      * UTF-8. */
-+     char szName[_MAX_PATH * 3 + 1];
-+ #else
-      char szName[_MAX_PATH + 1];
-+ #endif
-  
-      /* A name like "d:/foo" and "//server/share" is absolute */
-      if ((fname[0] && fname[1] == ':' && (fname[2] == '/' || fname[2] == '\\'))
-***************
-*** 464,470 ****
-  	return TRUE;
-  
-      /* A name that can't be made absolute probably isn't absolute. */
-!     if (mch_FullName(fname, szName, _MAX_PATH, FALSE) == FAIL)
-  	return FALSE;
-  
-      return pathcmp(fname, szName, -1) == 0;
---- 471,477 ----
-  	return TRUE;
-  
-      /* A name that can't be made absolute probably isn't absolute. */
-!     if (mch_FullName(fname, szName, sizeof(szName) - 1, FALSE) == FAIL)
-  	return FALSE;
-  
-      return pathcmp(fname, szName, -1) == 0;
-***************
-*** 498,507 ****
-      int
-  vim_stat(const char *name, struct stat *stp)
-  {
-      char	buf[_MAX_PATH + 1];
-      char	*p;
-  
-!     vim_strncpy((char_u *)buf, (char_u *)name, _MAX_PATH);
-      p = buf + strlen(buf);
-      if (p > buf)
-  	mb_ptr_back(buf, p);
---- 505,521 ----
-      int
-  vim_stat(const char *name, struct stat *stp)
-  {
-+ #ifdef FEAT_MBYTE
-+     /* WinNT and later can use _MAX_PATH wide characters for a pathname, which
-+      * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
-+      * UTF-8. */
-+     char	buf[_MAX_PATH * 3 + 1];
-+ #else
-      char	buf[_MAX_PATH + 1];
-+ #endif
-      char	*p;
-  
-!     vim_strncpy((char_u *)buf, (char_u *)name, sizeof(buf) - 1);
-      p = buf + strlen(buf);
-      if (p > buf)
-  	mb_ptr_back(buf, p);
-*** ../vim-7.4.012/src/version.c	2013-08-30 16:44:15.000000000 +0200
---- src/version.c	2013-08-30 16:47:36.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     13,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-143. You dream in pallettes of 216 websafe colors.
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.014 b/pkgs/applications/editors/vim/patches/7.4.014
deleted file mode 100644
index f6554337f27f..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.014
+++ /dev/null
@@ -1,102 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.014
-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.014
-Problem:    MS-Windows: check for writing to device does not work.
-Solution:   Fix #ifdefs. (Ken Takata)
-Files:	    src/fileio.c
-
-
-*** ../vim-7.4.013/src/fileio.c	2013-08-25 17:46:05.000000000 +0200
---- src/fileio.c	2013-08-30 16:56:46.000000000 +0200
-***************
-*** 428,440 ****
-  	}
-      }
-  
-- #ifdef UNIX
--     /*
--      * On Unix it is possible to read a directory, so we have to
--      * check for it before the mch_open().
--      */
-      if (!read_stdin && !read_buffer)
-      {
-  	perm = mch_getperm(fname);
-  	if (perm >= 0 && !S_ISREG(perm)		    /* not a regular file ... */
-  # ifdef S_ISFIFO
---- 428,440 ----
-  	}
-      }
-  
-      if (!read_stdin && !read_buffer)
-      {
-+ #ifdef UNIX
-+ 	/*
-+ 	 * On Unix it is possible to read a directory, so we have to
-+ 	 * check for it before the mch_open().
-+ 	 */
-  	perm = mch_getperm(fname);
-  	if (perm >= 0 && !S_ISREG(perm)		    /* not a regular file ... */
-  # ifdef S_ISFIFO
-***************
-*** 457,464 ****
-  	    msg_scroll = msg_save;
-  	    return FAIL;
-  	}
-! 
-! # if defined(MSDOS) || defined(MSWIN) || defined(OS2)
-  	/*
-  	 * MS-Windows allows opening a device, but we will probably get stuck
-  	 * trying to read it.
---- 457,464 ----
-  	    msg_scroll = msg_save;
-  	    return FAIL;
-  	}
-! #endif
-! #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
-  	/*
-  	 * MS-Windows allows opening a device, but we will probably get stuck
-  	 * trying to read it.
-***************
-*** 470,478 ****
-  	    msg_scroll = msg_save;
-  	    return FAIL;
-  	}
-- # endif
--     }
-  #endif
-  
-      /* Set default or forced 'fileformat' and 'binary'. */
-      set_file_options(set_options, eap);
---- 470,477 ----
-  	    msg_scroll = msg_save;
-  	    return FAIL;
-  	}
-  #endif
-+     }
-  
-      /* Set default or forced 'fileformat' and 'binary'. */
-      set_file_options(set_options, eap);
-*** ../vim-7.4.013/src/version.c	2013-08-30 16:51:15.000000000 +0200
---- src/version.c	2013-08-30 16:54:33.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     14,
-  /**/
-
--- 
-Drink wet cement and get really stoned.
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.015 b/pkgs/applications/editors/vim/patches/7.4.015
deleted file mode 100644
index e8b284d12b37..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.015
+++ /dev/null
@@ -1,106 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.015
-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.015
-Problem:    MS-Windows: Detecting node type does not work for multi-byte
-	    characters.
-Solution:   Use wide character function when needed. (Ken Takata)
-Files:	    src/os_win32.c
-
-
-*** ../vim-7.4.014/src/os_win32.c	2013-08-10 12:39:12.000000000 +0200
---- src/os_win32.c	2013-08-30 17:09:47.000000000 +0200
-***************
-*** 3107,3112 ****
---- 3107,3115 ----
-  {
-      HANDLE	hFile;
-      int		type;
-+ #ifdef FEAT_MBYTE
-+     WCHAR	*wn = NULL;
-+ #endif
-  
-      /* We can't open a file with a name "\\.\con" or "\\.\prn" and trying to
-       * read from it later will cause Vim to hang.  Thus return NODE_WRITABLE
-***************
-*** 3114,3127 ****
-      if (STRNCMP(name, "\\\\.\\", 4) == 0)
-  	return NODE_WRITABLE;
-  
-!     hFile = CreateFile(name,		/* file name */
-! 		GENERIC_WRITE,		/* access mode */
-! 		0,			/* share mode */
-! 		NULL,			/* security descriptor */
-! 		OPEN_EXISTING,		/* creation disposition */
-! 		0,			/* file attributes */
-! 		NULL);			/* handle to template file */
-  
-      if (hFile == INVALID_HANDLE_VALUE)
-  	return NODE_NORMAL;
-  
---- 3117,3157 ----
-      if (STRNCMP(name, "\\\\.\\", 4) == 0)
-  	return NODE_WRITABLE;
-  
-! #ifdef FEAT_MBYTE
-!     if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
-!     {
-! 	wn = enc_to_utf16(name, NULL);
-! 	if (wn != NULL)
-! 	{
-! 	    hFile = CreateFileW(wn,	/* file name */
-! 			GENERIC_WRITE,	/* access mode */
-! 			0,		/* share mode */
-! 			NULL,		/* security descriptor */
-! 			OPEN_EXISTING,	/* creation disposition */
-! 			0,		/* file attributes */
-! 			NULL);		/* handle to template file */
-! 	    if (hFile == INVALID_HANDLE_VALUE
-! 			      && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
-! 	    {
-! 		/* Retry with non-wide function (for Windows 98). */
-! 		vim_free(wn);
-! 		wn = NULL;
-! 	    }
-! 	}
-!     }
-!     if (wn == NULL)
-! #endif
-! 	hFile = CreateFile(name,	/* file name */
-! 		    GENERIC_WRITE,	/* access mode */
-! 		    0,			/* share mode */
-! 		    NULL,		/* security descriptor */
-! 		    OPEN_EXISTING,	/* creation disposition */
-! 		    0,			/* file attributes */
-! 		    NULL);		/* handle to template file */
-  
-+ #ifdef FEAT_MBYTE
-+     vim_free(wn);
-+ #endif
-      if (hFile == INVALID_HANDLE_VALUE)
-  	return NODE_NORMAL;
-  
-*** ../vim-7.4.014/src/version.c	2013-08-30 17:06:56.000000000 +0200
---- src/version.c	2013-08-30 17:09:35.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     15,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-144. You eagerly await the update of the "Cool Site of the Day."
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.016 b/pkgs/applications/editors/vim/patches/7.4.016
deleted file mode 100644
index c58c605f5c15..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.016
+++ /dev/null
@@ -1,221 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.016
-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.016
-Problem:    MS-Windows: File name completion doesn't work properly with
-	    Chinese characters. (Yue Wu)
-Solution:   Add fname_casew(). (Ken Takata)
-Files:	    src/os_win32.c
-
-
-*** ../vim-7.4.015/src/os_win32.c	2013-08-30 17:11:29.000000000 +0200
---- src/os_win32.c	2013-08-30 17:28:30.000000000 +0200
-***************
-*** 2500,2508 ****
---- 2500,2624 ----
-  }
-  
-  
-+ #ifdef FEAT_MBYTE
-+ /*
-+  * fname_casew(): Wide version of fname_case().  Set the case of the file name,
-+  * if it already exists.  When "len" is > 0, also expand short to long
-+  * filenames.
-+  * Return FAIL if wide functions are not available, OK otherwise.
-+  * NOTE: much of this is identical to fname_case(), keep in sync!
-+  */
-+     static int
-+ fname_casew(
-+     WCHAR	*name,
-+     int		len)
-+ {
-+     WCHAR		szTrueName[_MAX_PATH + 2];
-+     WCHAR		szTrueNameTemp[_MAX_PATH + 2];
-+     WCHAR		*ptrue, *ptruePrev;
-+     WCHAR		*porig, *porigPrev;
-+     int			flen;
-+     WIN32_FIND_DATAW	fb;
-+     HANDLE		hFind;
-+     int			c;
-+     int			slen;
-+ 
-+     flen = (int)wcslen(name);
-+     if (flen > _MAX_PATH)
-+ 	return OK;
-+ 
-+     /* slash_adjust(name) not needed, already adjusted by fname_case(). */
-+ 
-+     /* Build the new name in szTrueName[] one component at a time. */
-+     porig = name;
-+     ptrue = szTrueName;
-+ 
-+     if (iswalpha(porig[0]) && porig[1] == L':')
-+     {
-+ 	/* copy leading drive letter */
-+ 	*ptrue++ = *porig++;
-+ 	*ptrue++ = *porig++;
-+ 	*ptrue = NUL;	    /* in case nothing follows */
-+     }
-+ 
-+     while (*porig != NUL)
-+     {
-+ 	/* copy \ characters */
-+ 	while (*porig == psepc)
-+ 	    *ptrue++ = *porig++;
-+ 
-+ 	ptruePrev = ptrue;
-+ 	porigPrev = porig;
-+ 	while (*porig != NUL && *porig != psepc)
-+ 	{
-+ 	    *ptrue++ = *porig++;
-+ 	}
-+ 	*ptrue = NUL;
-+ 
-+ 	/* To avoid a slow failure append "\*" when searching a directory,
-+ 	 * server or network share. */
-+ 	wcscpy(szTrueNameTemp, szTrueName);
-+ 	slen = (int)wcslen(szTrueNameTemp);
-+ 	if (*porig == psepc && slen + 2 < _MAX_PATH)
-+ 	    wcscpy(szTrueNameTemp + slen, L"\\*");
-+ 
-+ 	/* Skip "", "." and "..". */
-+ 	if (ptrue > ptruePrev
-+ 		&& (ptruePrev[0] != L'.'
-+ 		    || (ptruePrev[1] != NUL
-+ 			&& (ptruePrev[1] != L'.' || ptruePrev[2] != NUL)))
-+ 		&& (hFind = FindFirstFileW(szTrueNameTemp, &fb))
-+ 						      != INVALID_HANDLE_VALUE)
-+ 	{
-+ 	    c = *porig;
-+ 	    *porig = NUL;
-+ 
-+ 	    /* Only use the match when it's the same name (ignoring case) or
-+ 	     * expansion is allowed and there is a match with the short name
-+ 	     * and there is enough room. */
-+ 	    if (_wcsicoll(porigPrev, fb.cFileName) == 0
-+ 		    || (len > 0
-+ 			&& (_wcsicoll(porigPrev, fb.cAlternateFileName) == 0
-+ 			    && (int)(ptruePrev - szTrueName)
-+ 					   + (int)wcslen(fb.cFileName) < len)))
-+ 	    {
-+ 		wcscpy(ptruePrev, fb.cFileName);
-+ 
-+ 		/* Look for exact match and prefer it if found.  Must be a
-+ 		 * long name, otherwise there would be only one match. */
-+ 		while (FindNextFileW(hFind, &fb))
-+ 		{
-+ 		    if (*fb.cAlternateFileName != NUL
-+ 			    && (wcscoll(porigPrev, fb.cFileName) == 0
-+ 				|| (len > 0
-+ 				    && (_wcsicoll(porigPrev,
-+ 						   fb.cAlternateFileName) == 0
-+ 				    && (int)(ptruePrev - szTrueName)
-+ 					 + (int)wcslen(fb.cFileName) < len))))
-+ 		    {
-+ 			wcscpy(ptruePrev, fb.cFileName);
-+ 			break;
-+ 		    }
-+ 		}
-+ 	    }
-+ 	    FindClose(hFind);
-+ 	    *porig = c;
-+ 	    ptrue = ptruePrev + wcslen(ptruePrev);
-+ 	}
-+ 	else if (hFind == INVALID_HANDLE_VALUE
-+ 		&& GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
-+ 	    return FAIL;
-+     }
-+ 
-+     wcscpy(name, szTrueName);
-+     return OK;
-+ }
-+ #endif
-+ 
-  /*
-   * fname_case(): Set the case of the file name, if it already exists.
-   * When "len" is > 0, also expand short to long filenames.
-+  * NOTE: much of this is identical to fname_casew(), keep in sync!
-   */
-      void
-  fname_case(
-***************
-*** 2520,2530 ****
-      int			slen;
-  
-      flen = (int)STRLEN(name);
-!     if (flen == 0 || flen > _MAX_PATH)
-  	return;
-  
-      slash_adjust(name);
-  
-      /* Build the new name in szTrueName[] one component at a time. */
-      porig = name;
-      ptrue = szTrueName;
---- 2636,2679 ----
-      int			slen;
-  
-      flen = (int)STRLEN(name);
-!     if (flen == 0)
-  	return;
-  
-      slash_adjust(name);
-  
-+ #ifdef FEAT_MBYTE
-+     if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
-+     {
-+ 	WCHAR	*p = enc_to_utf16(name, NULL);
-+ 
-+ 	if (p != NULL)
-+ 	{
-+ 	    char_u	*q;
-+ 	    WCHAR	buf[_MAX_PATH + 2];
-+ 
-+ 	    wcscpy(buf, p);
-+ 	    vim_free(p);
-+ 
-+ 	    if (fname_casew(buf, (len > 0) ? _MAX_PATH : 0) == OK)
-+ 	    {
-+ 		q = utf16_to_enc(buf, NULL);
-+ 		if (q != NULL)
-+ 		{
-+ 		    vim_strncpy(name, q, (len > 0) ? len - 1 : flen);
-+ 		    vim_free(q);
-+ 		    return;
-+ 		}
-+ 	    }
-+ 	}
-+ 	/* Retry with non-wide function (for Windows 98). */
-+     }
-+ #endif
-+ 
-+     /* If 'enc' is utf-8, flen can be larger than _MAX_PATH.
-+      * So we should check this after calling wide function. */
-+     if (flen > _MAX_PATH)
-+ 	return;
-+ 
-      /* Build the new name in szTrueName[] one component at a time. */
-      porig = name;
-      ptrue = szTrueName;
-*** ../vim-7.4.015/src/version.c	2013-08-30 17:11:29.000000000 +0200
---- src/version.c	2013-08-30 17:15:06.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     16,
-  /**/
-
--- 
-Fingers not found - Pound head on keyboard to continue.
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.017 b/pkgs/applications/editors/vim/patches/7.4.017
deleted file mode 100644
index 7d7fad83fe79..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.017
+++ /dev/null
@@ -1,78 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.017
-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.017
-Problem:    ":help !!" does not find the "!!" tag in the help file. (Ben
-	    Fritz)
-Solution:   When reading the start of the tags file do parse lines that are
-	    not header lines.
-Files:	    src/tag.c
-
-
-*** ../vim-7.4.016/src/tag.c	2013-06-15 22:26:26.000000000 +0200
---- src/tag.c	2013-09-05 12:03:38.000000000 +0200
-***************
-*** 1797,1809 ****
-  	     */
-  	    if (state == TS_START)
-  	    {
-! 		/* The header ends when the line sorts below "!_TAG_".
-! 		 * There may be non-header items before the header though,
-! 		 * e.g. "!" itself. When case is folded lower case letters
-! 		 * sort before "_". */
-  		if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
-  				|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
-  		{
-  		    /*
-  		     * Read header line.
-  		     */
---- 1797,1812 ----
-  	     */
-  	    if (state == TS_START)
-  	    {
-! 		/* The header ends when the line sorts below "!_TAG_".  When
-! 		 * case is folded lower case letters sort before "_". */
-  		if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
-  				|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
-  		{
-+ 		    if (STRNCMP(lbuf, "!_TAG_", 6) != 0)
-+ 			/* Non-header item before the header, e.g. "!" itself.
-+ 			 */
-+ 			goto parse_line;
-+ 
-  		    /*
-  		     * Read header line.
-  		     */
-***************
-*** 1898,1903 ****
---- 1901,1907 ----
-  #endif
-  	    }
-  
-+ parse_line:
-  	    /*
-  	     * Figure out where the different strings are in this line.
-  	     * For "normal" tags: Do a quick check if the tag matches.
-*** ../vim-7.4.016/src/version.c	2013-08-30 17:29:10.000000000 +0200
---- src/version.c	2013-09-05 12:02:01.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     17,
-  /**/
-
--- 
-An error has occurred.  Hit any user to continue.
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.018 b/pkgs/applications/editors/vim/patches/7.4.018
deleted file mode 100644
index 2214c30b2b8a..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.018
+++ /dev/null
@@ -1,45 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.018
-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.018
-Problem:    When completing item becomes unselected. (Shougo Matsu)
-Solution:   Revert patch 7.3.1269.
-Files:	    src/edit.c
-
-
-*** ../vim-7.4.017/src/edit.c	2013-07-04 20:22:25.000000000 +0200
---- src/edit.c	2013-09-05 12:39:53.000000000 +0200
-***************
-*** 3467,3473 ****
-      }
-  
-      compl_enter_selects = !compl_used_match;
--     compl_shown_match = compl_curr_match = compl_first_match;
-  
-      /* Show the popup menu with a different set of matches. */
-      ins_compl_show_pum();
---- 3467,3472 ----
-*** ../vim-7.4.017/src/version.c	2013-09-05 12:06:26.000000000 +0200
---- src/version.c	2013-09-05 12:40:34.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     18,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-169. You hire a housekeeper for your home page.
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.019 b/pkgs/applications/editors/vim/patches/7.4.019
deleted file mode 100644
index b1532c19c81c..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.019
+++ /dev/null
@@ -1,61 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.019
-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.019
-Problem:    MS-Windows: File name completion doesn't work properly with
-	    Chinese characters. (Yue Wu)
-Solution:   Take care of multi-byte characters when looking for the start of
-	    the file name. (Ken Takata)
-Files:	    src/edit.c
-
-
-*** ../vim-7.4.018/src/edit.c	2013-09-05 12:49:48.000000000 +0200
---- src/edit.c	2013-09-05 13:45:27.000000000 +0200
-***************
-*** 5183,5190 ****
-  	}
-  	else if (ctrl_x_mode == CTRL_X_FILES)
-  	{
-! 	    while (--startcol >= 0 && vim_isfilec(line[startcol]))
-! 		;
-  	    compl_col += ++startcol;
-  	    compl_length = (int)curs_col - startcol;
-  	    compl_pattern = addstar(line + compl_col, compl_length,
---- 5183,5196 ----
-  	}
-  	else if (ctrl_x_mode == CTRL_X_FILES)
-  	{
-! 	    char_u	*p = line + startcol;
-! 
-! 	    /* Go back to just before the first filename character. */
-! 	    mb_ptr_back(line, p);
-! 	    while (vim_isfilec(PTR2CHAR(p)) && p >= line)
-! 		mb_ptr_back(line, p);
-! 	    startcol = p - line;
-! 
-  	    compl_col += ++startcol;
-  	    compl_length = (int)curs_col - startcol;
-  	    compl_pattern = addstar(line + compl_col, compl_length,
-*** ../vim-7.4.018/src/version.c	2013-09-05 12:49:48.000000000 +0200
---- src/version.c	2013-09-05 13:41:47.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     19,
-  /**/
-
--- 
-        Very funny, Scotty.  Now beam down my clothes.
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.020 b/pkgs/applications/editors/vim/patches/7.4.020
deleted file mode 100644
index 942d82fe2554..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.020
+++ /dev/null
@@ -1,82 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.020
-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.020
-Problem:    NFA engine matches too much with \@>. (John McGowan)
-Solution:   When a whole pattern match is found stop searching.
-Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-
-*** ../vim-7.4.019/src/regexp_nfa.c	2013-08-25 17:01:36.000000000 +0200
---- src/regexp_nfa.c	2013-09-05 15:59:44.000000000 +0200
-***************
-*** 5322,5328 ****
-  		log_subsexpr(m);
-  #endif
-  		nfa_match = TRUE;
-! 		break;
-  
-  	    case NFA_START_INVISIBLE:
-  	    case NFA_START_INVISIBLE_FIRST:
---- 5322,5331 ----
-  		log_subsexpr(m);
-  #endif
-  		nfa_match = TRUE;
-! 		/* See comment above at "goto nextchar". */
-! 		if (nextlist->n == 0)
-! 		    clen = 0;
-! 		goto nextchar;
-  
-  	    case NFA_START_INVISIBLE:
-  	    case NFA_START_INVISIBLE_FIRST:
-*** ../vim-7.4.019/src/testdir/test64.in	2013-08-14 13:31:03.000000000 +0200
---- src/testdir/test64.in	2013-09-05 15:35:44.000000000 +0200
-***************
-*** 427,432 ****
---- 427,433 ----
-  :""""" \@>
-  :call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
-  :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
-+ :call add(tl, [2, '^\(.\{-}b\)\@>.', '  abcbd', '  abc', '  ab'])
-  :" TODO: BT engine does not restore submatch after failure
-  :call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
-  :"
-*** ../vim-7.4.019/src/testdir/test64.ok	2013-08-14 13:31:03.000000000 +0200
---- src/testdir/test64.ok	2013-09-05 16:03:34.000000000 +0200
-***************
-*** 983,988 ****
---- 983,991 ----
-  OK 0 - \(a*\)\@>b
-  OK 1 - \(a*\)\@>b
-  OK 2 - \(a*\)\@>b
-+ OK 0 - ^\(.\{-}b\)\@>.
-+ OK 1 - ^\(.\{-}b\)\@>.
-+ OK 2 - ^\(.\{-}b\)\@>.
-  OK 0 - \(a*\)\@>a\|a\+
-  OK 2 - \(a*\)\@>a\|a\+
-  OK 0 - \_[^8-9]\+
-*** ../vim-7.4.019/src/version.c	2013-09-05 13:50:49.000000000 +0200
---- src/version.c	2013-09-05 16:04:32.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     20,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-173. You keep tracking down the email addresses of all your friends
-     (even childhood 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/pkgs/applications/editors/vim/patches/7.4.021 b/pkgs/applications/editors/vim/patches/7.4.021
deleted file mode 100644
index 0936d9a194b6..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.021
+++ /dev/null
@@ -1,86 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.021
-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.021
-Problem:    NFA regexp: Using \ze in one branch which doesn't match may cause
-	    end of another branch to be wrong. (William Fugh)
-Solution:   Set end position if it wasn't set yet.
-Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-
-*** ../vim-7.4.020/src/regexp_nfa.c	2013-09-05 16:05:32.000000000 +0200
---- src/regexp_nfa.c	2013-09-05 20:56:25.000000000 +0200
-***************
-*** 4209,4218 ****
-  	    break;
-  
-  	case NFA_MCLOSE:
-! 	    if (nfa_has_zend)
-  	    {
-! 		/* Do not overwrite the position set by \ze. If no \ze
-! 		 * encountered end will be set in nfa_regtry(). */
-  		subs = addstate(l, state->out, subs, pim, off);
-  		break;
-  	    }
---- 4209,4219 ----
-  	    break;
-  
-  	case NFA_MCLOSE:
-! 	    if (nfa_has_zend && (REG_MULTI
-! 			? subs->norm.list.multi[0].end.lnum >= 0
-! 			: subs->norm.list.line[0].end != NULL))
-  	    {
-! 		/* Do not overwrite the position set by \ze. */
-  		subs = addstate(l, state->out, subs, pim, off);
-  		break;
-  	    }
-*** ../vim-7.4.020/src/testdir/test64.in	2013-09-05 16:05:32.000000000 +0200
---- src/testdir/test64.in	2013-09-05 20:55:18.000000000 +0200
-***************
-*** 328,333 ****
---- 328,334 ----
-  :call add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
-  :call add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if last'])
-  :call add(tl, [2, '\>\zs.', 'aword. ', '.'])
-+ :call add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is   [a t', '  '])
-  :"
-  :"""" Tests for \@= and \& features
-  :call add(tl, [2, 'abc\@=', 'abc', 'ab'])
-*** ../vim-7.4.020/src/testdir/test64.ok	2013-09-05 16:05:32.000000000 +0200
---- src/testdir/test64.ok	2013-09-05 21:09:56.000000000 +0200
-***************
-*** 752,757 ****
---- 752,760 ----
-  OK 0 - \>\zs.
-  OK 1 - \>\zs.
-  OK 2 - \>\zs.
-+ OK 0 - \s\+\ze\[/\|\s\zs\s\+
-+ OK 1 - \s\+\ze\[/\|\s\zs\s\+
-+ OK 2 - \s\+\ze\[/\|\s\zs\s\+
-  OK 0 - abc\@=
-  OK 1 - abc\@=
-  OK 2 - abc\@=
-*** ../vim-7.4.020/src/version.c	2013-09-05 16:05:32.000000000 +0200
---- src/version.c	2013-09-05 21:11:38.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     21,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-174. You know what a listserv is.
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.022 b/pkgs/applications/editors/vim/patches/7.4.022
deleted file mode 100644
index 81a0901f5b55..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.022
+++ /dev/null
@@ -1,148 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.022
-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.022
-Problem:    Deadlock while exiting, because of allocating memory.
-Solution:   Do not use gettext() in deathtrap(). (James McCoy)
-Files:	    src/os_unix.c, src/misc1.c
-
-
-*** ../vim-7.4.021/src/os_unix.c	2013-07-03 16:32:32.000000000 +0200
---- src/os_unix.c	2013-09-05 21:40:06.000000000 +0200
-***************
-*** 957,964 ****
-  
-  /*
-   * This function handles deadly signals.
-!  * It tries to preserve any swap file and exit properly.
-   * (partly from Elvis).
-   */
-      static RETSIGTYPE
-  deathtrap SIGDEFARG(sigarg)
---- 957,966 ----
-  
-  /*
-   * This function handles deadly signals.
-!  * It tries to preserve any swap files and exit properly.
-   * (partly from Elvis).
-+  * NOTE: Avoid unsafe functions, such as allocating memory, they can result in
-+  * a deadlock.
-   */
-      static RETSIGTYPE
-  deathtrap SIGDEFARG(sigarg)
-***************
-*** 1090,1107 ****
-      }
-      if (entered == 2)
-      {
-! 	OUT_STR(_("Vim: Double signal, exiting\n"));
-  	out_flush();
-  	getout(1);
-      }
-  
-  #ifdef SIGHASARG
-!     sprintf((char *)IObuff, _("Vim: Caught deadly signal %s\n"),
-  							 signal_info[i].name);
-  #else
-!     sprintf((char *)IObuff, _("Vim: Caught deadly signal\n"));
-  #endif
-!     preserve_exit();		    /* preserve files and exit */
-  
-  #ifdef NBDEBUG
-      reset_signals();
---- 1092,1114 ----
-      }
-      if (entered == 2)
-      {
-! 	/* No translation, it may call malloc(). */
-! 	OUT_STR("Vim: Double signal, exiting\n");
-  	out_flush();
-  	getout(1);
-      }
-  
-+     /* No translation, it may call malloc(). */
-  #ifdef SIGHASARG
-!     sprintf((char *)IObuff, "Vim: Caught deadly signal %s\n",
-  							 signal_info[i].name);
-  #else
-!     sprintf((char *)IObuff, "Vim: Caught deadly signal\n");
-  #endif
-! 
-!     /* Preserve files and exit.  This sets the really_exiting flag to prevent
-!      * calling free(). */
-!     preserve_exit();
-  
-  #ifdef NBDEBUG
-      reset_signals();
-*** ../vim-7.4.021/src/misc1.c	2013-08-03 17:29:33.000000000 +0200
---- src/misc1.c	2013-09-05 21:34:04.000000000 +0200
-***************
-*** 9174,9179 ****
---- 9174,9181 ----
-  /*
-   * Preserve files and exit.
-   * When called IObuff must contain a message.
-+  * NOTE: This may be called from deathtrap() in a signal handler, avoid unsafe
-+  * functions, such as allocating memory.
-   */
-      void
-  preserve_exit()
-***************
-*** 9196,9202 ****
-      {
-  	if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
-  	{
-! 	    OUT_STR(_("Vim: preserving files...\n"));
-  	    screen_start();	    /* don't know where cursor is now */
-  	    out_flush();
-  	    ml_sync_all(FALSE, FALSE);	/* preserve all swap files */
---- 9198,9204 ----
-      {
-  	if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
-  	{
-! 	    OUT_STR("Vim: preserving files...\n");
-  	    screen_start();	    /* don't know where cursor is now */
-  	    out_flush();
-  	    ml_sync_all(FALSE, FALSE);	/* preserve all swap files */
-***************
-*** 9206,9212 ****
-  
-      ml_close_all(FALSE);	    /* close all memfiles, without deleting */
-  
-!     OUT_STR(_("Vim: Finished.\n"));
-  
-      getout(1);
-  }
---- 9208,9214 ----
-  
-      ml_close_all(FALSE);	    /* close all memfiles, without deleting */
-  
-!     OUT_STR("Vim: Finished.\n");
-  
-      getout(1);
-  }
-*** ../vim-7.4.021/src/version.c	2013-09-05 21:15:38.000000000 +0200
---- src/version.c	2013-09-05 21:30:18.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     22,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-175. You send yourself e-mail before you go to bed to remind you
-     what to do when you wake up.
-
- /// 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/pkgs/applications/editors/vim/patches/7.4.023 b/pkgs/applications/editors/vim/patches/7.4.023
deleted file mode 100644
index 03005213ea45..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.023
+++ /dev/null
@@ -1,53 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.023
-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.023
-Problem:    Compiler warning on 64 bit windows.
-Solution:   Add type cast. (Mike Williams)
-Files:	    src/edit.c
-
-
-*** ../vim-7.4.022/src/edit.c	2013-09-05 13:50:49.000000000 +0200
---- src/edit.c	2013-09-06 17:32:55.000000000 +0200
-***************
-*** 5189,5195 ****
-  	    mb_ptr_back(line, p);
-  	    while (vim_isfilec(PTR2CHAR(p)) && p >= line)
-  		mb_ptr_back(line, p);
-! 	    startcol = p - line;
-  
-  	    compl_col += ++startcol;
-  	    compl_length = (int)curs_col - startcol;
---- 5189,5195 ----
-  	    mb_ptr_back(line, p);
-  	    while (vim_isfilec(PTR2CHAR(p)) && p >= line)
-  		mb_ptr_back(line, p);
-! 	    startcol = (int)(p - line);
-  
-  	    compl_col += ++startcol;
-  	    compl_length = (int)curs_col - startcol;
-*** ../vim-7.4.022/src/version.c	2013-09-05 21:41:35.000000000 +0200
---- src/version.c	2013-09-06 17:33:41.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     23,
-  /**/
-
--- 
-Wizards had always known that the act of observation changed the thing that
-was observed, and sometimes forgot that it also changed the observer too.
-			Terry Pratchett  -  Interesting times
-
- /// 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    ///