summaryrefslogtreecommitdiff
path: root/data/vim/patches
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches')
-rw-r--r--data/vim/patches/7.2.00161
-rw-r--r--data/vim/patches/7.2.00247
-rw-r--r--data/vim/patches/7.2.003107
-rw-r--r--data/vim/patches/7.2.004103
-rw-r--r--data/vim/patches/7.2.005149
-rw-r--r--data/vim/patches/7.2.00650
-rw-r--r--data/vim/patches/7.2.007493
-rw-r--r--data/vim/patches/7.2.00863
-rw-r--r--data/vim/patches/7.2.00967
-rw-r--r--data/vim/patches/7.2.010206
-rw-r--r--data/vim/patches/7.2.011105
-rw-r--r--data/vim/patches/7.2.01253
-rw-r--r--data/vim/patches/7.2.013135
-rw-r--r--data/vim/patches/7.2.01452
-rw-r--r--data/vim/patches/7.2.01582
-rw-r--r--data/vim/patches/7.2.016166
-rw-r--r--data/vim/patches/7.2.017162
-rw-r--r--data/vim/patches/7.2.01845
-rw-r--r--data/vim/patches/7.2.01965
-rw-r--r--data/vim/patches/7.2.02054
-rw-r--r--data/vim/patches/7.2.021147
-rw-r--r--data/vim/patches/7.2.022140
22 files changed, 2552 insertions, 0 deletions
diff --git a/data/vim/patches/7.2.001 b/data/vim/patches/7.2.001
new file mode 100644
index 000000000..3bcb7d090
--- /dev/null
+++ b/data/vim/patches/7.2.001
@@ -0,0 +1,61 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.001
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.001
+Problem: Mac: pseudo-ttys don't work properly on Leopard, resulting in the
+ shell not to have a prompt, CTRL-C not working, etc.
+Solution: Don't use SVR4 compatible ptys, even though they are detected.
+ (Ben Schmidt)
+Files: src/pty.c
+
+
+*** ../vim-7.2.000/src/pty.c Wed Aug 6 19:04:29 2008
+--- src/pty.c Fri Aug 15 04:00:34 2008
+***************
+*** 270,278 ****
+ }
+ #endif
+
+! #if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux)
+
+! /* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work! */
+ #define PTY_DONE
+ int
+ OpenPTY(ttyn)
+--- 270,279 ----
+ }
+ #endif
+
+! #if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux) && !defined(MACOS_X)
+
+! /* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work!
+! * Same for Mac OS X Leopard. */
+ #define PTY_DONE
+ int
+ OpenPTY(ttyn)
+*** ../vim-7.2.000/src/version.c Sat Aug 9 19:37:37 2008
+--- src/version.c Sun Aug 17 22:56:25 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 1,
+ /**/
+
+--
+ARTHUR: Now stand aside worthy adversary.
+BLACK KNIGHT: (Glancing at his shoulder) 'Tis but a scratch.
+ARTHUR: A scratch? Your arm's off.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.002 b/data/vim/patches/7.2.002
new file mode 100644
index 000000000..e1ee32cd5
--- /dev/null
+++ b/data/vim/patches/7.2.002
@@ -0,0 +1,47 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.002
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.002
+Problem: Leaking memory when displaying menus.
+Solution: Free allocated memory. (Dominique Pelle)
+Files: src/menu.c
+
+
+*** ../vim-7.2.001/src/menu.c Wed Jun 25 00:19:17 2008
+--- src/menu.c Sat Aug 16 05:38:45 2008
+***************
+*** 1120,1125 ****
+--- 1120,1126 ----
+ parent = menu;
+ menu = menu->children;
+ }
++ vim_free(path_name);
+
+ /* Now we have found the matching menu, and we list the mappings */
+ /* Highlight title */
+*** ../vim-7.2.001/src/version.c Sun Aug 17 23:01:21 2008
+--- src/version.c Sun Aug 17 23:42:53 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 2,
+ /**/
+
+--
+ARTHUR: You are indeed brave Sir knight, but the fight is mine.
+BLACK KNIGHT: Had enough?
+ARTHUR: You stupid bastard. You havn't got any arms left.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.003 b/data/vim/patches/7.2.003
new file mode 100644
index 000000000..626d81e5a
--- /dev/null
+++ b/data/vim/patches/7.2.003
@@ -0,0 +1,107 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.003
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.003
+Problem: Typo in translated message. Message not translated.
+Solution: Correct spelling. Add _(). (Dominique Pelle)
+Files: src/spell.c, src/version.c
+
+
+*** ../vim-7.2.002/src/spell.c Tue Jun 24 22:21:31 2008
+--- src/spell.c Sun Aug 10 12:51:38 2008
+***************
+*** 77,83 ****
+
+ /*
+ * Do the opposite: based on a maximum end score and a known sound score,
+! * compute the the maximum word score that can be used.
+ */
+ #define MAXSCORE(word_score, sound_score) ((4 * word_score - sound_score) / 3)
+
+--- 77,83 ----
+
+ /*
+ * Do the opposite: based on a maximum end score and a known sound score,
+! * compute the maximum word score that can be used.
+ */
+ #define MAXSCORE(word_score, sound_score) ((4 * word_score - sound_score) / 3)
+
+***************
+*** 625,631 ****
+ /* TRUE if a word appears in the list of banned words. */
+ #define WAS_BANNED(su, word) (!HASHITEM_EMPTY(hash_find(&su->su_banned, word)))
+
+! /* Number of suggestions kept when cleaning up. we need to keep more than
+ * what is displayed, because when rescore_suggestions() is called the score
+ * may change and wrong suggestions may be removed later. */
+ #define SUG_CLEAN_COUNT(su) ((su)->su_maxcount < 130 ? 150 : (su)->su_maxcount + 20)
+--- 625,631 ----
+ /* TRUE if a word appears in the list of banned words. */
+ #define WAS_BANNED(su, word) (!HASHITEM_EMPTY(hash_find(&su->su_banned, word)))
+
+! /* Number of suggestions kept when cleaning up. We need to keep more than
+ * what is displayed, because when rescore_suggestions() is called the score
+ * may change and wrong suggestions may be removed later. */
+ #define SUG_CLEAN_COUNT(su) ((su)->su_maxcount < 130 ? 150 : (su)->su_maxcount + 20)
+***************
+*** 5980,5986 ****
+ else if (spin->si_newprefID == 0 || spin->si_newprefID == 127)
+ MSG(_("Too many compound flags"));
+ else
+! MSG(_("Too many posponed prefixes and/or compound flags"));
+ }
+
+ if (syllable != NULL)
+--- 5980,5986 ----
+ else if (spin->si_newprefID == 0 || spin->si_newprefID == 127)
+ MSG(_("Too many compound flags"));
+ else
+! MSG(_("Too many postponed prefixes and/or compound flags"));
+ }
+
+ if (syllable != NULL)
+*** ../vim-7.2.002/src/version.c Sun Aug 17 23:43:53 2008
+--- src/version.c Mon Aug 25 04:06:52 2008
+***************
+*** 790,796 ****
+ MSG_PUTS(_("\nRISC OS version"));
+ #endif
+ #ifdef VMS
+! MSG_PUTS("\nOpenVMS version");
+ # ifdef HAVE_PATHDEF
+ if (*compiled_arch != NUL)
+ {
+--- 792,798 ----
+ MSG_PUTS(_("\nRISC OS version"));
+ #endif
+ #ifdef VMS
+! MSG_PUTS(_("\nOpenVMS version"));
+ # ifdef HAVE_PATHDEF
+ if (*compiled_arch != NUL)
+ {
+*** ../vim-7.2.002/src/version.c Sun Aug 17 23:43:53 2008
+--- src/version.c Mon Aug 25 04:06:52 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 3,
+ /**/
+
+--
+I learned the customs and mannerisms of engineers by observing them, much the
+way Jane Goodall learned about the great apes, but without the hassle of
+grooming.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.004 b/data/vim/patches/7.2.004
new file mode 100644
index 000000000..8e7ed3e9d
--- /dev/null
+++ b/data/vim/patches/7.2.004
@@ -0,0 +1,103 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.004
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.004
+Problem: Cscope help message is not translated.
+Solution: Put it in _(). (Dominique Pelle)
+Files: src/if_cscope.c, src/if_cscope.h
+
+
+*** ../vim-7.2.003/src/if_cscope.c Tue Jun 24 23:52:06 2008
+--- src/if_cscope.c Mon Aug 25 04:34:19 2008
+***************
+*** 74,80 ****
+ { "add", cs_add,
+ N_("Add a new database"), "add file|dir [pre-path] [flags]", 0 },
+ { "find", cs_find,
+! N_("Query for a pattern"), FIND_USAGE, 1 },
+ { "help", cs_help,
+ N_("Show this message"), "help", 0 },
+ { "kill", cs_kill,
+--- 74,80 ----
+ { "add", cs_add,
+ N_("Add a new database"), "add file|dir [pre-path] [flags]", 0 },
+ { "find", cs_find,
+! N_("Query for a pattern"), "find c|d|e|f|g|i|s|t name", 1 },
+ { "help", cs_help,
+ N_("Show this message"), "help", 0 },
+ { "kill", cs_kill,
+***************
+*** 1180,1186 ****
+ (void)smsg((char_u *)_("%-5s: %-30s (Usage: %s)"),
+ cmdp->name, _(cmdp->help), cmdp->usage);
+ if (strcmp(cmdp->name, "find") == 0)
+! MSG_PUTS(FIND_HELP);
+ cmdp++;
+ }
+
+--- 1180,1195 ----
+ (void)smsg((char_u *)_("%-5s: %-30s (Usage: %s)"),
+ cmdp->name, _(cmdp->help), cmdp->usage);
+ if (strcmp(cmdp->name, "find") == 0)
+! MSG_PUTS(_("\n"
+! " c: Find functions calling this function\n"
+! " d: Find functions called by this function\n"
+! " e: Find this egrep pattern\n"
+! " f: Find this file\n"
+! " g: Find this definition\n"
+! " i: Find files #including this file\n"
+! " s: Find this C symbol\n"
+! " t: Find assignments to\n"));
+!
+ cmdp++;
+ }
+
+*** ../vim-7.2.003/src/if_cscope.h Thu Sep 6 17:38:58 2007
+--- src/if_cscope.h Mon Aug 25 04:34:17 2008
+***************
+*** 42,58 ****
+ * f 7name Find this file
+ * i 8name Find files #including this file
+ */
+- #define FIND_USAGE "find c|d|e|f|g|i|s|t name"
+- #define FIND_HELP "\n\
+- c: Find functions calling this function\n\
+- d: Find functions called by this function\n\
+- e: Find this egrep pattern\n\
+- f: Find this file\n\
+- g: Find this definition\n\
+- i: Find files #including this file\n\
+- s: Find this C symbol\n\
+- t: Find assignments to\n"
+-
+
+ typedef struct {
+ char * name;
+--- 42,47 ----
+*** ../vim-7.2.003/src/version.c Mon Aug 25 04:12:38 2008
+--- src/version.c Mon Aug 25 04:29:53 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 4,
+ /**/
+
+--
+If someone questions your market projections, simply point out that your
+target market is "People who are nuts" and "People who will buy any damn
+thing". Nobody is going to tell you there aren't enough of those people
+to go around.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.005 b/data/vim/patches/7.2.005
new file mode 100644
index 000000000..20cce85b3
--- /dev/null
+++ b/data/vim/patches/7.2.005
@@ -0,0 +1,149 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.005
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.005
+Problem: A few problems when profiling. Using flag pointer instead of flag
+ value. Allocating zero bytes. Not freeing used memory.
+Solution: Remove wrong '&' characters. Skip dumping when there is nothing
+ to dump. Free used memory. (Dominique Pelle)
+Files: src/eval.c
+
+
+*** ../vim-7.2.004/src/eval.c Fri Aug 8 12:36:31 2008
+--- src/eval.c Mon Aug 25 04:40:11 2008
+***************
+*** 3657,3664 ****
+ }
+
+ /*
+! * Return TRUE if typeval "tv" is locked: Either tha value is locked itself or
+! * it refers to a List or Dictionary that is locked.
+ */
+ static int
+ tv_islocked(tv)
+--- 3657,3664 ----
+ }
+
+ /*
+! * Return TRUE if typeval "tv" is locked: Either that value is locked itself
+! * or it refers to a List or Dictionary that is locked.
+ */
+ static int
+ tv_islocked(tv)
+***************
+*** 15838,15847 ****
+ if (res == FAIL)
+ res = ITEM_COMPARE_FAIL;
+ else
+- /* return value has wrong type */
+ res = get_tv_number_chk(&rettv, &item_compare_func_err);
+ if (item_compare_func_err)
+! res = ITEM_COMPARE_FAIL;
+ clear_tv(&rettv);
+ return res;
+ }
+--- 15838,15846 ----
+ if (res == FAIL)
+ res = ITEM_COMPARE_FAIL;
+ else
+ res = get_tv_number_chk(&rettv, &item_compare_func_err);
+ if (item_compare_func_err)
+! res = ITEM_COMPARE_FAIL; /* return value has wrong type */
+ clear_tv(&rettv);
+ return res;
+ }
+***************
+*** 20590,20595 ****
+--- 20589,20597 ----
+ int st_len = 0;
+
+ todo = (int)func_hashtab.ht_used;
++ if (todo == 0)
++ return; /* nothing to dump */
++
+ sorttab = (ufunc_T **)alloc((unsigned)(sizeof(ufunc_T) * todo));
+
+ for (hi = func_hashtab.ht_array; todo > 0; ++hi)
+***************
+*** 20638,20643 ****
+--- 20640,20647 ----
+ prof_self_cmp);
+ prof_sort_list(fd, sorttab, st_len, "SELF", TRUE);
+ }
++
++ vim_free(sorttab);
+ }
+
+ static void
+***************
+*** 21204,21210 ****
+ if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL))
+ func_do_profile(fp);
+ if (fp->uf_profiling
+! || (fc.caller != NULL && &fc.caller->func->uf_profiling))
+ {
+ ++fp->uf_tm_count;
+ profile_start(&call_start);
+--- 21208,21214 ----
+ if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL))
+ func_do_profile(fp);
+ if (fp->uf_profiling
+! || (fc.caller != NULL && fc.caller->func->uf_profiling))
+ {
+ ++fp->uf_tm_count;
+ profile_start(&call_start);
+***************
+*** 21235,21247 ****
+
+ #ifdef FEAT_PROFILE
+ if (do_profiling == PROF_YES && (fp->uf_profiling
+! || (fc.caller != NULL && &fc.caller->func->uf_profiling)))
+ {
+ profile_end(&call_start);
+ profile_sub_wait(&wait_start, &call_start);
+ profile_add(&fp->uf_tm_total, &call_start);
+ profile_self(&fp->uf_tm_self, &call_start, &fp->uf_tm_children);
+! if (fc.caller != NULL && &fc.caller->func->uf_profiling)
+ {
+ profile_add(&fc.caller->func->uf_tm_children, &call_start);
+ profile_add(&fc.caller->func->uf_tml_children, &call_start);
+--- 21239,21251 ----
+
+ #ifdef FEAT_PROFILE
+ if (do_profiling == PROF_YES && (fp->uf_profiling
+! || (fc.caller != NULL && fc.caller->func->uf_profiling)))
+ {
+ profile_end(&call_start);
+ profile_sub_wait(&wait_start, &call_start);
+ profile_add(&fp->uf_tm_total, &call_start);
+ profile_self(&fp->uf_tm_self, &call_start, &fp->uf_tm_children);
+! if (fc.caller != NULL && fc.caller->func->uf_profiling)
+ {
+ profile_add(&fc.caller->func->uf_tm_children, &call_start);
+ profile_add(&fc.caller->func->uf_tml_children, &call_start);
+*** ../vim-7.2.004/src/version.c Mon Aug 25 04:35:13 2008
+--- src/version.c Mon Aug 25 04:46:44 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 5,
+ /**/
+
+--
+The process for understanding customers primarily involves sitting around with
+other marketing people and talking about what you would to if you were dumb
+enough to be a customer.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.006 b/data/vim/patches/7.2.006
new file mode 100644
index 000000000..f22eeae53
--- /dev/null
+++ b/data/vim/patches/7.2.006
@@ -0,0 +1,50 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.006
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.006
+Problem: HTML files are not recognized by contents.
+Solution: Add a rule to the scripts file. (Nico Weber)
+Files: runtime/scripts.vim
+
+
+*** ../vim-7.2.005/runtime/scripts.vim Sat Aug 9 19:37:09 2008
+--- runtime/scripts.vim Sat Aug 16 04:05:34 2008
+***************
+*** 234,239 ****
+--- 234,243 ----
+ elseif s:line1 =~ '\<DTD\s\+XHTML\s'
+ set ft=xhtml
+
++ " HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN")
++ elseif s:line1 =~? '\<DOCTYPE\s\+html\>'
++ set ft=html
++
+ " PDF
+ elseif s:line1 =~ '^%PDF-'
+ set ft=pdf
+*** ../vim-7.2.005/src/version.c Mon Aug 25 04:48:21 2008
+--- src/version.c Mon Aug 25 05:02:34 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 6,
+ /**/
+
+--
+Never enter the boss's office unless it's absolutely necessary. Every boss
+saves one corner of the desk for useless assignments that are doled out like
+Halloween candy to each visitor.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.007 b/data/vim/patches/7.2.007
new file mode 100644
index 000000000..104b26785
--- /dev/null
+++ b/data/vim/patches/7.2.007
@@ -0,0 +1,493 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.007 (extra)
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.007 (extra)
+Problem: Minor issues for VMS.
+Solution: Minor fixes for VMS. Add float support. (Zoltan Arpadffy)
+Files: runtime/doc/os_vms.txt, src/os_vms_conf.h, src/Make_vms.mms,
+ src/testdir/Make_vms.mms, src/testdir/test30.in,
+ src/testdir/test54.in
+
+
+*** ../vim-7.2.006/runtime/doc/os_vms.txt Sat Aug 9 19:36:50 2008
+--- runtime/doc/os_vms.txt Tue Aug 19 06:29:31 2008
+***************
+*** 1,4 ****
+! *os_vms.txt* For Vim version 7.2. Last change: 2006 Nov 18
+
+
+ VIM REFERENCE MANUAL
+--- 1,4 ----
+! *os_vms.txt* For Vim version 7.2. Last change: 2008 Aug 19
+
+
+ VIM REFERENCE MANUAL
+***************
+*** 312,318 ****
+
+ 8. Useful notes *vms-notes*
+
+! 8.1 backspace/delete
+ 8.2 Filters
+ 8.3 VMS file version numbers
+ 8.4 Directory conversion
+--- 312,318 ----
+
+ 8. Useful notes *vms-notes*
+
+! 8.1 Backspace/delete
+ 8.2 Filters
+ 8.3 VMS file version numbers
+ 8.4 Directory conversion
+***************
+*** 326,333 ****
+ 8.12 diff-mode
+ 8.13 Allow '$' in C keywords
+ 8.14 VIMTUTOR for beginners
+
+! 8.1 backspace/delete
+
+ There are backspace/delete key inconsistencies with VMS.
+ :fixdel doesn't do the trick, but the solution is: >
+--- 326,335 ----
+ 8.12 diff-mode
+ 8.13 Allow '$' in C keywords
+ 8.14 VIMTUTOR for beginners
++ 8.15 Slow start in console mode issue
++ 8.16 Common VIM directory - different architectures
+
+! 8.1 Backspace/delete
+
+ There are backspace/delete key inconsistencies with VMS.
+ :fixdel doesn't do the trick, but the solution is: >
+***************
+*** 663,674 ****
+
+ (Thomas.R.Wyant III, Vim 6.1)
+
+ ==============================================================================
+
+ 9. VMS related changes *vms-changes*
+
+! Version 7
+ - Improved low level char input (affects just console mode)
+
+ Version 6.4 (2005 Oct 15)
+ - GTKLIB and Vim build on IA64
+--- 665,794 ----
+
+ (Thomas.R.Wyant III, Vim 6.1)
+
++ 8.14 Slow start in console mode issue
++
++ As GUI/GTK Vim works equally well in console mode, many administartors
++ deploy those executables system wide.
++ Unfortunately, on a remote slow connections GUI/GTK executables behave rather
++ slow when user wants to run Vim just in the console mode - because of X environment detection timeout.
++
++ Luckily, there is a simple solution for that. Administrators need to deploy
++ both GUI/GTK build and just console build executables, like below: >
++
++ |- vim72
++ |----- doc
++ |----- syntax
++ vimrc (system rc files)
++ gvimrc
++ gvim.exe (the remaned GUI or GTK built vim.exe)
++ vim.exe (the console only executable)
++
++ Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
++
++ $ define/nolog VIM RF10:[UTIL.VIM72] ! where you VIM directory is
++ $ vi*m :== mcr VIM:VIM.EXE
++ $ gvi*m :== mcr VIM:GVIM.EXE
++ $ ! or you can try to spawn with
++ $ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40
++
++
++ Like this, users that do not have X environment and want to use Vim just in
++ console mode can avoid performance problems.
++
++ (Zoltan Arpadffy, Vim 7.2)
++
++ 8.15 Common VIM directory - different architectures
++
++ In a cluster that contains nodes with different architectures like below:
++
++ $show cluster
++ View of Cluster from system ID 11655 node: TOR 18-AUG-2008 11:58:31
++ +---------------------------------+
++ ¦ SYSTEMS ¦ MEMBERS ¦
++ +-----------------------+---------¦
++ ¦ NODE ¦ SOFTWARE ¦ STATUS ¦
++ +--------+--------------+---------¦
++ ¦ TOR ¦ VMS V7.3-2 ¦ MEMBER ¦
++ ¦ TITAN2 ¦ VMS V8.3 ¦ MEMBER ¦
++ ¦ ODIN ¦ VMS V7.3-2 ¦ MEMBER ¦
++ +---------------------------------+
++
++ It is convinient to have a common VIM directory but execute different
++ executables.
++ There are more solutions for this problem:
++
++ solution 1. all executables in the same directory with different names
++ This is easily done with the following script that can be added
++ to the login.com or sylogin.com: >
++
++ $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX"
++ $ then
++ $ say "VAX platform"
++ $ vi*m:== mcr vim:VIM.EXE_VAX
++ $ endif
++ $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH"
++ $ then
++ $ say "ALPHA platform"
++ $ vi*m :== mcr vim:VIM.EXE_AXP
++ $ endif
++ $ if f$getsyi("ARCH_NAME") .eqs. "IA64"
++ $ then
++ $ say "IA64 platform"
++ $ vi*m :== mcr vim:VIM.EXE_IA64
++ $ endif
++
++ solution 2. different directories: >
++
++ $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX"
++ $ then
++ $ say "VAX platform"
++ $ define/nolog VIM RF10:[UTIL.VAX_EXE] ! VAX executables
++ $ endif
++ $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH"
++ $ then
++ $ say "ALPHA platform"
++ $ define/nolog VIM RF10:[UTIL.AXP_EXE] ! AXP executables
++ $ endif
++ $ if f$getsyi("ARCH_NAME") .eqs. "IA64"
++ $ then
++ $ say "IA64 platform"
++ $ define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables
++ $ endif
++ $! VIMRUNTIME must be defined in order to find runtime files
++ $ define/nolog VIMRUNTIME RF10:[UTIL.VIM72]
++
++ A good examle for this approach is the [GNU]gnu_tools.com script from GNU_TOOLS.ZIP
++ package downloadable from http://www.polarhome.com/vim/
++
++ (Zoltan Arpadffy, Vim 7.2)
++
+ ==============================================================================
+
+ 9. VMS related changes *vms-changes*
+
+! Recent changes
+! - The following plugins are included into VMS runtime:
+! genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3,
+! bufexplorer 7.1.7, taglist 4.5
+! - minor changes in vimrc (just in VMS runtime)
+! - make_vms.mms - HUGE model is the default
+! - [TESTDIR]make_vms.mms include as many tests possible
+! - modify test30 and test54 for VMS
+! - enable FLOAT feature in VMS port
+! - os_vms.txt updated
+!
+! Version 7.2 (2008 Aug 9)
+! - VCF files write corrected
+! - CTAGS 5.7 included
+! - corrected make_vms.mms (on VAX gave syntax error)
+!
+! Version 7.1 (2007 Jun 15)
+! - create TAGS file from menu
+!
+! Version 7 (2006 May 8)
+ - Improved low level char input (affects just console mode)
++ - Fixed plugin bug
++ - CTAGS 5.6 included
+
+ Version 6.4 (2005 Oct 15)
+ - GTKLIB and Vim build on IA64
+***************
+*** 806,811 ****
+--- 926,932 ----
+
+ OpenVMS documentation and executables are maintained by:
+ Zoltan Arpadffy <arpadffy@polarhome.com>
++ OpenVMS Vim page: http://www.polarhome.com/vim/
+
+ This document uses parts and remarks from earlier authors and contributors
+ of OS_VMS.TXT:
+*** ../vim-7.2.006/src/os_vms_conf.h Thu May 10 19:26:17 2007
+--- src/os_vms_conf.h Sat Aug 16 05:09:17 2008
+***************
+*** 114,119 ****
+--- 114,121 ----
+ #define HAVE_PUTENV
+ #define HAVE_SETENV
+ #define HAVE_SETJMP_H
++ #define HAVE_MATH_H
++ #define HAVE_FLOAT_FUNCS
+
+ #undef HAVE_DIRENT_H
+ #undef HAVE_SYS_NDIR_H
+*** ../vim-7.2.006/src/Make_vms.mms Mon Oct 29 22:38:54 2007
+--- src/Make_vms.mms Sat Aug 16 05:17:41 2008
+***************
+*** 2,8 ****
+ # Makefile for Vim on OpenVMS
+ #
+ # Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
+! # Last change: 2007 Oct 22
+ #
+ # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
+ # with MMS and MMK
+--- 2,8 ----
+ # Makefile for Vim on OpenVMS
+ #
+ # Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
+! # Last change: 2008 Aug 16
+ #
+ # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
+ # with MMS and MMK
+***************
+*** 36,42 ****
+ # BIG - Many features enabled, as rich as possible. (default)
+ # HUGE - All possible featues enabled.
+ # Please select one of these alternatives above.
+! MODEL = BIG
+
+ # GUI or terminal mode executable.
+ # Comment out if you want just the character terminal mode only.
+--- 36,42 ----
+ # BIG - Many features enabled, as rich as possible. (default)
+ # HUGE - All possible featues enabled.
+ # Please select one of these alternatives above.
+! MODEL = HUGE
+
+ # GUI or terminal mode executable.
+ # Comment out if you want just the character terminal mode only.
+*** ../vim-7.2.006/src/testdir/Make_vms.mms Wed Jun 25 00:34:23 2008
+--- src/testdir/Make_vms.mms Tue Aug 19 06:28:07 2008
+***************
+*** 4,12 ****
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2008 Jun 19
+ #
+! # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX.
+ # Edit the lines in the Configuration section below to select.
+ #
+ # Execute with:
+--- 4,12 ----
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2008 Aug 19
+ #
+! # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+ #
+ # Execute with:
+***************
+*** 32,37 ****
+--- 32,46 ----
+ # and directory handling.
+ # WANT_UNIX = YES
+
++ # Comment out if you want to run Win32 specific tests as well, but please
++ # be aware, that on OpenVMS will fail, because of cat, rm, etc commands
++ # and directory handling.
++ # WANT_WIN = YES
++
++ # Comment out if you want to run spell checker tests.
++ # They fail because VMS does not support file names.
++ # WANT_SPELL = YES
++
+ # Comment out if you have gzip on your system
+ # HAVE_GZIP = YES
+
+***************
+*** 53,64 ****
+ test13.out test14.out test15.out test17.out \
+ test18.out test19.out test20.out test21.out test22.out \
+ test23.out test24.out test26.out \
+! test28.out test29.out test31.out test32.out \
+ test33.out test34.out test35.out test36.out test37.out \
+ test38.out test39.out test40.out test41.out test42.out \
+ test43.out test44.out test45.out test46.out \
+ test48.out test51.out test53.out test54.out test55.out \
+! test56.out test57.out test58.out test59.out test60.out \
+ test61.out test62.out test63.out test64.out test65.out
+
+ .IFDEF WANT_GUI
+--- 62,73 ----
+ test13.out test14.out test15.out test17.out \
+ test18.out test19.out test20.out test21.out test22.out \
+ test23.out test24.out test26.out \
+! test28.out test29.out test30.out test31.out test32.out \
+ test33.out test34.out test35.out test36.out test37.out \
+ test38.out test39.out test40.out test41.out test42.out \
+ test43.out test44.out test45.out test46.out \
+ test48.out test51.out test53.out test54.out test55.out \
+! test56.out test57.out test60.out \
+ test61.out test62.out test63.out test64.out test65.out
+
+ .IFDEF WANT_GUI
+***************
+*** 67,73 ****
+ .ENDIF
+
+ .IFDEF WANT_UNIX
+! SCRIPT_UNIX = test10.out test12.out test25.out test27.out test30.out test49.out
+ .ENDIF
+
+ .IFDEF HAVE_GZIP
+--- 76,90 ----
+ .ENDIF
+
+ .IFDEF WANT_UNIX
+! SCRIPT_UNIX = test10.out test12.out test25.out test27.out test49.out
+! .ENDIF
+!
+! .IFDEF WANT_WIN
+! SCRIPT_WIN = test50.out test52.out
+! .ENDIF
+!
+! .IFDEF WANT_SPELL
+! SCRIPT_SPELL = test58.out test59.out
+ .ENDIF
+
+ .IFDEF HAVE_GZIP
+***************
+*** 84,94 ****
+ -@ write sys$output " "$*" "
+ -@ write sys$output "-----------------------------------------------"
+ -@ create/term/wait mcr $(VIMPROG) $(GUI_OPTION) -u vms.vim --noplugin -s dotest.in $*.in
+! -@ if "''F$SEARCH("test.out.*")'" .NES. "" then differences test.out $*.ok;
+ -@ if "''F$SEARCH("test.out.*")'" .NES. "" then rename test.out $*.out
+ -@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.*
+
+! all : clean nolog $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_GZIP) $(SCRIPT_GDIFF)
+ -@ write sys$output " "
+ -@ write sys$output "-----------------------------------------------"
+ -@ write sys$output " All done"
+--- 101,111 ----
+ -@ write sys$output " "$*" "
+ -@ write sys$output "-----------------------------------------------"
+ -@ create/term/wait mcr $(VIMPROG) $(GUI_OPTION) -u vms.vim --noplugin -s dotest.in $*.in
+! -@ if "''F$SEARCH("test.out.*")'" .NES. "" then differences /par test.out $*.ok;
+ -@ if "''F$SEARCH("test.out.*")'" .NES. "" then rename test.out $*.out
+ -@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.*
+
+! all : clean nolog $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_WIN) $(SCRIPT_SPELL) $(SCRIPT_GZIP) $(SCRIPT_GDIFF)
+ -@ write sys$output " "
+ -@ write sys$output "-----------------------------------------------"
+ -@ write sys$output " All done"
+***************
+*** 113,118 ****
+--- 130,137 ----
+ -@ write sys$output "MAKE_VMS.MMS options:"
+ -@ write sys$output " WANT_GUI = ""$(WANT_GUI)"" "
+ -@ write sys$output " WANT_UNIX = ""$(WANT_UNIX)"" "
++ -@ write sys$output " WANT_WIN = ""$(WANT_WIN)"" "
++ -@ write sys$output " WANT_SPELL= ""$(WANT_SPELL)"" "
+ -@ write sys$output " HAVE_GZIP = ""$(HAVE_GZIP)"" "
+ -@ write sys$output " HAVE_GDIFF= ""$(HAVE_GDIFF)"" "
+ -@ write sys$output "Default vimrc file is VMS.VIM:
+***************
+*** 122,126 ****
+--- 141,153 ----
+ clean :
+ -@ if "''F$SEARCH("*.out")'" .NES. "" then delete/noconfirm/nolog *.out.*
+ -@ if "''F$SEARCH("test.log")'" .NES. "" then delete/noconfirm/nolog test.log.*
++ -@ if "''F$SEARCH("test.ok")'" .NES. "" then delete/noconfirm/nolog test.ok.*
+ -@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.*
+ -@ if "''F$SEARCH("*.*_sw*")'" .NES. "" then delete/noconfirm/nolog *.*_sw*.*
++ -@ if "''F$SEARCH("*.failed")'" .NES. "" then delete/noconfirm/nolog *.failed.*
++ -@ if "''F$SEARCH("*.rej")'" .NES. "" then delete/noconfirm/nolog *.rej.*
++ -@ if "''F$SEARCH("tiny.vim")'" .NES. "" then delete/noconfirm/nolog tiny.vim.*
++ -@ if "''F$SEARCH("small.vim")'" .NES. "" then delete/noconfirm/nolog small.vim.*
++ -@ if "''F$SEARCH("mbyte.vim")'" .NES. "" then delete/noconfirm/nolog mbyte.vim.*
++ -@ if "''F$SEARCH("viminfo.*")'" .NES. "" then delete/noconfirm/nolog viminfo.*.*
++
+*** ../vim-7.2.006/src/testdir/test30.in Sun Jul 13 19:17:14 2008
+--- src/testdir/test30.in Sat Aug 16 04:59:37 2008
+***************
+*** 24,33 ****
+ :set nobin eol
+ :bwipe XXUnix XXDos XXMac
+ :" create mixed format files
+! :!cat XXUnix XXDos >XXUxDs
+! :!cat XXUnix XXMac >XXUxMac
+! :!cat XXDos XXMac >XXDosMac
+! :!cat XXUnix XXDos XXMac >XXUxDsMc
+ :"
+ :" try reading and writing with 'fileformats' empty
+ :set fileformat=unix
+--- 24,40 ----
+ :set nobin eol
+ :bwipe XXUnix XXDos XXMac
+ :" create mixed format files
+! :if has("vms")
+! : !copy XXUnix,XXDos XXUxDs.
+! : !copy XXUnix,XXMac XXUxMac.
+! : !copy XXDos,XXMac XXDosMac.
+! : !copy XXUnix,XXDos,XXMac XXUxDsMc.
+! :else
+! : !cat XXUnix XXDos >XXUxDs
+! : !cat XXUnix XXMac >XXUxMac
+! : !cat XXDos XXMac >XXDosMac
+! : !cat XXUnix XXDos XXMac >XXUxDsMc
+! :endif
+ :"
+ :" try reading and writing with 'fileformats' empty
+ :set fileformat=unix
+*** ../vim-7.2.006/src/testdir/test54.in Sun Jan 2 12:43:19 2005
+--- src/testdir/test54.in Tue Aug 19 06:26:55 2008
+***************
+*** 3,10 ****
+ STARTTEST
+ :so small.vim
+ :e xx
+! :!rm -f test.out
+! :au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
+ :e somefile " here, autocommand for xx shall write test.out
+ : " but autocommand shall not apply to buffer named <buffer>
+ :bwipe xx " here, autocommand shall be auto-deleted
+--- 3,15 ----
+ STARTTEST
+ :so small.vim
+ :e xx
+! :if has("vms")
+! : !del test.out.*
+! : au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out
+! :else
+! : !rm -f test.out
+! : au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
+! :endif
+ :e somefile " here, autocommand for xx shall write test.out
+ : " but autocommand shall not apply to buffer named <buffer>
+ :bwipe xx " here, autocommand shall be auto-deleted
+*** ../vim-7.2.006/src/version.c Mon Aug 25 05:03:29 2008
+--- src/version.c Mon Sep 1 16:46:50 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 7,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+8. Don't use any punctuation marks.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.008 b/data/vim/patches/7.2.008
new file mode 100644
index 000000000..d3fb58e5c
--- /dev/null
+++ b/data/vim/patches/7.2.008
@@ -0,0 +1,63 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.008
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.008
+Problem: With a BufHidden autocommand that invokes ":bunload" the window
+ count for a buffer can be wrong. (Bob Hiestand)
+Solution: Don't call enter_buffer() when already in that buffer.
+Files: src/buffer.c
+
+
+*** ../vim-7.2.007/src/buffer.c Wed Aug 6 18:32:40 2008
+--- src/buffer.c Mon Sep 1 14:25:45 2008
+***************
+*** 1351,1361 ****
+ }
+ }
+ #ifdef FEAT_AUTOCMD
+ # ifdef FEAT_EVAL
+! /* An autocommand may have deleted buf or aborted the script processing! */
+! if (buf_valid(buf) && !aborting())
+ # else
+! if (buf_valid(buf)) /* an autocommand may have deleted buf! */
+ # endif
+ #endif
+ enter_buffer(buf);
+--- 1351,1362 ----
+ }
+ }
+ #ifdef FEAT_AUTOCMD
++ /* An autocommand may have deleted "buf", already entered it (e.g., when
++ * it did ":bunload") or aborted the script processing! */
+ # ifdef FEAT_EVAL
+! if (buf_valid(buf) && buf != curbuf && !aborting())
+ # else
+! if (buf_valid(buf) && buf != curbuf)
+ # endif
+ #endif
+ enter_buffer(buf);
+*** ../vim-7.2.007/src/version.c Mon Sep 1 16:50:09 2008
+--- src/version.c Mon Sep 1 17:31:28 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 8,
+ /**/
+
+--
+If Pacman had affected us as kids we'd be running around in dark rooms,
+munching pills and listening to repetitive music.
+ -- Marcus Brigstocke
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.009 b/data/vim/patches/7.2.009
new file mode 100644
index 000000000..fa891dcfc
--- /dev/null
+++ b/data/vim/patches/7.2.009
@@ -0,0 +1,67 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.009
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.009
+Problem: Can't compile with Perl 5.10 on MS-Windows. (Cesar Romani)
+Solution: Add the Perl_sv_free2 function for dynamic loading. (Dan Sharp)
+Files: src/if_perl.xs
+
+
+*** ../vim-7.2.008/src/if_perl.xs Thu Jul 24 16:24:15 2008
+--- src/if_perl.xs Mon Sep 1 14:58:37 2008
+***************
+*** 136,141 ****
+--- 136,144 ----
+ # define Perl_newXS_flags dll_Perl_newXS_flags
+ #endif
+ # define Perl_sv_free dll_Perl_sv_free
++ # if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
++ # define Perl_sv_free2 dll_Perl_sv_free2
++ # endif
+ # define Perl_sv_isa dll_Perl_sv_isa
+ # define Perl_sv_magic dll_Perl_sv_magic
+ # define Perl_sv_setiv dll_Perl_sv_setiv
+***************
+*** 268,273 ****
+--- 271,277 ----
+ static void (*boot_DynaLoader)_((pTHX_ CV*));
+
+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
++ static void (*Perl_sv_free2)(pTHX_ SV*);
+ static void (*Perl_sys_init3)(int* argc, char*** argv, char*** env);
+ static void (*Perl_sys_term)(void);
+ static SV** (*Perl_ISv_ptr)(register PerlInterpreter*);
+***************
+*** 367,372 ****
+--- 371,377 ----
+ {"Perl_TXpv_ptr", (PERL_PROC*)&Perl_TXpv_ptr},
+ {"Perl_Tna_ptr", (PERL_PROC*)&Perl_Tna_ptr},
+ #else
++ {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2},
+ {"Perl_sys_init3", (PERL_PROC*)&Perl_sys_init3},
+ {"Perl_sys_term", (PERL_PROC*)&Perl_sys_term},
+ {"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr},
+*** ../vim-7.2.008/src/version.c Mon Sep 1 17:32:40 2008
+--- src/version.c Mon Sep 1 17:55:24 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 9,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+11. Specify that your drive-through order is "to go".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.010 b/data/vim/patches/7.2.010
new file mode 100644
index 000000000..47315881e
--- /dev/null
+++ b/data/vim/patches/7.2.010
@@ -0,0 +1,206 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.010
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.010
+Problem: When using "K" in Visual mode not all characters are properly
+ escaped. (Ben Schmidt)
+Solution: Use a function with the functionality of shellescape(). (Jan
+ Minar)
+Files: src/mbyte.c, src/misc2.c, src/normal.c
+
+
+*** ../vim-7.2.009/src/mbyte.c Wed Aug 6 18:45:36 2008
+--- src/mbyte.c Wed Sep 3 22:34:48 2008
+***************
+*** 2540,2546 ****
+ return (int)(p - q);
+ }
+
+- #if defined(FEAT_EVAL) || defined(PROTO)
+ /*
+ * Copy a character from "*fp" to "*tp" and advance the pointers.
+ */
+--- 2540,2545 ----
+***************
+*** 2555,2561 ****
+ *tp += l;
+ *fp += l;
+ }
+- #endif
+
+ /*
+ * Return the offset from "p" to the first byte of a character. When "p" is
+--- 2554,2559 ----
+*** ../vim-7.2.009/src/misc2.c Thu Jul 24 20:28:58 2008
+--- src/misc2.c Wed Sep 3 22:05:21 2008
+***************
+*** 1257,1263 ****
+ return escaped_string;
+ }
+
+- #if !defined(BACKSLASH_IN_FILENAME) || defined(FEAT_EVAL) || defined(PROTO)
+ /*
+ * Return TRUE when 'shell' has "csh" in the tail.
+ */
+--- 1257,1262 ----
+***************
+*** 1266,1274 ****
+ {
+ return (strstr((char *)gettail(p_sh), "csh") != NULL);
+ }
+- #endif
+
+- #if defined(FEAT_EVAL) || defined(PROTO)
+ /*
+ * Escape "string" for use as a shell argument with system().
+ * This uses single quotes, except when we know we need to use double qoutes
+--- 1265,1271 ----
+***************
+*** 1391,1397 ****
+
+ return escaped_string;
+ }
+- #endif
+
+ /*
+ * Like vim_strsave(), but make all characters uppercase.
+--- 1388,1393 ----
+*** ../vim-7.2.009/src/normal.c Thu Jul 31 22:03:54 2008
+--- src/normal.c Sat Sep 6 15:06:07 2008
+***************
+*** 5469,5474 ****
+--- 5469,5479 ----
+ STRCPY(buf, "he! ");
+ else
+ {
++ /* An external command will probably use an argument starting
++ * with "-" as an option. To avoid trouble we skip the "-". */
++ while (*ptr == '-')
++ ++ptr;
++
+ /* When a count is given, turn it into a range. Is this
+ * really what we want? */
+ isman = (STRCMP(kp, "man") == 0);
+***************
+*** 5511,5547 ****
+ /*
+ * Now grab the chars in the identifier
+ */
+! if (cmdchar == '*')
+! aux_ptr = (char_u *)(p_magic ? "/.*~[^$\\" : "/^$\\");
+! else if (cmdchar == '#')
+! aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
+! else if (cmdchar == 'K' && !kp_help)
+! aux_ptr = (char_u *)" \t\\\"|!";
+! else
+! /* Don't escape spaces and Tabs in a tag with a backslash */
+! aux_ptr = (char_u *)"\\|\"";
+!
+! p = buf + STRLEN(buf);
+! while (n-- > 0)
+! {
+! /* put a backslash before \ and some others */
+! if (vim_strchr(aux_ptr, *ptr) != NULL)
+! *p++ = '\\';
+! #ifdef FEAT_MBYTE
+! /* When current byte is a part of multibyte character, copy all bytes
+! * of that character. */
+! if (has_mbyte)
+ {
+! int i;
+! int len = (*mb_ptr2len)(ptr) - 1;
+!
+! for (i = 0; i < len && n >= 1; ++i, --n)
+! *p++ = *ptr++;
+ }
+ #endif
+! *p++ = *ptr++;
+ }
+- *p = NUL;
+
+ /*
+ * Execute the command.
+--- 5516,5572 ----
+ /*
+ * Now grab the chars in the identifier
+ */
+! if (cmdchar == 'K' && !kp_help)
+! {
+! /* Escape the argument properly for a shell command */
+! p = vim_strsave_shellescape(ptr, TRUE);
+! if (p == NULL)
+ {
+! vim_free(buf);
+! return;
+ }
++ buf = (char_u *)vim_realloc(buf, STRLEN(buf) + STRLEN(p) + 1);
++ if (buf == NULL)
++ {
++ vim_free(buf);
++ vim_free(p);
++ return;
++ }
++ STRCAT(buf, p);
++ vim_free(p);
++ }
++ else
++ {
++ if (cmdchar == '*')
++ aux_ptr = (char_u *)(p_magic ? "/.*~[^$\\" : "/^$\\");
++ else if (cmdchar == '#')
++ aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
++ else
++ /* Don't escape spaces and Tabs in a tag with a backslash */
++ aux_ptr = (char_u *)"\\|\"\n*?[";
++
++ p = buf + STRLEN(buf);
++ while (n-- > 0)
++ {
++ /* put a backslash before \ and some others */
++ if (vim_strchr(aux_ptr, *ptr) != NULL)
++ *p++ = '\\';
++ #ifdef FEAT_MBYTE
++ /* When current byte is a part of multibyte character, copy all
++ * bytes of that character. */
++ if (has_mbyte)
++ {
++ int i;
++ int len = (*mb_ptr2len)(ptr) - 1;
++
++ for (i = 0; i < len && n >= 1; ++i, --n)
++ *p++ = *ptr++;
++ }
+ #endif
+! *p++ = *ptr++;
+! }
+! *p = NUL;
+ }
+
+ /*
+ * Execute the command.
+*** ../vim-7.2.009/src/version.c Mon Sep 1 17:56:05 2008
+--- src/version.c Sat Sep 6 16:26:42 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 10,
+ /**/
+
+--
+Q. What happens to programmers when they die?
+A: MS-Windows programmers are reinstalled. C++ programmers become undefined,
+ anyone who refers to them will die as well. Java programmers reincarnate
+ after being garbage collected.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.011 b/data/vim/patches/7.2.011
new file mode 100644
index 000000000..928f8d638
--- /dev/null
+++ b/data/vim/patches/7.2.011
@@ -0,0 +1,105 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.011
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.011
+Problem: Get an error when inserting a float value from the expression
+ register.
+Solution: Convert the Float to a String automatically in the same place
+ where a List would be converted to a String.
+Files: src/eval.c
+
+
+*** ../vim-7.2.010/src/eval.c Mon Aug 25 04:48:21 2008
+--- src/eval.c Sun Sep 7 13:50:38 2008
+***************
+*** 1256,1278 ****
+
+ /*
+ * Top level evaluation function, returning a string.
+ * Return pointer to allocated memory, or NULL for failure.
+ */
+ char_u *
+! eval_to_string(arg, nextcmd, dolist)
+ char_u *arg;
+ char_u **nextcmd;
+! int dolist; /* turn List into sequence of lines */
+ {
+ typval_T tv;
+ char_u *retval;
+ garray_T ga;
+
+ if (eval0(arg, &tv, nextcmd, TRUE) == FAIL)
+ retval = NULL;
+ else
+ {
+! if (dolist && tv.v_type == VAR_LIST)
+ {
+ ga_init2(&ga, (int)sizeof(char), 80);
+ if (tv.vval.v_list != NULL)
+--- 1256,1281 ----
+
+ /*
+ * Top level evaluation function, returning a string.
++ * When "convert" is TRUE convert a List into a sequence of lines and convert
++ * a Float to a String.
+ * Return pointer to allocated memory, or NULL for failure.
+ */
+ char_u *
+! eval_to_string(arg, nextcmd, convert)
+ char_u *arg;
+ char_u **nextcmd;
+! int convert;
+ {
+ typval_T tv;
+ char_u *retval;
+ garray_T ga;
++ char_u numbuf[NUMBUFLEN];
+
+ if (eval0(arg, &tv, nextcmd, TRUE) == FAIL)
+ retval = NULL;
+ else
+ {
+! if (convert && tv.v_type == VAR_LIST)
+ {
+ ga_init2(&ga, (int)sizeof(char), 80);
+ if (tv.vval.v_list != NULL)
+***************
+*** 1280,1285 ****
+--- 1283,1295 ----
+ ga_append(&ga, NUL);
+ retval = (char_u *)ga.ga_data;
+ }
++ #ifdef FEAT_FLOAT
++ else if (convert && tv.v_type == VAR_FLOAT)
++ {
++ vim_snprintf((char *)numbuf, NUMBUFLEN, "%g", tv.vval.v_float);
++ retval = vim_strsave(numbuf);
++ }
++ #endif
+ else
+ retval = vim_strsave(get_tv_string(&tv));
+ clear_tv(&tv);
+*** ../vim-7.2.010/src/version.c Sat Sep 6 16:44:06 2008
+--- src/version.c Sun Sep 7 13:52:00 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 11,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+34. You laugh at people with 14400 baud modems.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.012 b/data/vim/patches/7.2.012
new file mode 100644
index 000000000..fa3ed2473
--- /dev/null
+++ b/data/vim/patches/7.2.012
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.012
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.012
+Problem: Compiler warnings when building with startup timing.
+Solution: Add type casts.
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.2.011/src/ex_cmds2.c Sun Jul 13 19:36:09 2008
+--- src/ex_cmds2.c Tue Sep 2 11:14:41 2008
+***************
+*** 3145,3152 ****
+ verbose_leave();
+ }
+ #ifdef STARTUPTIME
+! vim_snprintf(IObuff, IOSIZE, "sourcing %s", fname);
+! time_msg(IObuff, &tv_start);
+ time_pop(&tv_rel);
+ #endif
+
+--- 3145,3152 ----
+ verbose_leave();
+ }
+ #ifdef STARTUPTIME
+! vim_snprintf((char *)IObuff, IOSIZE, "sourcing %s", fname);
+! time_msg((char *)IObuff, &tv_start);
+ time_pop(&tv_rel);
+ #endif
+
+*** ../vim-7.2.011/src/version.c Sun Sep 7 13:54:31 2008
+--- src/version.c Sun Sep 7 15:49:00 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 12,
+ /**/
+
+--
+He who laughs last, thinks slowest.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.013 b/data/vim/patches/7.2.013
new file mode 100644
index 000000000..2645f0a7d
--- /dev/null
+++ b/data/vim/patches/7.2.013
@@ -0,0 +1,135 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.013
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.013
+Problem: While waiting for the X selection Vim consumes a lot of CPU time
+ and hangs until a response is received.
+Solution: Sleep a bit when the selection event hasn't been received yet.
+ Time out after a couple of seconds to avoid a hang when the
+ selection owner isn't responding.
+Files: src/ui.c
+
+
+*** ../vim-7.2.012/src/ui.c Mon Jul 14 21:47:49 2008
+--- src/ui.c Sun Sep 7 16:54:35 2008
+***************
+*** 2110,2115 ****
+--- 2110,2117 ----
+ int i;
+ int nbytes = 0;
+ char_u *buffer;
++ time_t start_time;
++ int timed_out = FALSE;
+
+ for (i =
+ #ifdef FEAT_MBYTE
+***************
+*** 2129,2134 ****
+--- 2131,2137 ----
+ case 3: type = text_atom; break;
+ default: type = XA_STRING;
+ }
++ success = FALSE;
+ XtGetSelectionValue(myShell, cbd->sel_atom, type,
+ clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
+
+***************
+*** 2141,2167 ****
+ * characters, then they will appear before the one that requested the
+ * paste! Don't worry, we will catch up with any other events later.
+ */
+ for (;;)
+ {
+ if (XCheckTypedEvent(dpy, SelectionNotify, &event))
+ break;
+ if (XCheckTypedEvent(dpy, SelectionRequest, &event))
+ /* We may get a SelectionRequest here and if we don't handle
+ * it we hang. KDE klipper does this, for example. */
+ XtDispatchEvent(&event);
+
+ /* Do we need this? Probably not. */
+ XSync(dpy, False);
+
+! /* Bernhard Walle solved a slow paste response in an X terminal by
+! * adding: usleep(10000); here. */
+ }
+
+- /* this is where clip_x11_request_selection_cb() is actually called */
+- XtDispatchEvent(&event);
+-
+ if (success)
+ return;
+ }
+
+ /* Final fallback position - use the X CUT_BUFFER0 store */
+--- 2144,2189 ----
+ * characters, then they will appear before the one that requested the
+ * paste! Don't worry, we will catch up with any other events later.
+ */
++ start_time = time(NULL);
+ for (;;)
+ {
+ if (XCheckTypedEvent(dpy, SelectionNotify, &event))
++ {
++ /* this is where clip_x11_request_selection_cb() is actually
++ * called */
++ XtDispatchEvent(&event);
+ break;
++ }
+ if (XCheckTypedEvent(dpy, SelectionRequest, &event))
+ /* We may get a SelectionRequest here and if we don't handle
+ * it we hang. KDE klipper does this, for example. */
+ XtDispatchEvent(&event);
+
++ /* Time out after 2 to 3 seconds to avoid that we hang when the
++ * other process doesn't respond. Note that the SelectionNotify
++ * event may still come later when the selection owner comes back
++ * to life and the text gets inserted unexpectedly (by xterm).
++ * Don't know how to avoid that :-(. */
++ if (time(NULL) > start_time + 2)
++ {
++ timed_out = TRUE;
++ break;
++ }
++
+ /* Do we need this? Probably not. */
+ XSync(dpy, False);
+
+! /* Wait for 1 msec to avoid that we eat up all CPU time. */
+! ui_delay(1L, TRUE);
+ }
+
+ if (success)
+ return;
++
++ /* don't do a retry with another type after timing out, otherwise we
++ * hang for 15 seconds. */
++ if (timed_out)
++ break;
+ }
+
+ /* Final fallback position - use the X CUT_BUFFER0 store */
+*** ../vim-7.2.012/src/version.c Sun Sep 7 15:49:45 2008
+--- src/version.c Sun Sep 7 21:45:55 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 13,
+ /**/
+
+--
+The users that I support would double-click on a landmine to find out
+what happens. -- A system administrator
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.014 b/data/vim/patches/7.2.014
new file mode 100644
index 000000000..a03794868
--- /dev/null
+++ b/data/vim/patches/7.2.014
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.014
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.014
+Problem: synstack() doesn't work in an emptly line.
+Solution: Accept column zero as a valid position.
+Files: src/eval.c
+
+
+*** ../vim-7.2.013/src/eval.c Sun Sep 7 13:54:31 2008
+--- src/eval.c Sun Sep 7 13:50:38 2008
+***************
+*** 16667,16673 ****
+ col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */
+
+ if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
+! && col >= 0 && col < (long)STRLEN(ml_get(lnum))
+ && rettv_list_alloc(rettv) != FAIL)
+ {
+ (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE);
+--- 16667,16673 ----
+ col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */
+
+ if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
+! && col >= 0 && (col == 0 || col < (long)STRLEN(ml_get(lnum)))
+ && rettv_list_alloc(rettv) != FAIL)
+ {
+ (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE);
+*** ../vim-7.2.013/src/version.c Sun Sep 7 21:47:51 2008
+--- src/version.c Wed Sep 10 15:36:52 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 14,
+ /**/
+
+--
+Everybody lies, but it doesn't matter since nobody listens.
+ -- Lieberman's Law
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.015 b/data/vim/patches/7.2.015
new file mode 100644
index 000000000..e03ac1564
--- /dev/null
+++ b/data/vim/patches/7.2.015
@@ -0,0 +1,82 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.015
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.015
+Problem: "make all test install" doesn't stop when the test fails. (Daniel
+ Shahaf)
+Solution: When test.log contains failures exit with non-zero status.
+Files: src/testdir/Makefile
+
+
+*** ../vim-7.2.014/src/testdir/Makefile Wed Jun 25 00:22:53 2008
+--- src/testdir/Makefile Sun Sep 7 21:31:49 2008
+***************
+*** 26,40 ****
+
+ .SUFFIXES: .in .out
+
+! nongui: nolog $(SCRIPTS)
+! @echo
+! @cat test.log
+! @echo ALL DONE
+
+! gui: nolog $(SCRIPTS) $(SCRIPTS_GUI)
+ @echo
+! @cat test.log
+! @echo ALL DONE
+
+ $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
+
+--- 26,42 ----
+
+ .SUFFIXES: .in .out
+
+! nongui: nolog $(SCRIPTS) report
+!
+! gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) report
+
+! report:
+ @echo
+! @echo 'Test results:'
+! @/bin/sh -c "if test -f test.log; \
+! then cat test.log; echo TEST FAILURE; exit 1; \
+! else echo ALL DONE; \
+! fi"
+
+ $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
+
+***************
+*** 71,74 ****
+ test60.out: test60.vim
+
+ nolog:
+! -echo Test results: >test.log
+--- 73,76 ----
+ test60.out: test60.vim
+
+ nolog:
+! -rm -f test.log
+*** ../vim-7.2.014/src/version.c Wed Sep 10 15:38:13 2008
+--- src/version.c Wed Sep 10 18:23:38 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 15,
+ /**/
+
+--
+Light travels faster than sound. This is why some people
+appear bright until you hear them speak
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.016 b/data/vim/patches/7.2.016
new file mode 100644
index 000000000..03d5207f2
--- /dev/null
+++ b/data/vim/patches/7.2.016
@@ -0,0 +1,166 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.016
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.016
+Problem: The pattern being completed may be in freed memory when the
+ command line is being reallocated. (Dominique Pelle)
+Solution: Keep a pointer to the expand_T in the command line structure.
+ Don't use <S-Tab> as CTRL-P when there are no results. Clear the
+ completion when using a command line from the history.
+Files: src/ex_getln.c
+
+
+*** ../vim-7.2.015/src/ex_getln.c Fri Aug 8 12:58:59 2008
+--- src/ex_getln.c Wed Sep 10 22:43:41 2008
+***************
+*** 31,36 ****
+--- 31,38 ----
+ int cmdattr; /* attributes for prompt */
+ int overstrike; /* Typing mode on the command line. Shared by
+ getcmdline() and put_on_cmdline(). */
++ expand_T *xpc; /* struct being used for expansion, xp_pattern
++ may point into cmdbuff */
+ int xp_context; /* type of expansion */
+ # ifdef FEAT_EVAL
+ char_u *xp_arg; /* user-defined expansion arg */
+***************
+*** 38,44 ****
+ # endif
+ };
+
+! static struct cmdline_info ccline; /* current cmdline_info */
+
+ static int cmd_showtail; /* Only show path tail in lists ? */
+
+--- 40,50 ----
+ # endif
+ };
+
+! /* The current cmdline_info. It is initialized in getcmdline() and after that
+! * used by other functions. When invoking getcmdline() recursively it needs
+! * to be saved with save_cmdline() and restored with restore_cmdline().
+! * TODO: make it local to getcmdline() and pass it around. */
+! static struct cmdline_info ccline;
+
+ static int cmd_showtail; /* Only show path tail in lists ? */
+
+***************
+*** 238,243 ****
+--- 244,250 ----
+ }
+
+ ExpandInit(&xpc);
++ ccline.xpc = &xpc;
+
+ #ifdef FEAT_RIGHTLEFT
+ if (curwin->w_p_rl && *curwin->w_p_rlc == 's'
+***************
+*** 408,416 ****
+ #endif
+
+ /*
+! * <S-Tab> works like CTRL-P (unless 'wc' is <S-Tab>).
+ */
+! if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles != -1)
+ c = Ctrl_P;
+
+ #ifdef FEAT_WILDMENU
+--- 415,424 ----
+ #endif
+
+ /*
+! * When there are matching completions to select <S-Tab> works like
+! * CTRL-P (unless 'wc' is <S-Tab>).
+ */
+! if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles > 0)
+ c = Ctrl_P;
+
+ #ifdef FEAT_WILDMENU
+***************
+*** 1513,1518 ****
+--- 1521,1527 ----
+ int old_firstc;
+
+ vim_free(ccline.cmdbuff);
++ xpc.xp_context = EXPAND_NOTHING;
+ if (hiscnt == hislen)
+ p = lookfor; /* back to the old one */
+ else
+***************
+*** 1839,1844 ****
+--- 1848,1854 ----
+ #endif
+
+ ExpandCleanup(&xpc);
++ ccline.xpc = NULL;
+
+ #ifdef FEAT_SEARCH_EXTRA
+ if (did_incsearch)
+***************
+*** 2508,2513 ****
+--- 2518,2537 ----
+ }
+ mch_memmove(ccline.cmdbuff, p, (size_t)ccline.cmdlen + 1);
+ vim_free(p);
++
++ if (ccline.xpc != NULL
++ && ccline.xpc->xp_pattern != NULL
++ && ccline.xpc->xp_context != EXPAND_NOTHING
++ && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL)
++ {
++ int i = ccline.xpc->xp_pattern - p;
++
++ /* If xp_pattern points inside the old cmdbuff it needs to be adjusted
++ * to point into the newly allocated memory. */
++ if (i >= 0 && i <= ccline.cmdlen)
++ ccline.xpc->xp_pattern = ccline.cmdbuff + i;
++ }
++
+ return OK;
+ }
+
+***************
+*** 2875,2880 ****
+--- 2899,2905 ----
+ prev_ccline = ccline;
+ ccline.cmdbuff = NULL;
+ ccline.cmdprompt = NULL;
++ ccline.xpc = NULL;
+ }
+
+ /*
+***************
+*** 3582,3587 ****
+--- 3607,3613 ----
+ ExpandInit(xp)
+ expand_T *xp;
+ {
++ xp->xp_pattern = NULL;
+ xp->xp_backslash = XP_BS_NONE;
+ #ifndef BACKSLASH_IN_FILENAME
+ xp->xp_shell = FALSE;
+*** ../vim-7.2.015/src/version.c Wed Sep 10 18:25:18 2008
+--- src/version.c Sun Sep 14 14:38:47 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 16,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+53. To find out what time it is, you send yourself an e-mail and check the
+ "Date:" field.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.017 b/data/vim/patches/7.2.017
new file mode 100644
index 000000000..99979a152
--- /dev/null
+++ b/data/vim/patches/7.2.017
@@ -0,0 +1,162 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.017
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.017
+Problem: strlen() used on text that may not end in a NUL. (Dominique Pelle)
+ Pasting a very big selection doesn't work.
+Solution: Use the length passed to the XtSelectionCallbackProc() function.
+ After getting the SelectionNotify event continue dispatching
+ events until the callback is actually called. Also dispatch the
+ PropertyNotify event.
+Files: src/ui.c
+
+
+*** ../vim-7.2.016/src/ui.c Sun Sep 7 21:47:51 2008
+--- src/ui.c Sun Sep 14 15:52:19 2008
+***************
+*** 2020,2026 ****
+
+ if (value == NULL || *length == 0)
+ {
+! clip_free_selection(cbd); /* ??? [what's the query?] */
+ *(int *)success = FALSE;
+ return;
+ }
+--- 2020,2026 ----
+
+ if (value == NULL || *length == 0)
+ {
+! clip_free_selection(cbd); /* nothing received, clear register */
+ *(int *)success = FALSE;
+ return;
+ }
+***************
+*** 2076,2082 ****
+ text_prop.value = (unsigned char *)value;
+ text_prop.encoding = *type;
+ text_prop.format = *format;
+! text_prop.nitems = STRLEN(value);
+ status = XmbTextPropertyToTextList(X_DISPLAY, &text_prop,
+ &text_list, &n_text);
+ if (status != Success || n_text < 1)
+--- 2076,2082 ----
+ text_prop.value = (unsigned char *)value;
+ text_prop.encoding = *type;
+ text_prop.format = *format;
+! text_prop.nitems = len;
+ status = XmbTextPropertyToTextList(X_DISPLAY, &text_prop,
+ &text_list, &n_text);
+ if (status != Success || n_text < 1)
+***************
+*** 2131,2137 ****
+ case 3: type = text_atom; break;
+ default: type = XA_STRING;
+ }
+! success = FALSE;
+ XtGetSelectionValue(myShell, cbd->sel_atom, type,
+ clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
+
+--- 2131,2137 ----
+ case 3: type = text_atom; break;
+ default: type = XA_STRING;
+ }
+! success = MAYBE;
+ XtGetSelectionValue(myShell, cbd->sel_atom, type,
+ clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
+
+***************
+*** 2145,2169 ****
+ * paste! Don't worry, we will catch up with any other events later.
+ */
+ start_time = time(NULL);
+! for (;;)
+ {
+! if (XCheckTypedEvent(dpy, SelectionNotify, &event))
+ {
+! /* this is where clip_x11_request_selection_cb() is actually
+! * called */
+ XtDispatchEvent(&event);
+! break;
+ }
+- if (XCheckTypedEvent(dpy, SelectionRequest, &event))
+- /* We may get a SelectionRequest here and if we don't handle
+- * it we hang. KDE klipper does this, for example. */
+- XtDispatchEvent(&event);
+
+ /* Time out after 2 to 3 seconds to avoid that we hang when the
+ * other process doesn't respond. Note that the SelectionNotify
+ * event may still come later when the selection owner comes back
+! * to life and the text gets inserted unexpectedly (by xterm).
+! * Don't know how to avoid that :-(. */
+ if (time(NULL) > start_time + 2)
+ {
+ timed_out = TRUE;
+--- 2145,2171 ----
+ * paste! Don't worry, we will catch up with any other events later.
+ */
+ start_time = time(NULL);
+! while (success == MAYBE)
+ {
+! if (XCheckTypedEvent(dpy, SelectionNotify, &event)
+! || XCheckTypedEvent(dpy, SelectionRequest, &event)
+! || XCheckTypedEvent(dpy, PropertyNotify, &event))
+ {
+! /* This is where clip_x11_request_selection_cb() should be
+! * called. It may actually happen a bit later, so we loop
+! * until "success" changes.
+! * We may get a SelectionRequest here and if we don't handle
+! * it we hang. KDE klipper does this, for example.
+! * We need to handle a PropertyNotify for large selections. */
+ XtDispatchEvent(&event);
+! continue;
+ }
+
+ /* Time out after 2 to 3 seconds to avoid that we hang when the
+ * other process doesn't respond. Note that the SelectionNotify
+ * event may still come later when the selection owner comes back
+! * to life and the text gets inserted unexpectedly. Don't know
+! * why that happens or how to avoid that :-(. */
+ if (time(NULL) > start_time + 2)
+ {
+ timed_out = TRUE;
+***************
+*** 2177,2183 ****
+ ui_delay(1L, TRUE);
+ }
+
+! if (success)
+ return;
+
+ /* don't do a retry with another type after timing out, otherwise we
+--- 2179,2185 ----
+ ui_delay(1L, TRUE);
+ }
+
+! if (success == TRUE)
+ return;
+
+ /* don't do a retry with another type after timing out, otherwise we
+*** ../vim-7.2.016/src/version.c Sun Sep 14 14:41:44 2008
+--- src/version.c Sun Sep 14 15:55:34 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 17,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+54. You start tilting your head sideways to smile. :-)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.018 b/data/vim/patches/7.2.018
new file mode 100644
index 000000000..b195f09dc
--- /dev/null
+++ b/data/vim/patches/7.2.018
@@ -0,0 +1,45 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.018
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.018
+Problem: Memory leak when substitute is aborted.
+Solution: Free the buffer allocated for the new text. (Dominique Pelle)
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.2.017/src/ex_cmds.c Wed Aug 6 15:03:07 2008
+--- src/ex_cmds.c Sun Sep 14 13:45:03 2008
+***************
+*** 5059,5064 ****
+--- 5059,5065 ----
+
+ if (did_sub)
+ ++sub_nlines;
++ vim_free(new_start); /* for when substitute was cancelled */
+ vim_free(sub_firstline); /* free the copy of the original line */
+ sub_firstline = NULL;
+ }
+*** ../vim-7.2.017/src/version.c Sun Sep 14 15:57:54 2008
+--- src/version.c Sun Sep 14 21:38:25 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 18,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+55. You ask your doctor to implant a gig in your brain.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.019 b/data/vim/patches/7.2.019
new file mode 100644
index 000000000..4404bca4f
--- /dev/null
+++ b/data/vim/patches/7.2.019
@@ -0,0 +1,65 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.019
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.019
+Problem: Completion of ":noautocmd" doesn't work and exists(":noautocmd")
+ returns zero. (Ben Fritz)
+Solution: Add "noautocmd" to the list of modifiers and commands.
+Files: src/ex_cmds.h, src/ex_docmd.c
+
+
+*** ../vim-7.2.018/src/ex_cmds.h Wed Jun 25 00:44:40 2008
+--- src/ex_cmds.h Sat Sep 13 18:37:25 2008
+***************
+*** 635,640 ****
+--- 635,642 ----
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_noremap, "noremap", ex_map,
+ BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
++ EX(CMD_noautocmd, "noautocmd", ex_wrongmodifier,
++ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_nohlsearch, "nohlsearch", ex_nohlsearch,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_noreabbrev, "noreabbrev", ex_abbreviate,
+*** ../vim-7.2.018/src/ex_docmd.c Sat Jul 26 16:04:39 2008
+--- src/ex_docmd.c Mon Sep 15 20:04:53 2008
+***************
+*** 2978,2983 ****
+--- 2979,2985 ----
+ {"keepmarks", 3, FALSE},
+ {"leftabove", 5, FALSE},
+ {"lockmarks", 3, FALSE},
++ {"noautocmd", 3, FALSE},
+ {"rightbelow", 6, FALSE},
+ {"sandbox", 3, FALSE},
+ {"silent", 3, FALSE},
+*** ../vim-7.2.018/src/version.c Sun Sep 14 21:40:26 2008
+--- src/version.c Thu Sep 18 12:39:56 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 19,
+ /**/
+
+--
+Proof techniques #2: Proof by Oddity.
+ SAMPLE: To prove that horses have an infinite number of legs.
+(1) Horses have an even number of legs.
+(2) They have two legs in back and fore legs in front.
+(3) This makes a total of six legs, which certainly is an odd number of
+ legs for a horse.
+(4) But the only number that is both odd and even is infinity.
+(5) Therefore, horses must have an infinite number of legs.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.020 b/data/vim/patches/7.2.020
new file mode 100644
index 000000000..fb290407f
--- /dev/null
+++ b/data/vim/patches/7.2.020
@@ -0,0 +1,54 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.020
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.020
+Problem: Starting the GUI when the executable starts with 'k', but the KDE
+ version no longer exists.
+Solution: Don't have "kvim" start the GUI.
+Files: src/main.c
+
+
+*** ../vim-7.2.019/src/main.c Thu Jul 24 19:34:23 2008
+--- src/main.c Sun Sep 14 13:26:10 2008
+***************
+*** 1457,1463 ****
+ ++initstr;
+ }
+
+! if (TOLOWER_ASC(initstr[0]) == 'g' || initstr[0] == 'k')
+ {
+ main_start_gui();
+ #ifdef FEAT_GUI
+--- 1458,1465 ----
+ ++initstr;
+ }
+
+! /* "gvim" starts the GUI. Also accept "Gvim" for MS-Windows. */
+! if (TOLOWER_ASC(initstr[0]) == 'g')
+ {
+ main_start_gui();
+ #ifdef FEAT_GUI
+*** ../vim-7.2.019/src/version.c Thu Sep 18 12:43:21 2008
+--- src/version.c Thu Sep 18 20:54:10 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 20,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+90. Instead of calling you to dinner, your spouse sends e-mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.021 b/data/vim/patches/7.2.021
new file mode 100644
index 000000000..fee0bd85c
--- /dev/null
+++ b/data/vim/patches/7.2.021
@@ -0,0 +1,147 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.021
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.021
+Problem: When executing autocommands getting the full file name may be
+ slow. (David Kotchan)
+Solution: Postpone calling FullName_save() until autocmd_fname is used.
+Files: src/ex_docmd.c, src/fileio.c, src/globals.h
+
+
+*** ../vim-7.2.020/src/ex_docmd.c Thu Sep 18 12:43:21 2008
+--- src/ex_docmd.c Mon Sep 15 20:04:53 2008
+***************
+*** 9542,9547 ****
+--- 9569,9583 ----
+ #ifdef FEAT_AUTOCMD
+ case SPEC_AFILE: /* file name for autocommand */
+ result = autocmd_fname;
++ if (result != NULL && !autocmd_fname_full)
++ {
++ /* Still need to turn the fname into a full path. It is
++ * postponed to avoid a delay when <afile> is not used. */
++ autocmd_fname_full = TRUE;
++ result = FullName_save(autocmd_fname, FALSE);
++ vim_free(autocmd_fname);
++ autocmd_fname = result;
++ }
+ if (result == NULL)
+ {
+ *errormsg = (char_u *)_("E495: no autocommand file name to substitute for \"<afile>\"");
+*** ../vim-7.2.020/src/fileio.c Wed Aug 6 18:43:07 2008
+--- src/fileio.c Tue Sep 16 21:24:26 2008
+***************
+*** 8523,8528 ****
+--- 8523,8529 ----
+ char_u *save_sourcing_name;
+ linenr_T save_sourcing_lnum;
+ char_u *save_autocmd_fname;
++ int save_autocmd_fname_full;
+ int save_autocmd_bufnr;
+ char_u *save_autocmd_match;
+ int save_autocmd_busy;
+***************
+*** 8601,8606 ****
+--- 8602,8608 ----
+ * Save the autocmd_* variables and info about the current buffer.
+ */
+ save_autocmd_fname = autocmd_fname;
++ save_autocmd_fname_full = autocmd_fname_full;
+ save_autocmd_bufnr = autocmd_bufnr;
+ save_autocmd_match = autocmd_match;
+ save_autocmd_busy = autocmd_busy;
+***************
+*** 8618,8631 ****
+ if (fname != NULL && *fname != NUL)
+ autocmd_fname = fname;
+ else if (buf != NULL)
+! autocmd_fname = buf->b_fname;
+ else
+ autocmd_fname = NULL;
+ }
+ else
+ autocmd_fname = fname_io;
+ if (autocmd_fname != NULL)
+! autocmd_fname = FullName_save(autocmd_fname, FALSE);
+
+ /*
+ * Set the buffer number to be used for <abuf>.
+--- 8620,8634 ----
+ if (fname != NULL && *fname != NUL)
+ autocmd_fname = fname;
+ else if (buf != NULL)
+! autocmd_fname = buf->b_ffname;
+ else
+ autocmd_fname = NULL;
+ }
+ else
+ autocmd_fname = fname_io;
+ if (autocmd_fname != NULL)
+! autocmd_fname = vim_strsave(autocmd_fname);
+! autocmd_fname_full = FALSE; /* call FullName_save() later */
+
+ /*
+ * Set the buffer number to be used for <abuf>.
+***************
+*** 8810,8815 ****
+--- 8813,8819 ----
+ sourcing_lnum = save_sourcing_lnum;
+ vim_free(autocmd_fname);
+ autocmd_fname = save_autocmd_fname;
++ autocmd_fname_full = save_autocmd_fname_full;
+ autocmd_bufnr = save_autocmd_bufnr;
+ autocmd_match = save_autocmd_match;
+ #ifdef FEAT_EVAL
+***************
+*** 8918,8924 ****
+ {
+ apc->curpat = NULL;
+
+! /* only use a pattern when it has not been removed, has commands and
+ * the group matches. For buffer-local autocommands only check the
+ * buffer number. */
+ if (ap->pat != NULL && ap->cmds != NULL
+--- 8922,8928 ----
+ {
+ apc->curpat = NULL;
+
+! /* Only use a pattern when it has not been removed, has commands and
+ * the group matches. For buffer-local autocommands only check the
+ * buffer number. */
+ if (ap->pat != NULL && ap->cmds != NULL
+*** ../vim-7.2.020/src/globals.h Sat Jul 26 16:04:49 2008
+--- src/globals.h Mon Sep 15 19:59:28 2008
+***************
+*** 1022,1027 ****
+--- 1022,1028 ----
+ #endif
+ #ifdef FEAT_AUTOCMD
+ EXTERN char_u *autocmd_fname INIT(= NULL); /* fname for <afile> on cmdline */
++ EXTERN int autocmd_fname_full; /* autocmd_fname is full path */
+ EXTERN int autocmd_bufnr INIT(= 0); /* fnum for <abuf> on cmdline */
+ EXTERN char_u *autocmd_match INIT(= NULL); /* name for <amatch> on cmdline */
+ EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */
+*** ../vim-7.2.020/src/version.c Thu Sep 18 20:55:19 2008
+--- src/version.c Thu Sep 18 21:24:30 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 21,
+ /**/
+
+--
+From "know your smileys":
+ :----} You lie like Pinocchio
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/7.2.022 b/data/vim/patches/7.2.022
new file mode 100644
index 000000000..392773523
--- /dev/null
+++ b/data/vim/patches/7.2.022
@@ -0,0 +1,140 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.022 (extra)
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.022 (extra)
+Problem: Testing is not possible when compiling with MingW.
+Solution: Add a MingW specific test Makefile. (Bill McCarthy)
+Files: Filelist, src/testdir/Make_ming.mak
+
+
+*** ../vim-7.2.021/Filelist Sun Jul 13 19:33:31 2008
+--- Filelist Sun Sep 14 21:47:01 2008
+***************
+*** 285,290 ****
+--- 285,291 ----
+ src/proto/os_win32.pro \
+ src/proto/os_mswin.pro \
+ src/testdir/Make_dos.mak \
++ src/testdir/Make_ming.mak \
+ src/testdir/dos.vim \
+ src/uninstal.c \
+ src/vim.def \
+*** ../vim-7.2.021/src/testdir/Make_ming.mak Sat Sep 20 16:25:06 2008
+--- src/testdir/Make_ming.mak Sat Sep 20 16:25:58 2008
+***************
+*** 0 ****
+--- 1,91 ----
++ # Makefile to run tests for Vim, on Dos-like machines
++ # with sh.exe or zsh.exe in the path or not.
++ #
++ # Author: Bill McCarthy
++ #
++ # Note that test54 has been removed until it is fixed.
++ #
++ # Requires a set of Unix tools: echo, diff, etc.
++
++ ifneq (sh.exe, $(SHELL))
++ DEL = rm -f
++ MV = mv
++ CP = cp
++ DIRSLASH = /
++ else
++ DEL = del
++ MV = rename
++ CP = copy
++ DIRSLASH = \\
++ endif
++
++ VIMPROG = ..$(DIRSLASH)vim
++
++ # Omitted:
++ # test2 "\\tmp" doesn't work.
++ # test10 'errorformat' is different
++ # test12 can't unlink a swap file
++ # test25 uses symbolic link
++ # test27 can't edit file with "*" in file name
++ # test31 16 bit version runs out of memory...
++
++ SCRIPTS16 = test1.out test19.out test20.out test22.out \
++ test23.out test24.out test28.out test29.out \
++ test35.out test36.out test43.out \
++ test44.out test45.out test46.out test47.out \
++ test48.out test51.out test53.out \
++ test55.out test56.out test57.out test58.out test59.out \
++ test60.out test61.out test62.out test63.out test64.out
++
++ # Had to remove test54 which doesn't work yet.
++ # test54.out
++
++ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
++ test8.out test9.out test11.out test13.out test14.out \
++ test15.out test17.out test18.out test21.out test26.out \
++ test30.out test31.out test32.out test33.out test34.out \
++ test37.out test38.out test39.out test40.out test41.out \
++ test42.out test52.out test65.out
++
++ SCRIPTS32 = test50.out
++
++ SCRIPTS_GUI = test16.out
++
++ .SUFFIXES: .in .out
++
++ vimall: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS32)
++ echo ALL DONE
++
++ nongui: fixff $(SCRIPTS16) $(SCRIPTS)
++ echo ALL DONE
++
++ small:
++ echo ALL DONE
++
++ gui: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI)
++ echo ALL DONE
++
++ win32: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32)
++ echo ALL DONE
++
++ fixff:
++ -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
++
++ clean:
++ -$(DEL) *.out
++ -$(DEL) test.ok
++ -$(DEL) small.vim
++ -$(DEL) tiny.vim
++ -$(DEL) mbyte.vim
++ -$(DEL) X*
++ -$(DEL) viminfo
++
++ .in.out:
++ $(CP) $*.ok test.ok
++ $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in
++ diff test.out $*.ok
++ -$(DEL) $*.out
++ $(MV) test.out $*.out
++ -$(DEL) X*
++ -$(DEL) test.ok
++ -$(DEL) viminfo
+*** ../vim-7.2.021/src/version.c Thu Sep 18 21:29:07 2008
+--- src/version.c Sat Sep 20 16:25:16 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 22,
+ /**/
+
+--
+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/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///