summaryrefslogtreecommitdiff
path: root/source/ap/vim/patches
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2010-05-19 08:58:23 +0000
committerEric Hameleers <alien@slackware.com>2018-05-31 22:43:05 +0200
commitb76270bf9e6dd375e495fec92140a79a79415d27 (patch)
tree3dbed78b2279bf9f14207a16dc634b90995cbd40 /source/ap/vim/patches
parent5a12e7c134274dba706667107d10d231517d3e05 (diff)
downloadcurrent-b76270bf9e6dd375e495fec92140a79a79415d27.tar.gz
Slackware 13.1slackware-13.1
Wed May 19 08:58:23 UTC 2010 Slackware 13.1 x86_64 stable is released! Lots of thanks are due -- see the RELEASE_NOTES and the rest of the ChangeLog for credits. The ISOs are on their way to replication, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. We are taking pre-orders now at store.slackware.com, and offering a discount if you sign up for a subscription. Consider picking up a copy to help support the project. Thanks again to the Slackware community for testing, contributing, and generally holding us to a high level of quality. :-) Enjoy!
Diffstat (limited to 'source/ap/vim/patches')
-rw-r--r--source/ap/vim/patches/7.2.24653
-rw-r--r--source/ap/vim/patches/7.2.24786
-rw-r--r--source/ap/vim/patches/7.2.248158
-rw-r--r--source/ap/vim/patches/7.2.24947
-rw-r--r--source/ap/vim/patches/7.2.25055
-rw-r--r--source/ap/vim/patches/7.2.25171
-rw-r--r--source/ap/vim/patches/7.2.25251
-rw-r--r--source/ap/vim/patches/7.2.253143
-rw-r--r--source/ap/vim/patches/7.2.25452
-rw-r--r--source/ap/vim/patches/7.2.25571
-rw-r--r--source/ap/vim/patches/7.2.25659
-rw-r--r--source/ap/vim/patches/7.2.25761
-rw-r--r--source/ap/vim/patches/7.2.25874
-rw-r--r--source/ap/vim/patches/7.2.259160
-rw-r--r--source/ap/vim/patches/7.2.260155
-rw-r--r--source/ap/vim/patches/7.2.26183
-rw-r--r--source/ap/vim/patches/7.2.262189
-rw-r--r--source/ap/vim/patches/7.2.26387
-rw-r--r--source/ap/vim/patches/7.2.264168
-rw-r--r--source/ap/vim/patches/7.2.26556
-rw-r--r--source/ap/vim/patches/7.2.266244
-rw-r--r--source/ap/vim/patches/7.2.26747
-rw-r--r--source/ap/vim/patches/7.2.26880
-rw-r--r--source/ap/vim/patches/7.2.269261
-rw-r--r--source/ap/vim/patches/7.2.27072
-rw-r--r--source/ap/vim/patches/7.2.27192
-rw-r--r--source/ap/vim/patches/7.2.27282
-rw-r--r--source/ap/vim/patches/7.2.273130
-rw-r--r--source/ap/vim/patches/7.2.274130
-rw-r--r--source/ap/vim/patches/7.2.27595
-rw-r--r--source/ap/vim/patches/7.2.27663
-rw-r--r--source/ap/vim/patches/7.2.27766
-rw-r--r--source/ap/vim/patches/7.2.27874
-rw-r--r--source/ap/vim/patches/7.2.279120
-rw-r--r--source/ap/vim/patches/7.2.280251
-rw-r--r--source/ap/vim/patches/7.2.28181
-rw-r--r--source/ap/vim/patches/7.2.28247
-rw-r--r--source/ap/vim/patches/7.2.28373
-rw-r--r--source/ap/vim/patches/7.2.28452
-rw-r--r--source/ap/vim/patches/7.2.28556
-rw-r--r--source/ap/vim/patches/7.2.286227
-rw-r--r--source/ap/vim/patches/7.2.28754
-rw-r--r--source/ap/vim/patches/7.2.28852
-rw-r--r--source/ap/vim/patches/7.2.289120
-rw-r--r--source/ap/vim/patches/7.2.290157
-rw-r--r--source/ap/vim/patches/7.2.29153
-rw-r--r--source/ap/vim/patches/7.2.29255
-rw-r--r--source/ap/vim/patches/7.2.29366
-rw-r--r--source/ap/vim/patches/7.2.294285
-rw-r--r--source/ap/vim/patches/7.2.295142
-rw-r--r--source/ap/vim/patches/7.2.29653
-rw-r--r--source/ap/vim/patches/7.2.29770
-rw-r--r--source/ap/vim/patches/7.2.29848
-rw-r--r--source/ap/vim/patches/7.2.29954
-rw-r--r--source/ap/vim/patches/7.2.300201
-rw-r--r--source/ap/vim/patches/7.2.301777
-rw-r--r--source/ap/vim/patches/7.2.302140
-rw-r--r--source/ap/vim/patches/7.2.30370
-rw-r--r--source/ap/vim/patches/7.2.30458
-rw-r--r--source/ap/vim/patches/7.2.305105
-rw-r--r--source/ap/vim/patches/7.2.30648
-rw-r--r--source/ap/vim/patches/7.2.307181
-rw-r--r--source/ap/vim/patches/7.2.308182
-rw-r--r--source/ap/vim/patches/7.2.30948
-rw-r--r--source/ap/vim/patches/7.2.31063
-rw-r--r--source/ap/vim/patches/7.2.31152
-rw-r--r--source/ap/vim/patches/7.2.312312
-rw-r--r--source/ap/vim/patches/7.2.313117
-rw-r--r--source/ap/vim/patches/7.2.31456
-rw-r--r--source/ap/vim/patches/7.2.315134
-rw-r--r--source/ap/vim/patches/7.2.31683
-rw-r--r--source/ap/vim/patches/7.2.317148
-rw-r--r--source/ap/vim/patches/7.2.31891
-rw-r--r--source/ap/vim/patches/7.2.31963
-rw-r--r--source/ap/vim/patches/7.2.320199
-rw-r--r--source/ap/vim/patches/7.2.32159
-rw-r--r--source/ap/vim/patches/7.2.32249
-rw-r--r--source/ap/vim/patches/7.2.32395
-rw-r--r--source/ap/vim/patches/7.2.32466
-rw-r--r--source/ap/vim/patches/7.2.32552
-rw-r--r--source/ap/vim/patches/7.2.32654
-rw-r--r--source/ap/vim/patches/7.2.327323
-rw-r--r--source/ap/vim/patches/7.2.32852
-rw-r--r--source/ap/vim/patches/7.2.32948
-rw-r--r--source/ap/vim/patches/7.2.3301531
-rw-r--r--source/ap/vim/patches/7.2.33147
-rw-r--r--source/ap/vim/patches/7.2.332101
-rw-r--r--source/ap/vim/patches/7.2.333371
-rw-r--r--source/ap/vim/patches/7.2.334347
-rw-r--r--source/ap/vim/patches/7.2.335103
-rw-r--r--source/ap/vim/patches/7.2.336841
-rw-r--r--source/ap/vim/patches/7.2.337112
-rw-r--r--source/ap/vim/patches/7.2.338129
-rw-r--r--source/ap/vim/patches/7.2.33978
-rw-r--r--source/ap/vim/patches/7.2.34054
-rw-r--r--source/ap/vim/patches/7.2.34169
-rw-r--r--source/ap/vim/patches/7.2.34295
-rw-r--r--source/ap/vim/patches/7.2.34351
-rw-r--r--source/ap/vim/patches/7.2.34460
-rw-r--r--source/ap/vim/patches/7.2.34547
-rw-r--r--source/ap/vim/patches/7.2.346110
-rw-r--r--source/ap/vim/patches/7.2.347138
-rw-r--r--source/ap/vim/patches/7.2.348254
-rw-r--r--source/ap/vim/patches/7.2.34953
-rw-r--r--source/ap/vim/patches/7.2.35086
-rw-r--r--source/ap/vim/patches/7.2.35178
-rw-r--r--source/ap/vim/patches/7.2.35262
-rw-r--r--source/ap/vim/patches/7.2.353173
-rw-r--r--source/ap/vim/patches/7.2.35478
-rw-r--r--source/ap/vim/patches/7.2.35588
-rw-r--r--source/ap/vim/patches/7.2.35669
-rw-r--r--source/ap/vim/patches/7.2.35749
-rw-r--r--source/ap/vim/patches/7.2.35878
-rw-r--r--source/ap/vim/patches/7.2.35968
-rw-r--r--source/ap/vim/patches/7.2.36096
-rw-r--r--source/ap/vim/patches/7.2.361763
-rw-r--r--source/ap/vim/patches/7.2.36295
-rw-r--r--source/ap/vim/patches/7.2.36370
-rw-r--r--source/ap/vim/patches/7.2.36491
-rw-r--r--source/ap/vim/patches/7.2.36571
-rw-r--r--source/ap/vim/patches/7.2.366134
-rw-r--r--source/ap/vim/patches/7.2.36777
-rw-r--r--source/ap/vim/patches/7.2.36852
-rw-r--r--source/ap/vim/patches/7.2.36955
-rw-r--r--source/ap/vim/patches/7.2.370156
-rw-r--r--source/ap/vim/patches/7.2.371322
-rw-r--r--source/ap/vim/patches/7.2.372303
-rw-r--r--source/ap/vim/patches/7.2.37354
-rw-r--r--source/ap/vim/patches/7.2.374168
-rw-r--r--source/ap/vim/patches/7.2.37564
-rw-r--r--source/ap/vim/patches/7.2.37650
-rw-r--r--source/ap/vim/patches/7.2.37766
-rw-r--r--source/ap/vim/patches/7.2.37869
-rw-r--r--source/ap/vim/patches/7.2.37955
-rw-r--r--source/ap/vim/patches/7.2.380104
-rw-r--r--source/ap/vim/patches/7.2.381218
-rw-r--r--source/ap/vim/patches/7.2.38258
-rw-r--r--source/ap/vim/patches/7.2.383101
-rw-r--r--source/ap/vim/patches/7.2.38459
-rw-r--r--source/ap/vim/patches/7.2.38563
-rw-r--r--source/ap/vim/patches/7.2.38661
-rw-r--r--source/ap/vim/patches/7.2.387238
-rw-r--r--source/ap/vim/patches/7.2.38886
-rw-r--r--source/ap/vim/patches/7.2.389161
-rw-r--r--source/ap/vim/patches/7.2.39072
-rw-r--r--source/ap/vim/patches/7.2.391121
-rw-r--r--source/ap/vim/patches/7.2.392184
-rw-r--r--source/ap/vim/patches/7.2.393281
-rw-r--r--source/ap/vim/patches/7.2.39499
-rw-r--r--source/ap/vim/patches/7.2.39560
-rw-r--r--source/ap/vim/patches/7.2.39651
-rw-r--r--source/ap/vim/patches/7.2.39767
-rw-r--r--source/ap/vim/patches/7.2.398152
-rw-r--r--source/ap/vim/patches/7.2.39963
-rw-r--r--source/ap/vim/patches/7.2.400454
-rw-r--r--source/ap/vim/patches/7.2.40161
-rw-r--r--source/ap/vim/patches/7.2.40291
-rw-r--r--source/ap/vim/patches/7.2.40353
-rw-r--r--source/ap/vim/patches/7.2.40454
-rw-r--r--source/ap/vim/patches/7.2.40548
-rw-r--r--source/ap/vim/patches/7.2.406123
-rw-r--r--source/ap/vim/patches/7.2.40769
-rw-r--r--source/ap/vim/patches/7.2.40873
-rw-r--r--source/ap/vim/patches/7.2.40960
-rw-r--r--source/ap/vim/patches/7.2.41078
-rw-r--r--source/ap/vim/patches/7.2.41147
-rw-r--r--source/ap/vim/patches/7.2.41285
-rw-r--r--source/ap/vim/patches/7.2.413452
-rw-r--r--source/ap/vim/patches/7.2.41493
-rw-r--r--source/ap/vim/patches/7.2.41569
-rw-r--r--source/ap/vim/patches/7.2.41669
171 files changed, 21866 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.2.246 b/source/ap/vim/patches/7.2.246
new file mode 100644
index 00000000..5b1c9786
--- /dev/null
+++ b/source/ap/vim/patches/7.2.246
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.246
+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.2.246
+Problem: Cscope home page link is wrong.
+Solution: Update the URL. (Sergey Khorev)
+Files: runtime/doc/if_cscop.txt
+
+
+*** ../vim-7.2.245/runtime/doc/if_cscop.txt 2009-07-09 21:22:36.000000000 +0200
+--- runtime/doc/if_cscop.txt 2009-09-11 11:19:31.000000000 +0200
+***************
+*** 481,487 ****
+ any problems, suggestions, patches, et al., you have for the usage of
+ cscope within Vim to him.
+ *cscope-win32*
+! For a cscope version for Win32 see: http://iamphet.nm.ru/cscope/index.html
+
+ Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
+ him if you have Win32-specific issues.
+--- 481,488 ----
+ any problems, suggestions, patches, et al., you have for the usage of
+ cscope within Vim to him.
+ *cscope-win32*
+! For a cscope version for Win32 see:
+! http://code.google.com/p/cscope-win32/
+
+ Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
+ him if you have Win32-specific issues.
+*** ../vim-7.2.245/src/version.c 2009-07-29 18:24:59.000000000 +0200
+--- src/version.c 2009-09-11 11:29:02.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 246,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+221. Your wife melts your keyboard in the oven.
+
+ /// 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/source/ap/vim/patches/7.2.247 b/source/ap/vim/patches/7.2.247
new file mode 100644
index 00000000..e18926d9
--- /dev/null
+++ b/source/ap/vim/patches/7.2.247
@@ -0,0 +1,86 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.247
+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.2.247
+Problem: Mzscheme interface minor problem.
+Solution: Better error message when build fails. (Sergey Khorev)
+Files: src/if_mzsch.c
+
+
+*** ../vim-7.2.246/src/if_mzsch.c 2009-07-09 20:06:30.000000000 +0200
+--- src/if_mzsch.c 2009-09-11 11:20:39.000000000 +0200
+***************
+*** 635,642 ****
+ #endif /* DYNAMIC_MZSCHEME */
+
+ /* need to put it here for dynamic stuff to work */
+! #ifdef INCLUDE_MZSCHEME_BASE
+ # include "mzscheme_base.c"
+ #endif
+
+ /*
+--- 635,644 ----
+ #endif /* DYNAMIC_MZSCHEME */
+
+ /* need to put it here for dynamic stuff to work */
+! #if defined(INCLUDE_MZSCHEME_BASE)
+ # include "mzscheme_base.c"
++ #elif MZSCHEME_VERSION_MAJOR >= 400
++ # error MzScheme 4.x must include mzscheme_base.c, for MinGW32 you need to define MZSCHEME_GENERATE_BASE=yes
+ #endif
+
+ /*
+***************
+*** 875,888 ****
+ #ifdef INCLUDE_MZSCHEME_BASE
+ {
+ /*
+! * versions 4.x do not provide Scheme bindings by defaults
+ * we need to add them explicitly
+ */
+ Scheme_Object *scheme_base_symbol = NULL;
+ MZ_GC_DECL_REG(1);
+ MZ_GC_VAR_IN_REG(0, scheme_base_symbol);
+ MZ_GC_REG();
+! /* invoke function from generated and included base.c */
+ declare_modules(environment);
+ scheme_base_symbol = scheme_intern_symbol("scheme/base");
+ MZ_GC_CHECK();
+--- 877,890 ----
+ #ifdef INCLUDE_MZSCHEME_BASE
+ {
+ /*
+! * versions 4.x do not provide Scheme bindings by default
+ * we need to add them explicitly
+ */
+ Scheme_Object *scheme_base_symbol = NULL;
+ MZ_GC_DECL_REG(1);
+ MZ_GC_VAR_IN_REG(0, scheme_base_symbol);
+ MZ_GC_REG();
+! /* invoke function from generated and included mzscheme_base.c */
+ declare_modules(environment);
+ scheme_base_symbol = scheme_intern_symbol("scheme/base");
+ MZ_GC_CHECK();
+*** ../vim-7.2.246/src/version.c 2009-09-11 11:30:12.000000000 +0200
+--- src/version.c 2009-09-11 11:53:59.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 247,
+ /**/
+
+--
+Your fault: core dumped
+
+ /// 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/source/ap/vim/patches/7.2.248 b/source/ap/vim/patches/7.2.248
new file mode 100644
index 00000000..2254101e
--- /dev/null
+++ b/source/ap/vim/patches/7.2.248
@@ -0,0 +1,158 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.248 (extra)
+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.2.248 (extra)
+Problem: Mzscheme interface building minor problems.
+Solution: Update Win32 makefiles. (Sergey Khorev)
+Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak
+
+
+*** ../vim-7.2.247/src/Make_cyg.mak 2007-09-30 22:28:48.000000000 +0200
+--- src/Make_cyg.mak 2009-09-11 11:23:23.000000000 +0200
+***************
+*** 212,224 ****
+ MZSCHEME_VER = 209_000
+ endif
+
+ ifeq (yes, $(DYNAMIC_MZSCHEME))
+ DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
+ else
+ ifndef MZSCHEME_DLLS
+ MZSCHEME_DLLS = $(MZSCHEME)
+ endif
+! EXTRA_LIBS += -L$(MZSCHEME_DLLS) -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
+ endif
+ endif
+
+--- 212,245 ----
+ MZSCHEME_VER = 209_000
+ endif
+
++ ifndef MZSCHEME_PRECISE_GC
++ MZSCHEME_PRECISE_GC=no
++ endif
++
++ # for version 4.x we need to generate byte-code for Scheme base
++ ifndef MZSCHEME_GENERATE_BASE
++ MZSCHEME_GENERATE_BASE=no
++ endif
++
+ ifeq (yes, $(DYNAMIC_MZSCHEME))
+ DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
+ else
+ ifndef MZSCHEME_DLLS
+ MZSCHEME_DLLS = $(MZSCHEME)
+ endif
+! ifeq (yes,$(MZSCHEME_PRECISE_GC))
+! MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
+! else
+! MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
+! endif
+! EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB)
+! endif
+! ifeq (yes,$(MZSCHEME_GENERATE_BASE))
+! DEFINES += -DINCLUDE_MZSCHEME_BASE
+! MZ_EXTRA_DEP += mzscheme_base.c
+! endif
+! ifeq (yes,$(MZSCHEME_PRECISE_GC))
+! DEFINES += -DMZ_PRECISE_GC
+ endif
+ endif
+
+***************
+*** 473,478 ****
+--- 494,502 ----
+ ifdef PERL
+ -$(DEL) if_perl.c
+ endif
++ ifdef MZSCHEME
++ -$(DEL) mzscheme_base.c
++ endif
+ -$(DEL) pathdef.c
+ $(MAKE) -C xxd -f Make_cyg.mak clean
+ $(MAKE) -C GvimExt -f Make_ming.mak clean
+***************
+*** 523,531 ****
+--- 547,561 ----
+ $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_DEP)
+ $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o
+
++ $(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP)
++ $(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o
++
+ $(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h
+ $(RC) $(RCFLAGS) vim.rc -o $(OUTDIR)/vimrc.o
+
++ mzscheme_base.c:
++ $(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base
++
+ pathdef.c: $(INCL)
+ ifneq (sh.exe, $(SHELL))
+ @echo creating pathdef.c
+*** ../vim-7.2.247/src/Make_ming.mak 2009-05-26 22:58:43.000000000 +0200
+--- src/Make_ming.mak 2009-09-11 11:23:28.000000000 +0200
+***************
+*** 135,141 ****
+ ifndef MZSCHEME_DLLS
+ MZSCHEME_DLLS=$(MZSCHEME)
+ endif
+! MZSCHEME_LIBDIR=-L$(MZSCHEME_DLLS)
+ endif
+
+ endif
+--- 135,141 ----
+ ifndef MZSCHEME_DLLS
+ MZSCHEME_DLLS=$(MZSCHEME)
+ endif
+! MZSCHEME_LIBDIR=-L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)\lib
+ endif
+
+ endif
+***************
+*** 563,568 ****
+--- 563,571 ----
+ ifdef PERL
+ -$(DEL) if_perl.c
+ endif
++ ifdef MZSCHEME
++ -$(DEL) mzscheme_base.c
++ endif
+ $(MAKE) -C GvimExt -f Make_ming.mak clean
+ $(MAKE) -C xxd -f Make_cyg.mak clean
+
+*** ../vim-7.2.247/src/Make_mvc.mak 2009-06-16 16:45:14.000000000 +0200
+--- src/Make_mvc.mak 2009-09-11 11:23:28.000000000 +0200
+***************
+*** 865,870 ****
+--- 865,871 ----
+ - if exist dimm_i.c del dimm_i.c
+ - if exist dimm.tlb del dimm.tlb
+ - if exist dosinst.exe del dosinst.exe
++ - if exist mzscheme_base.c del mzscheme_base.c
+ cd xxd
+ $(MAKE) /NOLOGO -f Make_mvc.mak clean
+ cd ..
+*** ../vim-7.2.247/src/version.c 2009-09-11 12:20:47.000000000 +0200
+--- src/version.c 2009-09-11 12:48:26.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 248,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+222. You send more than 20 personal e-mails a day.
+
+ /// 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/source/ap/vim/patches/7.2.249 b/source/ap/vim/patches/7.2.249
new file mode 100644
index 00000000..33169f77
--- /dev/null
+++ b/source/ap/vim/patches/7.2.249
@@ -0,0 +1,47 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.249
+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.2.249
+Problem: The script to check .po files can't handle '%' in plural forms.
+Solution: Remove "Plural-Forms:" from the checked string.
+Files: src/po/check.vim
+
+
+*** ../vim-7.2.248/src/po/check.vim 2008-06-09 14:45:38.000000000 +0200
+--- src/po/check.vim 2009-09-11 12:37:56.000000000 +0200
+***************
+*** 23,28 ****
+--- 23,31 ----
+ " remove '%', not used for formatting.
+ let idline = substitute(idline, "'%'", '', 'g')
+
++ " remove '%' used for plural forms.
++ let idline = substitute(idline, '\\nPlural-Forms: .\+;\\n', '', '')
++
+ " remove everything but % items.
+ return substitute(idline, '[^%]*\(%[-+ #''.0-9*]*l\=[dsuxXpoc%]\)\=', '\1', 'g')
+ endfunc
+*** ../vim-7.2.248/src/version.c 2009-09-11 12:48:56.000000000 +0200
+--- src/version.c 2009-09-11 12:59:18.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 249,
+ /**/
+
+--
+If evolution theories are correct, humans will soon grow a third
+hand for operating the mouse.
+
+ /// 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/source/ap/vim/patches/7.2.250 b/source/ap/vim/patches/7.2.250
new file mode 100644
index 00000000..2f30a240
--- /dev/null
+++ b/source/ap/vim/patches/7.2.250
@@ -0,0 +1,55 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.250 (extra)
+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.2.250 (extra)
+Problem: Possible buffer overflow.
+Solution: Compute the remaining space. (Dominique Pelle)
+Files: src/GvimExt/gvimext.cpp
+
+
+*** ../vim-7.2.249/src/GvimExt/gvimext.cpp 2008-07-24 20:51:11.000000000 +0200
+--- src/GvimExt/gvimext.cpp 2009-09-11 13:26:27.000000000 +0200
+***************
+*** 635,641 ****
+ }
+ // Now concatenate
+ strncpy(temp, _("Edit with existing Vim - "), BUFSIZE - 1);
+! strncat(temp, title, BUFSIZE - 1);
+ InsertMenu(hMenu,
+ indexMenu++,
+ MF_STRING|MF_BYPOSITION,
+--- 635,643 ----
+ }
+ // Now concatenate
+ strncpy(temp, _("Edit with existing Vim - "), BUFSIZE - 1);
+! temp[BUFSIZE - 1] = '\0';
+! strncat(temp, title, BUFSIZE - 1 - strlen(temp));
+! temp[BUFSIZE - 1] = '\0';
+ InsertMenu(hMenu,
+ indexMenu++,
+ MF_STRING|MF_BYPOSITION,
+*** ../vim-7.2.249/src/version.c 2009-09-11 12:59:57.000000000 +0200
+--- src/version.c 2009-09-11 13:23:45.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 250,
+ /**/
+
+
+--
+hundred-and-one symptoms of being an internet addict:
+223. You set up a web-cam as your home's security system.
+
+ /// 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/source/ap/vim/patches/7.2.251 b/source/ap/vim/patches/7.2.251
new file mode 100644
index 00000000..00cf0f0f
--- /dev/null
+++ b/source/ap/vim/patches/7.2.251
@@ -0,0 +1,71 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.251
+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.2.251 (after 7.2.044)
+Problem: Compiler adds invalid memory bounds check.
+Solution: Remove _FORTIFY_SOURCE=2 from CFLAGS. (Dominique Pelle)
+Files: src/auto/configure, src/configure.in
+
+
+*** ../vim-7.2.250/src/auto/configure 2009-07-22 11:16:54.000000000 +0200
+--- src/auto/configure 2009-08-07 14:49:52.000000000 +0200
+***************
+*** 17135,17141 ****
+ { $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5
+ $as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
+ if test "$gccmajor" -gt "3"; then
+! CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1"
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+ $as_echo "yes" >&6; }
+ else
+--- 17135,17141 ----
+ { $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5
+ $as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
+ if test "$gccmajor" -gt "3"; then
+! CFLAGS=`echo "$CFLAGS -D_FORTIFY_SOURCE=1" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g' -e 's/-D_FORTIFY_SOURCE=2//g'`
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+ $as_echo "yes" >&6; }
+ else
+*** ../vim-7.2.250/src/configure.in 2009-07-22 11:16:54.000000000 +0200
+--- src/configure.in 2009-08-07 14:49:47.000000000 +0200
+***************
+*** 3233,3239 ****
+ dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
+ AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
+ if test "$gccmajor" -gt "3"; then
+! CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1"
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+--- 3233,3239 ----
+ dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
+ AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
+ if test "$gccmajor" -gt "3"; then
+! CFLAGS=`echo "$CFLAGS -D_FORTIFY_SOURCE=1" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g' -e 's/-D_FORTIFY_SOURCE=2//g'`
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+*** ../vim-7.2.250/src/version.c 2009-09-11 13:26:38.000000000 +0200
+--- src/version.c 2009-09-11 13:43:46.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 251,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+225. You sign up for free subscriptions for all the computer magazines
+
+ /// 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/source/ap/vim/patches/7.2.252 b/source/ap/vim/patches/7.2.252
new file mode 100644
index 00000000..b7dc7022
--- /dev/null
+++ b/source/ap/vim/patches/7.2.252
@@ -0,0 +1,51 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.252
+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.2.252
+Problem: When using a multi-byte 'enc' the 'iskeyword' option cannot
+ contain characters above 128.
+Solution: Use mb_ptr2char_adv().
+Files: src/charset.c
+
+
+*** ../vim-7.2.251/src/charset.c 2009-05-14 22:19:19.000000000 +0200
+--- src/charset.c 2009-09-09 21:11:46.000000000 +0200
+***************
+*** 174,179 ****
+--- 174,184 ----
+ if (VIM_ISDIGIT(*p))
+ c = getdigits(&p);
+ else
++ #ifdef FEAT_MBYTE
++ if (has_mbyte)
++ c = mb_ptr2char_adv(&p);
++ else
++ #endif
+ c = *p++;
+ c2 = -1;
+ if (*p == '-' && p[1] != NUL)
+*** ../vim-7.2.251/src/version.c 2009-09-11 13:44:33.000000000 +0200
+--- src/version.c 2009-09-11 14:01:48.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 252,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+226. You sit down at the computer right after dinner and your spouse
+ says "See you in the morning."
+
+ /// 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/source/ap/vim/patches/7.2.253 b/source/ap/vim/patches/7.2.253
new file mode 100644
index 00000000..354d444d
--- /dev/null
+++ b/source/ap/vim/patches/7.2.253
@@ -0,0 +1,143 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.253
+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.2.253
+Problem: Netbeans interface: getLength always uses current buffer.
+Solution: Use ml_get_buf() instead of ml_get(). (Xavier de Gaye)
+Files: src/netbeans.c
+
+
+*** ../vim-7.2.252/src/netbeans.c 2009-06-24 16:49:50.000000000 +0200
+--- src/netbeans.c 2009-09-11 13:40:14.000000000 +0200
+***************
+*** 1499,1505 ****
+ return FAIL;
+ }
+ first = *pos;
+! nbdebug((" FIRST POS: line %d, col %d\n", first.lnum, first.col));
+ pos = off2pos(buf->bufp, off+count-1);
+ if (!pos)
+ {
+--- 1499,1506 ----
+ return FAIL;
+ }
+ first = *pos;
+! nbdebug((" FIRST POS: line %d, col %d\n",
+! first.lnum, first.col));
+ pos = off2pos(buf->bufp, off+count-1);
+ if (!pos)
+ {
+***************
+*** 1510,1516 ****
+ return FAIL;
+ }
+ last = *pos;
+! nbdebug((" LAST POS: line %d, col %d\n", last.lnum, last.col));
+ del_from_lnum = first.lnum;
+ del_to_lnum = last.lnum;
+ doupdate = 1;
+--- 1511,1518 ----
+ return FAIL;
+ }
+ last = *pos;
+! nbdebug((" LAST POS: line %d, col %d\n",
+! last.lnum, last.col));
+ del_from_lnum = first.lnum;
+ del_to_lnum = last.lnum;
+ doupdate = 1;
+***************
+*** 1521,1527 ****
+ next = off2pos(buf->bufp, off + count);
+
+ /* Remove part of the first line. */
+! if (first.col != 0 || (next != NULL && first.lnum == next->lnum))
+ {
+ if (first.lnum != last.lnum
+ || (next != NULL && first.lnum != next->lnum))
+--- 1523,1530 ----
+ next = off2pos(buf->bufp, off + count);
+
+ /* Remove part of the first line. */
+! if (first.col != 0
+! || (next != NULL && first.lnum == next->lnum))
+ {
+ if (first.lnum != last.lnum
+ || (next != NULL && first.lnum != next->lnum))
+***************
+*** 1584,1590 ****
+ int id = buf_findsign_id(buf->bufp, (linenr_T)i);
+ if (id > 0)
+ {
+! nbdebug((" Deleting sign %d on line %d\n", id, i));
+ buf_delsign(buf->bufp, id);
+ }
+ else
+--- 1587,1594 ----
+ int id = buf_findsign_id(buf->bufp, (linenr_T)i);
+ if (id > 0)
+ {
+! nbdebug((" Deleting sign %d on line %d\n",
+! id, i));
+ buf_delsign(buf->bufp, id);
+ }
+ else
+***************
+*** 1593,1599 ****
+ }
+ }
+
+! nbdebug((" Deleting lines %d through %d\n", del_from_lnum, del_to_lnum));
+ curwin->w_cursor.lnum = del_from_lnum;
+ curwin->w_cursor.col = 0;
+ del_lines(del_to_lnum - del_from_lnum + 1, FALSE);
+--- 1597,1604 ----
+ }
+ }
+
+! nbdebug((" Deleting lines %d through %d\n",
+! del_from_lnum, del_to_lnum));
+ curwin->w_cursor.lnum = del_from_lnum;
+ curwin->w_cursor.col = 0;
+ del_lines(del_to_lnum - del_from_lnum + 1, FALSE);
+***************
+*** 3514,3520 ****
+ eol_size = 1;
+ for (lnum = 1; lnum <= bufp->b_ml.ml_line_count; ++lnum)
+ {
+! char_count += (long)STRLEN(ml_get(lnum)) + eol_size;
+ /* Check for a CTRL-C every 100000 characters */
+ if (char_count > last_check)
+ {
+--- 3519,3526 ----
+ eol_size = 1;
+ for (lnum = 1; lnum <= bufp->b_ml.ml_line_count; ++lnum)
+ {
+! char_count += (long)STRLEN(ml_get_buf(bufp, lnum, FALSE))
+! + eol_size;
+ /* Check for a CTRL-C every 100000 characters */
+ if (char_count > last_check)
+ {
+*** ../vim-7.2.252/src/version.c 2009-09-11 14:02:25.000000000 +0200
+--- src/version.c 2009-09-11 14:18:45.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 253,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+227. You sleep next to your monitor. Or on top of it.
+
+ /// 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/source/ap/vim/patches/7.2.254 b/source/ap/vim/patches/7.2.254
new file mode 100644
index 00000000..c8c57aff
--- /dev/null
+++ b/source/ap/vim/patches/7.2.254
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.254
+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.2.254
+Problem: Compiler warning for assigning size_t to int.
+Solution: Use size_t for the variable. (George Reilly)
+Files: src/fileio.c
+
+
+*** ../vim-7.2.253/src/fileio.c 2009-07-29 18:24:59.000000000 +0200
+--- src/fileio.c 2009-09-11 13:46:19.000000000 +0200
+***************
+*** 4568,4574 ****
+ c = TRUE;
+ if (write_info.bw_conv_error_lnum != 0)
+ {
+! int l = STRLEN(IObuff);
+ vim_snprintf((char *)IObuff + l, IOSIZE - l, _(" in line %ld;"),
+ (long)write_info.bw_conv_error_lnum);
+ }
+--- 4568,4574 ----
+ c = TRUE;
+ if (write_info.bw_conv_error_lnum != 0)
+ {
+! size_t l = STRLEN(IObuff);
+ vim_snprintf((char *)IObuff + l, IOSIZE - l, _(" in line %ld;"),
+ (long)write_info.bw_conv_error_lnum);
+ }
+*** ../vim-7.2.253/src/version.c 2009-09-11 14:19:41.000000000 +0200
+--- src/version.c 2009-09-11 15:03:42.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 254,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+230. You spend your Friday nights typing away at your keyboard
+
+ /// 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/source/ap/vim/patches/7.2.255 b/source/ap/vim/patches/7.2.255
new file mode 100644
index 00000000..1bb85b15
--- /dev/null
+++ b/source/ap/vim/patches/7.2.255
@@ -0,0 +1,71 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.255
+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.2.255 (after 7.2.242)
+Problem: Setting 'rightleft', 'linebreak' and 'wrap' may cause cursor to be
+ in wrong place.
+Solution: Recompute the cursor column for these options.
+Files: src/option.c
+
+
+*** ../vim-7.2.254/src/option.c 2009-07-29 15:41:32.000000000 +0200
+--- src/option.c 2009-09-11 13:59:55.000000000 +0200
+***************
+*** 7430,7435 ****
+--- 7430,7437 ----
+ {
+ if (curwin->w_p_wrap)
+ curwin->w_leftcol = 0;
++ if (curwin->w_curswant != MAXCOL)
++ curwin->w_set_curswant = TRUE;
+ }
+
+ #ifdef FEAT_WINDOWS
+***************
+*** 7664,7669 ****
+--- 7666,7687 ----
+ }
+ #endif
+
++ #ifdef FEAT_LINEBREAK
++ if ((int *)varp == &curwin->w_p_lbr)
++ {
++ if (curwin->w_curswant != MAXCOL)
++ curwin->w_set_curswant = TRUE;
++ }
++ #endif
++
++ #ifdef FEAT_RIGHTLEFT
++ if ((int *)varp == &curwin->w_p_rl)
++ {
++ if (curwin->w_curswant != MAXCOL)
++ curwin->w_set_curswant = TRUE;
++ }
++ #endif
++
+ /*
+ * End of handling side effects for bool options.
+ */
+*** ../vim-7.2.254/src/version.c 2009-09-11 15:04:13.000000000 +0200
+--- src/version.c 2009-09-11 15:19:40.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 255,
+ /**/
+
+--
+A computer without Windows is like a fish without a bicycle.
+
+ /// 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/source/ap/vim/patches/7.2.256 b/source/ap/vim/patches/7.2.256
new file mode 100644
index 00000000..17361fbf
--- /dev/null
+++ b/source/ap/vim/patches/7.2.256
@@ -0,0 +1,59 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.256
+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.2.256
+Problem: When 'guifont' was not set GTK font dialog doesn't have a default.
+ (Andreas Metzler)
+Solution: Set default to DEFAULT_FONT. (James Vega)
+Files: src/gui_gtk_x11.c
+
+
+*** ../vim-7.2.255/src/gui_gtk_x11.c 2009-07-01 18:04:30.000000000 +0200
+--- src/gui_gtk_x11.c 2009-09-11 14:21:32.000000000 +0200
+***************
+*** 4729,4734 ****
+--- 4729,4737 ----
+ if (oldval != NULL && *oldval != NUL)
+ gtk_font_selection_dialog_set_font_name(
+ GTK_FONT_SELECTION_DIALOG(gui.fontdlg), (char *)oldval);
++ else
++ gtk_font_selection_dialog_set_font_name(
++ GTK_FONT_SELECTION_DIALOG(gui.fontdlg), DEFAULT_FONT);
+
+ if (gui.fontname)
+ {
+***************
+*** 4816,4821 ****
+--- 4819,4827 ----
+ if (oldname != oldval)
+ vim_free(oldname);
+ }
++ else
++ gtk_font_selection_dialog_set_font_name(
++ GTK_FONT_SELECTION_DIALOG(dialog), DEFAULT_FONT);
+
+ response = gtk_dialog_run(GTK_DIALOG(dialog));
+
+*** ../vim-7.2.255/src/version.c 2009-09-11 15:20:22.000000000 +0200
+--- src/version.c 2009-09-11 15:45:36.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 256,
+ /**/
+
+--
+Get a life? What is the URL where it can be downloaded?
+
+ /// 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/source/ap/vim/patches/7.2.257 b/source/ap/vim/patches/7.2.257
new file mode 100644
index 00000000..a856a3ac
--- /dev/null
+++ b/source/ap/vim/patches/7.2.257
@@ -0,0 +1,61 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.257
+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.2.257
+Problem: With GTK 2.17 lots of assertion error messages.
+Solution: Remove check for static gravity. (Sebastian Droege)
+Files: src/gui_gtk_f.c
+
+
+*** ../vim-7.2.256/src/gui_gtk_f.c 2009-05-17 23:25:16.000000000 +0200
+--- src/gui_gtk_f.c 2009-09-11 15:15:41.000000000 +0200
+***************
+*** 860,870 ****
+ gtk_form_set_static_gravity(GdkWindow *window, gboolean use_static)
+ {
+ #ifdef HAVE_GTK2
+! gboolean static_gravity_supported;
+!
+! static_gravity_supported = gdk_window_set_static_gravities(window,
+! use_static);
+! g_return_if_fail(static_gravity_supported);
+ #else
+ XSetWindowAttributes xattributes;
+
+--- 860,868 ----
+ gtk_form_set_static_gravity(GdkWindow *window, gboolean use_static)
+ {
+ #ifdef HAVE_GTK2
+! /* We don't check if static gravity is actually supported, because it
+! * results in an annoying assertion error message. */
+! gdk_window_set_static_gravities(window, use_static);
+ #else
+ XSetWindowAttributes xattributes;
+
+*** ../vim-7.2.256/src/version.c 2009-09-11 15:46:20.000000000 +0200
+--- src/version.c 2009-09-11 16:16:52.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 257,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+231. You sprinkle Carpet Fresh on the rugs and put your vacuum cleaner
+ in the front doorway permanently so it always looks like you are
+ actually attempting to do something about that mess that has amassed
+ since you discovered the Internet.
+
+ /// 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/source/ap/vim/patches/7.2.258 b/source/ap/vim/patches/7.2.258
new file mode 100644
index 00000000..98ddab58
--- /dev/null
+++ b/source/ap/vim/patches/7.2.258
@@ -0,0 +1,74 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.258
+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.2.258
+Problem: v:beval_col and b:beval_text are wrong in UTF-8 text. (Tony
+ Mechelynck)
+Solution: Use byte number instead of character number for the column.
+Files: src/ui.c
+
+
+*** ../vim-7.2.257/src/ui.c 2009-07-01 18:04:30.000000000 +0200
+--- src/ui.c 2009-09-11 16:11:50.000000000 +0200
+***************
+*** 3055,3072 ****
+ int vcol;
+ {
+ /* try to advance to the specified column */
+- int col = 0;
+ int count = 0;
+ char_u *ptr;
+
+! ptr = ml_get_buf(wp->w_buffer, lnum, FALSE);
+ while (count <= vcol && *ptr != NUL)
+ {
+- ++col;
+ count += win_lbr_chartabsize(wp, ptr, count, NULL);
+ mb_ptr_adv(ptr);
+ }
+! return col;
+ }
+ #endif
+
+--- 3055,3071 ----
+ int vcol;
+ {
+ /* try to advance to the specified column */
+ int count = 0;
+ char_u *ptr;
++ char_u *start;
+
+! start = ptr = ml_get_buf(wp->w_buffer, lnum, FALSE);
+ while (count <= vcol && *ptr != NUL)
+ {
+ count += win_lbr_chartabsize(wp, ptr, count, NULL);
+ mb_ptr_adv(ptr);
+ }
+! return (int)(ptr - start);
+ }
+ #endif
+
+*** ../vim-7.2.257/src/version.c 2009-09-11 16:17:36.000000000 +0200
+--- src/version.c 2009-09-11 16:45:48.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 258,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+232. You start conversations with, "Have you gotten an ISDN line?"
+
+ /// 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/source/ap/vim/patches/7.2.259 b/source/ap/vim/patches/7.2.259
new file mode 100644
index 00000000..0bf0ba13
--- /dev/null
+++ b/source/ap/vim/patches/7.2.259
@@ -0,0 +1,160 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.259
+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.2.259
+Problem: exists() doesn't work properly for an empty aucmd group.
+Solution: Change how au_exists() handles a missing pattern. Also add a
+ test for this. (Bob Hiestand)
+Files: src/fileio.c, src/testdir/Makefile, src/testdir/test67.in,
+ src/testdir/test67.ok
+
+
+*** ../vim-7.2.258/src/fileio.c 2009-09-11 15:04:13.000000000 +0200
+--- src/fileio.c 2009-09-11 16:37:08.000000000 +0200
+***************
+*** 9498,9512 ****
+ ap = first_autopat[(int)event];
+ if (ap == NULL)
+ goto theend;
+- if (pattern == NULL)
+- {
+- retval = TRUE;
+- goto theend;
+- }
+
+ /* if pattern is "<buffer>", special handling is needed which uses curbuf */
+ /* for pattern "<buffer=N>, fnamecmp() will work fine */
+! if (STRICMP(pattern, "<buffer>") == 0)
+ buflocal_buf = curbuf;
+
+ /* Check if there is an autocommand with the given pattern. */
+--- 9498,9507 ----
+ ap = first_autopat[(int)event];
+ if (ap == NULL)
+ goto theend;
+
+ /* if pattern is "<buffer>", special handling is needed which uses curbuf */
+ /* for pattern "<buffer=N>, fnamecmp() will work fine */
+! if (pattern != NULL && STRICMP(pattern, "<buffer>") == 0)
+ buflocal_buf = curbuf;
+
+ /* Check if there is an autocommand with the given pattern. */
+***************
+*** 9515,9523 ****
+ /* For buffer-local autocommands, fnamecmp() works fine. */
+ if (ap->pat != NULL && ap->cmds != NULL
+ && (group == AUGROUP_ALL || ap->group == group)
+! && (buflocal_buf == NULL
+! ? fnamecmp(ap->pat, pattern) == 0
+! : ap->buflocal_nr == buflocal_buf->b_fnum))
+ {
+ retval = TRUE;
+ break;
+--- 9510,9519 ----
+ /* For buffer-local autocommands, fnamecmp() works fine. */
+ if (ap->pat != NULL && ap->cmds != NULL
+ && (group == AUGROUP_ALL || ap->group == group)
+! && (pattern == NULL
+! || (buflocal_buf == NULL
+! ? fnamecmp(ap->pat, pattern) == 0
+! : ap->buflocal_nr == buflocal_buf->b_fnum)))
+ {
+ retval = TRUE;
+ break;
+*** ../vim-7.2.258/src/testdir/Makefile 2009-06-24 18:07:55.000000000 +0200
+--- src/testdir/Makefile 2009-09-11 16:31:33.000000000 +0200
+***************
+*** 22,28 ****
+ test48.out test49.out test51.out test52.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 test66.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 22,28 ----
+ test48.out test49.out test51.out test52.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 test66.out test67.out
+
+ SCRIPTS_GUI = test16.out
+
+*** ../vim-7.2.258/src/testdir/test67.in 2009-09-11 17:23:47.000000000 +0200
+--- src/testdir/test67.in 2009-09-11 16:43:11.000000000 +0200
+***************
+*** 0 ****
+--- 1,33 ----
++ Test that groups and patterns are tested correctly when calling exists() for
++ autocommands.
++
++ STARTTEST
++ :so small.vim
++ :let results=[]
++ :augroup auexists
++ :augroup END
++ :call add(results, "##BufEnter: " . exists("##BufEnter"))
++ :call add(results, "#BufEnter: " . exists("#BufEnter"))
++ :au BufEnter * let g:entered=1
++ :call add(results, "#BufEnter: " . exists("#BufEnter"))
++ :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
++ :augroup auexists
++ :au BufEnter * let g:entered=1
++ :augroup END
++ :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
++ :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
++ :au BufEnter *.test let g:entered=1
++ :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
++ :edit testfile.test
++ :call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
++ :au BufEnter <buffer> let g:entered=1
++ :call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
++ :edit testfile2.test
++ :call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
++ :e test.out
++ :call append(0, results)
++ :$d
++ :w
++ :qa!
++ ENDTEST
++
+*** ../vim-7.2.258/src/testdir/test67.ok 2009-09-11 17:23:47.000000000 +0200
+--- src/testdir/test67.ok 2009-09-11 16:43:15.000000000 +0200
+***************
+*** 0 ****
+--- 1,10 ----
++ ##BufEnter: 1
++ #BufEnter: 0
++ #BufEnter: 1
++ #auexists#BufEnter: 0
++ #auexists#BufEnter: 1
++ #BufEnter#*.test: 0
++ #BufEnter#*.test: 1
++ #BufEnter#<buffer>: 0
++ #BufEnter#<buffer>: 1
++ #BufEnter#<buffer>: 0
+*** ../vim-7.2.258/src/version.c 2009-09-11 16:48:06.000000000 +0200
+--- src/version.c 2009-09-11 17:23:14.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 259,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+234. You started college as a chemistry major, and walk out four years
+ later as an Internet provider.
+
+ /// 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/source/ap/vim/patches/7.2.260 b/source/ap/vim/patches/7.2.260
new file mode 100644
index 00000000..46d4365c
--- /dev/null
+++ b/source/ap/vim/patches/7.2.260
@@ -0,0 +1,155 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.260 (extra)
+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.2.260 (extra part of 7.2.259)
+Problem: exists() doesn't work properly for empty aucmd group.
+Solution: Change how au_exists() handles a missing pattern. Also add a
+ test for this. (Bob Hiestand)
+Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
+ src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
+ src/testdir/Make_vms.mms
+
+
+*** ../vim-7.2.259/src/testdir/Make_amiga.mak 2009-03-11 16:36:04.000000000 +0100
+--- src/testdir/Make_amiga.mak 2009-09-11 16:29:54.000000000 +0200
+***************
+*** 26,32 ****
+ 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 \
+! test66.out
+
+ .SUFFIXES: .in .out
+
+--- 26,32 ----
+ 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 \
+! test66.out test67.out
+
+ .SUFFIXES: .in .out
+
+***************
+*** 112,114 ****
+--- 112,115 ----
+ test64.out: test64.in
+ test65.out: test65.in
+ test66.out: test66.in
++ test67.out: test67.in
+*** ../vim-7.2.259/src/testdir/Make_dos.mak 2009-03-11 16:36:04.000000000 +0100
+--- src/testdir/Make_dos.mak 2009-09-11 16:30:17.000000000 +0200
+***************
+*** 26,32 ****
+ 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 test66.out
+
+ SCRIPTS32 = test50.out
+
+--- 26,32 ----
+ 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 test66.out test67.out
+
+ SCRIPTS32 = test50.out
+
+*** ../vim-7.2.259/src/testdir/Make_ming.mak 2009-03-11 16:36:04.000000000 +0100
+--- src/testdir/Make_ming.mak 2009-09-11 16:30:37.000000000 +0200
+***************
+*** 45,51 ****
+ 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 test66.out
+
+ SCRIPTS32 = test50.out
+
+--- 45,51 ----
+ 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 test66.out test67.out
+
+ SCRIPTS32 = test50.out
+
+*** ../vim-7.2.259/src/testdir/Make_os2.mak 2009-03-11 16:36:04.000000000 +0100
+--- src/testdir/Make_os2.mak 2009-09-11 16:30:52.000000000 +0200
+***************
+*** 26,32 ****
+ 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 \
+! test66.out
+
+ .SUFFIXES: .in .out
+
+--- 26,32 ----
+ 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 \
+! test66.out test67.out
+
+ .SUFFIXES: .in .out
+
+*** ../vim-7.2.259/src/testdir/Make_vms.mms 2009-03-11 16:36:04.000000000 +0100
+--- src/testdir/Make_vms.mms 2009-09-11 16:31:06.000000000 +0200
+***************
+*** 4,10 ****
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2009 Mar 05
+ #
+ # 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.
+--- 4,10 ----
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2009 Sep 11
+ #
+ # 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.
+***************
+*** 69,75 ****
+ 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 \
+! test66.out
+
+ .IFDEF WANT_GUI
+ SCRIPT_GUI = test16.out
+--- 69,75 ----
+ 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 \
+! test66.out test67.out
+
+ .IFDEF WANT_GUI
+ SCRIPT_GUI = test16.out
+*** ../vim-7.2.259/src/version.c 2009-09-11 17:24:01.000000000 +0200
+--- src/version.c 2009-09-18 14:57:05.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 260,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+251. You've never seen your closest friends who usually live WAY too far away.
+
+ /// 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/source/ap/vim/patches/7.2.261 b/source/ap/vim/patches/7.2.261
new file mode 100644
index 00000000..4f8e72d7
--- /dev/null
+++ b/source/ap/vim/patches/7.2.261
@@ -0,0 +1,83 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.261
+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.2.261
+Problem: When deleting lines with a specific folding configuration E38 may
+ appear. (Shahaf)
+Solution: When adjusting nested folds for deleted lines take into account
+ that they don't start at the top of the enclosing fold.
+Files: src/fold.c
+
+
+*** ../vim-7.2.260/src/fold.c 2009-01-06 15:01:58.000000000 +0100
+--- src/fold.c 2009-09-18 14:43:23.000000000 +0200
+***************
+*** 1607,1617 ****
+ }
+ else
+ {
+- /* 2, 3, or 5: need to correct nested folds too */
+- foldMarkAdjustRecurse(&fp->fd_nested, line1 - fp->fd_top,
+- line2 - fp->fd_top, amount, amount_after);
+ if (fp->fd_top < top)
+ {
+ if (last <= line2)
+ {
+ /* 2. fold contains line1, line2 is below fold */
+--- 1607,1617 ----
+ }
+ else
+ {
+ if (fp->fd_top < top)
+ {
++ /* 2 or 3: need to correct nested folds too */
++ foldMarkAdjustRecurse(&fp->fd_nested, line1 - fp->fd_top,
++ line2 - fp->fd_top, amount, amount_after);
+ if (last <= line2)
+ {
+ /* 2. fold contains line1, line2 is below fold */
+***************
+*** 1628,1634 ****
+ }
+ else
+ {
+! /* 5. fold is below line1 and contains line2 */
+ if (amount == MAXLNUM)
+ {
+ fp->fd_len -= line2 - fp->fd_top + 1;
+--- 1628,1638 ----
+ }
+ else
+ {
+! /* 5. fold is below line1 and contains line2; need to
+! * correct nested folds too */
+! foldMarkAdjustRecurse(&fp->fd_nested, line1 - fp->fd_top,
+! line2 - fp->fd_top, amount,
+! amount_after + (fp->fd_top - top));
+ if (amount == MAXLNUM)
+ {
+ fp->fd_len -= line2 - fp->fd_top + 1;
+*** ../vim-7.2.260/src/version.c 2009-09-18 14:58:26.000000000 +0200
+--- src/version.c 2009-09-18 15:14:40.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 261,
+ /**/
+
+--
+Emacs is a nice OS - but it lacks a good text editor.
+That's why I am using Vim. --Anonymous
+
+ /// 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/source/ap/vim/patches/7.2.262 b/source/ap/vim/patches/7.2.262
new file mode 100644
index 00000000..dc73c07b
--- /dev/null
+++ b/source/ap/vim/patches/7.2.262
@@ -0,0 +1,189 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.262
+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.2.262
+Problem: When using custom completion for a user command the pattern string
+ goes beyond the cursor position. (Hari Krishna Dara)
+Solution: Truncate the string at the cursor position.
+Files: src/ex_getln.c, src/structs.h
+
+
+*** ../vim-7.2.261/src/ex_getln.c 2009-06-24 17:04:40.000000000 +0200
+--- src/ex_getln.c 2009-09-18 16:58:16.000000000 +0200
+***************
+*** 3266,3272 ****
+ int i, j;
+ char_u *p1;
+ char_u *p2;
+- int oldlen;
+ int difflen;
+ int v;
+
+--- 3266,3271 ----
+***************
+*** 3291,3297 ****
+ out_flush();
+
+ i = (int)(xp->xp_pattern - ccline.cmdbuff);
+! oldlen = ccline.cmdpos - i;
+
+ if (type == WILD_NEXT || type == WILD_PREV)
+ {
+--- 3290,3296 ----
+ out_flush();
+
+ i = (int)(xp->xp_pattern - ccline.cmdbuff);
+! xp->xp_pattern_len = ccline.cmdpos - i;
+
+ if (type == WILD_NEXT || type == WILD_PREV)
+ {
+***************
+*** 3305,3322 ****
+ /*
+ * Translate string into pattern and expand it.
+ */
+! if ((p1 = addstar(&ccline.cmdbuff[i], oldlen, xp->xp_context)) == NULL)
+ p2 = NULL;
+ else
+ {
+! p2 = ExpandOne(xp, p1, vim_strnsave(&ccline.cmdbuff[i], oldlen),
+ WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
+ |options, type);
+ vim_free(p1);
+ /* longest match: make sure it is not shorter (happens with :help */
+ if (p2 != NULL && type == WILD_LONGEST)
+ {
+! for (j = 0; j < oldlen; ++j)
+ if (ccline.cmdbuff[i + j] == '*'
+ || ccline.cmdbuff[i + j] == '?')
+ break;
+--- 3304,3323 ----
+ /*
+ * Translate string into pattern and expand it.
+ */
+! if ((p1 = addstar(xp->xp_pattern, xp->xp_pattern_len,
+! xp->xp_context)) == NULL)
+ p2 = NULL;
+ else
+ {
+! p2 = ExpandOne(xp, p1,
+! vim_strnsave(&ccline.cmdbuff[i], xp->xp_pattern_len),
+ WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
+ |options, type);
+ vim_free(p1);
+ /* longest match: make sure it is not shorter (happens with :help */
+ if (p2 != NULL && type == WILD_LONGEST)
+ {
+! for (j = 0; j < xp->xp_pattern_len; ++j)
+ if (ccline.cmdbuff[i + j] == '*'
+ || ccline.cmdbuff[i + j] == '?')
+ break;
+***************
+*** 3331,3337 ****
+
+ if (p2 != NULL && !got_int)
+ {
+! difflen = (int)STRLEN(p2) - oldlen;
+ if (ccline.cmdlen + difflen > ccline.cmdbufflen - 4)
+ {
+ v = realloc_cmdbuff(ccline.cmdlen + difflen);
+--- 3332,3338 ----
+
+ if (p2 != NULL && !got_int)
+ {
+! difflen = (int)STRLEN(p2) - xp->xp_pattern_len;
+ if (ccline.cmdlen + difflen > ccline.cmdbufflen - 4)
+ {
+ v = realloc_cmdbuff(ccline.cmdlen + difflen);
+***************
+*** 3620,3625 ****
+--- 3621,3627 ----
+ expand_T *xp;
+ {
+ xp->xp_pattern = NULL;
++ xp->xp_pattern_len = 0;
+ xp->xp_backslash = XP_BS_NONE;
+ #ifndef BACKSLASH_IN_FILENAME
+ xp->xp_shell = FALSE;
+***************
+*** 4311,4318 ****
+ }
+
+ /* add star to file name, or convert to regexp if not exp. files. */
+! file_str = addstar(xp->xp_pattern,
+! (int)(str + col - xp->xp_pattern), xp->xp_context);
+ if (file_str == NULL)
+ return EXPAND_UNSUCCESSFUL;
+
+--- 4313,4320 ----
+ }
+
+ /* add star to file name, or convert to regexp if not exp. files. */
+! xp->xp_pattern_len = (int)(str + col - xp->xp_pattern);
+! file_str = addstar(xp->xp_pattern, xp->xp_pattern_len, xp->xp_context);
+ if (file_str == NULL)
+ return EXPAND_UNSUCCESSFUL;
+
+***************
+*** 4781,4787 ****
+ sprintf((char *)num, "%d", ccline.cmdpos);
+ args[1] = ccline.cmdbuff;
+ }
+! args[0] = xp->xp_pattern;
+ args[2] = num;
+
+ /* Save the cmdline, we don't know what the function may do. */
+--- 4783,4789 ----
+ sprintf((char *)num, "%d", ccline.cmdpos);
+ args[1] = ccline.cmdbuff;
+ }
+! args[0] = vim_strnsave(xp->xp_pattern, xp->xp_pattern_len);
+ args[2] = num;
+
+ /* Save the cmdline, we don't know what the function may do. */
+***************
+*** 4797,4802 ****
+--- 4799,4805 ----
+ if (ccline.cmdbuff != NULL)
+ ccline.cmdbuff[ccline.cmdlen] = keep;
+
++ vim_free(args[0]);
+ return ret;
+ }
+
+*** ../vim-7.2.261/src/structs.h 2009-07-29 12:09:49.000000000 +0200
+--- src/structs.h 2009-09-18 15:33:15.000000000 +0200
+***************
+*** 432,437 ****
+--- 432,438 ----
+ {
+ int xp_context; /* type of expansion */
+ char_u *xp_pattern; /* start of item to expand */
++ int xp_pattern_len; /* bytes in xp_pattern before cursor */
+ #if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
+ char_u *xp_arg; /* completion function */
+ int xp_scriptID; /* SID for completion function */
+*** ../vim-7.2.261/src/version.c 2009-09-18 15:16:37.000000000 +0200
+--- src/version.c 2009-09-18 17:23:20.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 262,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+252. You vote for foreign officials.
+
+ /// 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/source/ap/vim/patches/7.2.263 b/source/ap/vim/patches/7.2.263
new file mode 100644
index 00000000..fdbfa406
--- /dev/null
+++ b/source/ap/vim/patches/7.2.263
@@ -0,0 +1,87 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.263
+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.2.263
+Problem: GTK2: when using the -geom argument with an offset from the right
+ edge and the size is smaller than the default, the Vim window is
+ not positioned properly.
+Solution: Use another function to set the size. (Vitaly Minko)
+Files: src/gui_gtk_x11.c
+
+
+*** ../vim-7.2.262/src/gui_gtk_x11.c 2009-09-11 15:46:20.000000000 +0200
+--- src/gui_gtk_x11.c 2009-09-23 15:43:52.000000000 +0200
+***************
+*** 4066,4071 ****
+--- 4066,4073 ----
+ {
+ guicolor_T fg_pixel = INVALCOLOR;
+ guicolor_T bg_pixel = INVALCOLOR;
++ guint pixel_width;
++ guint pixel_height;
+
+ #ifdef HAVE_GTK2
+ /*
+***************
+*** 4106,4113 ****
+ unsigned int w, h;
+ int x = 0;
+ int y = 0;
+- guint pixel_width;
+- guint pixel_height;
+
+ mask = XParseGeometry((char *)gui.geom, &x, &y, &w, &h);
+
+--- 4108,4113 ----
+***************
+*** 4160,4168 ****
+ }
+ }
+
+! gtk_form_set_size(GTK_FORM(gui.formwin),
+! (guint)(gui_get_base_width() + Columns * gui.char_width),
+! (guint)(gui_get_base_height() + Rows * gui.char_height));
+ update_window_manager_hints(0, 0);
+
+ if (foreground_argument != NULL)
+--- 4160,4175 ----
+ }
+ }
+
+! pixel_width = (guint)(gui_get_base_width() + Columns * gui.char_width);
+! pixel_height = (guint)(gui_get_base_height() + Rows * gui.char_height);
+! #ifdef HAVE_GTK2
+! /* For GTK2 changing the size of the form widget doesn't cause window
+! * resizing. */
+! if (gtk_socket_id == 0)
+! gtk_window_resize(GTK_WINDOW(gui.mainwin), pixel_width, pixel_height);
+! #else
+! gtk_form_set_size(GTK_FORM(gui.formwin), pixel_width, pixel_height);
+! #endif
+ update_window_manager_hints(0, 0);
+
+ if (foreground_argument != NULL)
+*** ../vim-7.2.262/src/version.c 2009-09-18 17:24:54.000000000 +0200
+--- src/version.c 2009-09-23 17:34:08.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 263,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+267. You get an extra phone line so you can get phone calls.
+
+ /// 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/source/ap/vim/patches/7.2.264 b/source/ap/vim/patches/7.2.264
new file mode 100644
index 00000000..808f2916
--- /dev/null
+++ b/source/ap/vim/patches/7.2.264
@@ -0,0 +1,168 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.264
+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.2.264
+Problem: GTK2: When the Vim window is maximized setting 'columns' or
+ 'lines' doesn't work.
+Solution: Unmaximize the window before setting the size. (Vitaly Minko)
+Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
+
+
+*** ../vim-7.2.263/src/gui.c 2009-07-29 11:10:31.000000000 +0200
+--- src/gui.c 2009-09-23 16:28:09.000000000 +0200
+***************
+*** 1386,1391 ****
+--- 1386,1395 ----
+ int min_height;
+ int screen_w;
+ int screen_h;
++ #ifdef HAVE_GTK2
++ int un_maximize = mustset;
++ int did_adjust = 0;
++ #endif
+
+ if (!gui.shell_created)
+ return;
+***************
+*** 1425,1446 ****
+ if (Columns < MIN_COLUMNS)
+ Columns = MIN_COLUMNS;
+ width = Columns * gui.char_width + base_width;
+ }
+ if ((direction & RESIZE_VERT) && height > screen_h)
+ {
+ Rows = (screen_h - base_height) / gui.char_height;
+ check_shellsize();
+ height = Rows * gui.char_height + base_height;
+ }
+ }
+ gui.num_cols = Columns;
+ gui.num_rows = Rows;
+
+ min_width = base_width + MIN_COLUMNS * gui.char_width;
+ min_height = base_height + MIN_LINES * gui.char_height;
+! # ifdef FEAT_WINDOWS
+ min_height += tabline_height() * gui.char_height;
+! # endif
+
+ gui_mch_set_shellsize(width, height, min_width, min_height,
+ base_width, base_height, direction);
+--- 1429,1475 ----
+ if (Columns < MIN_COLUMNS)
+ Columns = MIN_COLUMNS;
+ width = Columns * gui.char_width + base_width;
++ #ifdef HAVE_GTK2
++ ++did_adjust;
++ #endif
+ }
+ if ((direction & RESIZE_VERT) && height > screen_h)
+ {
+ Rows = (screen_h - base_height) / gui.char_height;
+ check_shellsize();
+ height = Rows * gui.char_height + base_height;
++ #ifdef HAVE_GTK2
++ ++did_adjust;
++ #endif
+ }
++ #ifdef HAVE_GTK2
++ if (did_adjust == 2 || (width + gui.char_width >= screen_w
++ && height + gui.char_height >= screen_h))
++ /* don't unmaximize if at maximum size */
++ un_maximize = FALSE;
++ #endif
+ }
+ gui.num_cols = Columns;
+ gui.num_rows = Rows;
+
+ min_width = base_width + MIN_COLUMNS * gui.char_width;
+ min_height = base_height + MIN_LINES * gui.char_height;
+! #ifdef FEAT_WINDOWS
+ min_height += tabline_height() * gui.char_height;
+! #endif
+!
+! #ifdef HAVE_GTK2
+! if (un_maximize)
+! {
+! /* If the window size is smaller than the screen unmaximize the
+! * window, otherwise resizing won't work. */
+! gui_mch_get_screen_dimensions(&screen_w, &screen_h);
+! if ((width + gui.char_width < screen_w
+! || height + gui.char_height * 2 < screen_h)
+! && gui_mch_maximized())
+! gui_mch_unmaximize();
+! }
+! #endif
+
+ gui_mch_set_shellsize(width, height, min_width, min_height,
+ base_width, base_height, direction);
+*** ../vim-7.2.263/src/gui_gtk_x11.c 2009-09-23 17:35:17.000000000 +0200
+--- src/gui_gtk_x11.c 2009-09-23 15:43:52.000000000 +0200
+***************
+*** 4376,4381 ****
+--- 4376,4404 ----
+ #endif
+ #endif /* HAVE_GTK2 */
+
++ #if defined(HAVE_GTK2) || defined(PROTO)
++ /*
++ * Return TRUE if the main window is maximized.
++ */
++ int
++ gui_mch_maximized()
++ {
++ return (gui.mainwin != NULL && gui.mainwin->window != NULL
++ && (gdk_window_get_state(gui.mainwin->window)
++ & GDK_WINDOW_STATE_MAXIMIZED));
++ }
++
++ /*
++ * Unmaximize the main window
++ */
++ void
++ gui_mch_unmaximize()
++ {
++ if (gui.mainwin != NULL)
++ gtk_window_unmaximize(GTK_WINDOW(gui.mainwin));
++ }
++ #endif
++
+ /*
+ * Set the windows size.
+ */
+*** ../vim-7.2.263/src/proto/gui_gtk_x11.pro 2007-05-05 19:18:54.000000000 +0200
+--- src/proto/gui_gtk_x11.pro 2009-09-23 15:43:45.000000000 +0200
+***************
+*** 16,21 ****
+--- 16,23 ----
+ void gui_mch_exit __ARGS((int rc));
+ int gui_mch_get_winpos __ARGS((int *x, int *y));
+ void gui_mch_set_winpos __ARGS((int x, int y));
++ int gui_mch_maximized __ARGS((void));
++ void gui_mch_unmaximize __ARGS((void));
+ void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
+ void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
+ void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
+*** ../vim-7.2.263/src/version.c 2009-09-23 17:35:17.000000000 +0200
+--- src/version.c 2009-09-23 18:12:21.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 264,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+268. You get up in the morning and go online before getting your coffee.
+
+ /// 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/source/ap/vim/patches/7.2.265 b/source/ap/vim/patches/7.2.265
new file mode 100644
index 00000000..46851502
--- /dev/null
+++ b/source/ap/vim/patches/7.2.265
@@ -0,0 +1,56 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.265
+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.2.265
+Problem: When using ":silent broken" inside try/catch silency may persist.
+ (dr-dr xp)
+Solution: Set msg_silent when there is an error and it's bigger than the
+ saved value.
+Files: src/ex_docmd.c
+
+
+*** ../vim-7.2.264/src/ex_docmd.c 2009-07-09 20:13:59.000000000 +0200
+--- src/ex_docmd.c 2009-09-30 11:40:53.000000000 +0200
+***************
+*** 2695,2701 ****
+ {
+ /* messages could be enabled for a serious error, need to check if the
+ * counters don't become negative */
+! if (!did_emsg)
+ msg_silent = save_msg_silent;
+ emsg_silent -= did_esilent;
+ if (emsg_silent < 0)
+--- 2695,2701 ----
+ {
+ /* messages could be enabled for a serious error, need to check if the
+ * counters don't become negative */
+! if (!did_emsg || msg_silent > save_msg_silent)
+ msg_silent = save_msg_silent;
+ emsg_silent -= did_esilent;
+ if (emsg_silent < 0)
+*** ../vim-7.2.264/src/version.c 2009-09-23 18:14:13.000000000 +0200
+--- src/version.c 2009-09-30 13:22:47.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 265,
+ /**/
+
+--
+FIRST HEAD: Oh! quick! get the sword out I want to cut his head off.
+THIRD HEAD: Oh, cut your own head off.
+SECOND HEAD: Yes - do us all a favour.
+ "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/source/ap/vim/patches/7.2.266 b/source/ap/vim/patches/7.2.266
new file mode 100644
index 00000000..3a5ba774
--- /dev/null
+++ b/source/ap/vim/patches/7.2.266
@@ -0,0 +1,244 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.266
+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.2.266
+Problem: When an expression abbreviation is triggered, the typed character
+ is unknown.
+Solution: Make the typed character available in v:char.
+Files: runtime/doc/map.txt, src/eval.c, src/getchar.c, src/ops.c,
+ src/proto/eval.pro
+
+
+*** ../vim-7.2.265/runtime/doc/map.txt 2008-08-09 19:36:49.000000000 +0200
+--- runtime/doc/map.txt 2009-09-23 19:39:19.000000000 +0200
+***************
+*** 224,229 ****
+--- 224,233 ----
+ The result of the InsertDot() function will be inserted. It could check the
+ text before the cursor and start omni completion when some condition is met.
+
++ For abbreviations |v:char| is set to the character that was typed to trigger
++ the abbreviation. You can use this to decide how to expand the {lhs}. You
++ can't change v:char and you should not insert it.
++
+ Be very careful about side effects! The expression is evaluated while
+ obtaining characters, you may very well make the command dysfunctional.
+ For this reason the following is blocked:
+*** ../vim-7.2.265/src/eval.c 2009-06-03 14:25:47.000000000 +0200
+--- src/eval.c 2009-09-23 19:36:32.000000000 +0200
+***************
+*** 18101,18106 ****
+--- 18101,18131 ----
+ }
+
+ /*
++ * Set v:char to character "c".
++ */
++ void
++ set_vim_var_char(c)
++ int c;
++ {
++ #ifdef FEAT_MBYTE
++ char_u buf[MB_MAXBYTES];
++ #else
++ char_u buf[2];
++ #endif
++
++ #ifdef FEAT_MBYTE
++ if (has_mbyte)
++ buf[(*mb_char2bytes)(c, buf)] = NUL;
++ else
++ #endif
++ {
++ buf[0] = c;
++ buf[1] = NUL;
++ }
++ set_vim_var_string(VV_CHAR, buf, -1);
++ }
++
++ /*
+ * Set v:count to "count" and v:count1 to "count1".
+ * When "set_prevcount" is TRUE first set v:prevcount from v:count.
+ */
+*** ../vim-7.2.265/src/getchar.c 2009-07-14 13:44:43.000000000 +0200
+--- src/getchar.c 2009-09-23 19:35:54.000000000 +0200
+***************
+*** 129,135 ****
+ static void validate_maphash __ARGS((void));
+ static void showmap __ARGS((mapblock_T *mp, int local));
+ #ifdef FEAT_EVAL
+! static char_u *eval_map_expr __ARGS((char_u *str));
+ #endif
+
+ /*
+--- 129,135 ----
+ static void validate_maphash __ARGS((void));
+ static void showmap __ARGS((mapblock_T *mp, int local));
+ #ifdef FEAT_EVAL
+! static char_u *eval_map_expr __ARGS((char_u *str, int c));
+ #endif
+
+ /*
+***************
+*** 2446,2452 ****
+ if (tabuf.typebuf_valid)
+ {
+ vgetc_busy = 0;
+! s = eval_map_expr(mp->m_str);
+ vgetc_busy = save_vgetc_busy;
+ }
+ else
+--- 2446,2452 ----
+ if (tabuf.typebuf_valid)
+ {
+ vgetc_busy = 0;
+! s = eval_map_expr(mp->m_str, NUL);
+ vgetc_busy = save_vgetc_busy;
+ }
+ else
+***************
+*** 4367,4375 ****
+ * abbreviation, but is not inserted into the input stream.
+ */
+ j = 0;
+- /* special key code, split up */
+ if (c != Ctrl_RSB)
+ {
+ if (IS_SPECIAL(c) || c == K_SPECIAL)
+ {
+ tb[j++] = K_SPECIAL;
+--- 4367,4375 ----
+ * abbreviation, but is not inserted into the input stream.
+ */
+ j = 0;
+ if (c != Ctrl_RSB)
+ {
++ /* special key code, split up */
+ if (IS_SPECIAL(c) || c == K_SPECIAL)
+ {
+ tb[j++] = K_SPECIAL;
+***************
+*** 4398,4404 ****
+ }
+ #ifdef FEAT_EVAL
+ if (mp->m_expr)
+! s = eval_map_expr(mp->m_str);
+ else
+ #endif
+ s = mp->m_str;
+--- 4398,4404 ----
+ }
+ #ifdef FEAT_EVAL
+ if (mp->m_expr)
+! s = eval_map_expr(mp->m_str, c);
+ else
+ #endif
+ s = mp->m_str;
+***************
+*** 4434,4441 ****
+ * special characters.
+ */
+ static char_u *
+! eval_map_expr(str)
+ char_u *str;
+ {
+ char_u *res;
+ char_u *p;
+--- 4434,4442 ----
+ * special characters.
+ */
+ static char_u *
+! eval_map_expr(str, c)
+ char_u *str;
++ int c; /* NUL or typed character for abbreviation */
+ {
+ char_u *res;
+ char_u *p;
+***************
+*** 4452,4457 ****
+--- 4453,4459 ----
+ #ifdef FEAT_EX_EXTRA
+ ++ex_normal_lock;
+ #endif
++ set_vim_var_char(c); /* set v:char to the typed character */
+ save_cursor = curwin->w_cursor;
+ p = eval_to_string(str, NULL, FALSE);
+ --textlock;
+*** ../vim-7.2.265/src/ops.c 2009-07-01 18:04:30.000000000 +0200
+--- src/ops.c 2009-09-23 19:11:40.000000000 +0200
+***************
+*** 4473,4483 ****
+ int use_sandbox = was_set_insecurely((char_u *)"formatexpr",
+ OPT_LOCAL);
+ int r;
+- #ifdef FEAT_MBYTE
+- char_u buf[MB_MAXBYTES];
+- #else
+- char_u buf[2];
+- #endif
+
+ /*
+ * Set v:lnum to the first line number and v:count to the number of lines.
+--- 4473,4478 ----
+***************
+*** 4485,4501 ****
+ */
+ set_vim_var_nr(VV_LNUM, lnum);
+ set_vim_var_nr(VV_COUNT, count);
+!
+! #ifdef FEAT_MBYTE
+! if (has_mbyte)
+! buf[(*mb_char2bytes)(c, buf)] = NUL;
+! else
+! #endif
+! {
+! buf[0] = c;
+! buf[1] = NUL;
+! }
+! set_vim_var_string(VV_CHAR, buf, -1);
+
+ /*
+ * Evaluate the function.
+--- 4480,4486 ----
+ */
+ set_vim_var_nr(VV_LNUM, lnum);
+ set_vim_var_nr(VV_COUNT, count);
+! set_vim_var_char(c);
+
+ /*
+ * Evaluate the function.
+*** ../vim-7.2.265/src/proto/eval.pro 2008-11-20 16:11:03.000000000 +0100
+--- src/proto/eval.pro 2009-09-23 19:36:30.000000000 +0200
+***************
+*** 61,66 ****
+--- 61,67 ----
+ long get_vim_var_nr __ARGS((int idx));
+ char_u *get_vim_var_str __ARGS((int idx));
+ list_T *get_vim_var_list __ARGS((int idx));
++ void set_vim_var_char __ARGS((int c));
+ void set_vcount __ARGS((long count, long count1, int set_prevcount));
+ void set_vim_var_string __ARGS((int idx, char_u *val, int len));
+ void set_vim_var_list __ARGS((int idx, list_T *val));
+*** ../vim-7.2.265/src/version.c 2009-09-30 13:23:57.000000000 +0200
+--- src/version.c 2009-09-30 15:11:29.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 266,
+ /**/
+
+--
+Life would be so much easier if we could just look at the source code.
+
+ /// 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/source/ap/vim/patches/7.2.267 b/source/ap/vim/patches/7.2.267
new file mode 100644
index 00000000..6df92c94
--- /dev/null
+++ b/source/ap/vim/patches/7.2.267
@@ -0,0 +1,47 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.267
+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.2.267
+Problem: Crash for narrow window and double-width character.
+Solution: Check for zero width. (Taro Muraoka)
+Files: src/charset.c
+
+
+*** ../vim-7.2.266/src/charset.c 2009-09-11 14:02:25.000000000 +0200
+--- src/charset.c 2009-10-07 16:17:27.000000000 +0200
+***************
+*** 1218,1223 ****
+--- 1218,1225 ----
+ if ((int)vcol == width1 - 1)
+ return TRUE;
+ width2 = width1 + win_col_off2(wp);
++ if (width2 <= 0)
++ return FALSE;
+ return ((vcol - width1) % width2 == width2 - 1);
+ }
+ #endif /* FEAT_MBYTE */
+*** ../vim-7.2.266/src/version.c 2009-09-30 15:15:33.000000000 +0200
+--- src/version.c 2009-10-07 16:19:05.000000000 +0200
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 267,
+ /**/
+
+--
+You got to work at a mill? Lucky! I got sent back to work in the
+acid-mines for my daily crust of stale bread... which not even the
+birds would eat.
+
+ /// 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/source/ap/vim/patches/7.2.268 b/source/ap/vim/patches/7.2.268
new file mode 100644
index 00000000..89c50b04
--- /dev/null
+++ b/source/ap/vim/patches/7.2.268
@@ -0,0 +1,80 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.268
+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.2.268
+Problem: Crash when using Python to set cursor beyond end of line.
+ (winterTTr)
+Solution: Check the column to be valid.
+Files: src/if_python.c
+
+
+*** ../vim-7.2.267/src/if_python.c 2009-07-09 20:06:30.000000000 +0200
+--- src/if_python.c 2009-10-10 14:49:10.000000000 +0200
+***************
+*** 2058,2063 ****
+--- 2058,2064 ----
+ {
+ long lnum;
+ long col;
++ long len;
+
+ if (!PyArg_Parse(val, "(ll)", &lnum, &col))
+ return -1;
+***************
+*** 2072,2081 ****
+ if (VimErrorCheck())
+ return -1;
+
+! /* NO CHECK ON COLUMN - SEEMS NOT TO MATTER */
+
+ this->win->w_cursor.lnum = lnum;
+ this->win->w_cursor.col = col;
+ update_screen(VALID);
+
+ return 0;
+--- 2073,2088 ----
+ if (VimErrorCheck())
+ return -1;
+
+! /* When column is out of range silently correct it. */
+! len = STRLEN(ml_get_buf(this->win->w_buffer, lnum, FALSE));
+! if (col > len)
+! col = len;
+
+ this->win->w_cursor.lnum = lnum;
+ this->win->w_cursor.col = col;
++ #ifdef FEAT_VIRTUALEDIT
++ this->win->w_cursor.coladd = 0;
++ #endif
+ update_screen(VALID);
+
+ return 0;
+*** ../vim-7.2.267/src/version.c 2009-10-07 16:19:52.000000000 +0200
+--- src/version.c 2009-11-03 11:42:08.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 268,
+ /**/
+
+--
+VOICE OVER: As the horrendous Black Beast lunged forward, escape for Arthur
+ and his knights seemed hopeless, when, suddenly ... the animator
+ suffered a fatal heart attack.
+ANIMATOR: Aaaaagh!
+VOICE OVER: The cartoon peril was no more ... The Quest for Holy Grail could
+ continue.
+ "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/source/ap/vim/patches/7.2.269 b/source/ap/vim/patches/7.2.269
new file mode 100644
index 00000000..ec15f454
--- /dev/null
+++ b/source/ap/vim/patches/7.2.269
@@ -0,0 +1,261 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.269
+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.2.269
+Problem: Many people struggle to find out why Vim startup is slow.
+Solution: Add the --startuptime command line flag.
+Files: runtime/doc/starting.txt, src/globals.h, src/feature.h,
+ src/main.c, src/macros.h
+
+
+*** ../vim-7.2.268/runtime/doc/starting.txt 2008-11-09 13:43:25.000000000 +0100
+--- runtime/doc/starting.txt 2009-10-25 11:57:51.000000000 +0100
+***************
+*** 144,149 ****
+--- 144,156 ----
+ -u NORC no yes
+ --noplugin yes no
+
++ --startuptime={fname} *--startuptime*
++ During startup write timing messages to the file {fname}.
++ This can be used to find out where time is spent while loading
++ your .vimrc and plugins.
++ When {fname} already exists new messages are appended.
++ {only when compiled with this feature}
++
+ *--literal*
+ --literal Take file names literally, don't expand wildcards. Not needed
+ for Unix, because Vim always takes file names literally (the
+***************
+*** 471,476 ****
+--- 487,493 ----
+ window title and copy/paste using the X clipboard. This
+ avoids a long startup time when running Vim in a terminal
+ emulator and the connection to the X server is slow.
++ See |--startuptime| to find out if affects you.
+ Only makes a difference on Unix or VMS, when compiled with the
+ |+X11| feature. Otherwise it's ignored.
+ To disable the connection only for specific terminals, see the
+*** ../vim-7.2.268/src/globals.h 2009-07-29 12:09:49.000000000 +0200
+--- src/globals.h 2009-10-10 15:14:31.000000000 +0200
+***************
+*** 1567,1572 ****
+--- 1567,1576 ----
+ /* For undo we need to know the lowest time possible. */
+ EXTERN time_t starttime;
+
++ #ifdef STARTUPTIME
++ EXTERN FILE *time_fd INIT(= NULL); /* where to write startup timing */
++ #endif
++
+ /*
+ * Some compilers warn for not using a return value, but in some situations we
+ * can't do anything useful with the value. Assign to this variable to avoid
+*** ../vim-7.2.268/src/feature.h 2008-11-09 13:43:25.000000000 +0100
+--- src/feature.h 2009-10-10 16:16:19.000000000 +0200
+***************
+*** 844,853 ****
+ /* #define DEBUG */
+
+ /*
+! * STARTUPTIME Time the startup process. Writes a "vimstartup" file
+! * with timestamps.
+ */
+! /* #define STARTUPTIME "vimstartup" */
+
+ /*
+ * MEM_PROFILE Debugging of memory allocation and freeing.
+--- 844,857 ----
+ /* #define DEBUG */
+
+ /*
+! * STARTUPTIME Time the startup process. Writes a file with
+! * timestamps.
+ */
+! #if defined(FEAT_NORMAL) \
+! && ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \
+! || defined(WIN3264))
+! # define STARTUPTIME 1
+! #endif
+
+ /*
+ * MEM_PROFILE Debugging of memory allocation and freeing.
+*** ../vim-7.2.268/src/main.c 2009-05-26 22:58:43.000000000 +0200
+--- src/main.c 2009-10-10 16:18:32.000000000 +0200
+***************
+*** 130,139 ****
+ #endif
+
+
+- #ifdef STARTUPTIME
+- static FILE *time_fd = NULL;
+- #endif
+-
+ /*
+ * Different types of error messages.
+ */
+--- 130,135 ----
+***************
+*** 173,178 ****
+--- 169,177 ----
+ char_u *fname = NULL; /* file name from command line */
+ mparm_T params; /* various parameters passed between
+ * main() and other functions. */
++ #ifdef STARTUPTIME
++ int i;
++ #endif
+
+ /*
+ * Do any system-specific initialisations. These can NOT use IObuff or
+***************
+*** 203,210 ****
+ #endif
+
+ #ifdef STARTUPTIME
+! time_fd = mch_fopen(STARTUPTIME, "a");
+! TIME_MSG("--- VIM STARTING ---");
+ #endif
+ starttime = time(NULL);
+
+--- 202,216 ----
+ #endif
+
+ #ifdef STARTUPTIME
+! for (i = 1; i < argc; ++i)
+! {
+! if (STRNICMP(argv[i], "--startuptime=", 14) == 0)
+! {
+! time_fd = mch_fopen(argv[i] + 14, "a");
+! TIME_MSG("--- VIM STARTING ---");
+! break;
+! }
+! }
+ #endif
+ starttime = time(NULL);
+
+***************
+*** 1150,1155 ****
+--- 1156,1173 ----
+ cursor_on();
+
+ do_redraw = FALSE;
++
++ #ifdef STARTUPTIME
++ /* Now that we have drawn the first screen all the startup stuff
++ * has been done, close any file for startup messages. */
++ if (time_fd != NULL)
++ {
++ TIME_MSG("first screen update");
++ TIME_MSG("--- VIM STARTED ---");
++ fclose(time_fd);
++ time_fd = NULL;
++ }
++ #endif
+ }
+ #ifdef FEAT_GUI
+ if (need_mouse_correct)
+***************
+*** 1743,1748 ****
+--- 1761,1770 ----
+ /* already processed, skip */
+ }
+ #endif
++ else if (STRNICMP(argv[0] + argv_idx, "startuptime", 11) == 0)
++ {
++ /* already processed, skip */
++ }
+ else
+ {
+ if (argv[0][argv_idx])
+***************
+*** 3211,3216 ****
+--- 3233,3252 ----
+
+ static struct timeval prev_timeval;
+
++ # ifdef WIN3264
++ /*
++ * Windows doesn't have gettimeofday(), although it does have struct timeval.
++ */
++ static int
++ gettimeofday(struct timeval *tv, char *dummy)
++ {
++ long t = clock();
++ tv->tv_sec = t / CLOCKS_PER_SEC;
++ tv->tv_usec = (t - tv->tv_sec * CLOCKS_PER_SEC) * 1000000 / CLOCKS_PER_SEC;
++ return 0;
++ }
++ # endif
++
+ /*
+ * Save the previous time before doing something that could nest.
+ * set "*tv_rel" to the time elapsed so far.
+***************
+*** 3299,3318 ****
+ }
+ }
+
+- # ifdef WIN3264
+- /*
+- * Windows doesn't have gettimeofday(), although it does have struct timeval.
+- */
+- int
+- gettimeofday(struct timeval *tv, char *dummy)
+- {
+- long t = clock();
+- tv->tv_sec = t / CLOCKS_PER_SEC;
+- tv->tv_usec = (t - tv->tv_sec * CLOCKS_PER_SEC) * 1000000 / CLOCKS_PER_SEC;
+- return 0;
+- }
+- # endif
+-
+ #endif
+
+ #if defined(FEAT_CLIENTSERVER) || defined(PROTO)
+--- 3335,3340 ----
+*** ../vim-7.2.268/src/macros.h 2009-05-17 13:30:58.000000000 +0200
+--- src/macros.h 2009-10-10 15:19:07.000000000 +0200
+***************
+*** 243,249 ****
+ #endif
+
+ #ifdef STARTUPTIME
+! # define TIME_MSG(s) time_msg(s, NULL)
+ #else
+ # define TIME_MSG(s)
+ #endif
+--- 243,249 ----
+ #endif
+
+ #ifdef STARTUPTIME
+! # define TIME_MSG(s) { if (time_fd != NULL) time_msg(s, NULL); }
+ #else
+ # define TIME_MSG(s)
+ #endif
+*** ../vim-7.2.268/src/version.c 2009-11-03 11:43:05.000000000 +0100
+--- src/version.c 2009-11-03 12:06:31.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 269,
+ /**/
+
+--
+BEDEVERE: Look! It's the old man from scene 24 - what's he Doing here?
+ARTHUR: He is the keeper of the Bridge. He asks each traveler five
+ questions ...
+GALAHAD: Three questions.
+ "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/source/ap/vim/patches/7.2.270 b/source/ap/vim/patches/7.2.270
new file mode 100644
index 00000000..7ad6458f
--- /dev/null
+++ b/source/ap/vim/patches/7.2.270
@@ -0,0 +1,72 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.270
+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.2.270
+Problem: Using ":@c" when the c register contains a CR causes the rest to
+ be executed later. (Dexter Douglas)
+Solution: Don't check for typeahead to start with ':', keep executing
+ commands until all added typeahead has been used.
+Files: src/ex_docmd.c
+
+
+*** ../vim-7.2.269/src/ex_docmd.c 2009-09-30 13:23:57.000000000 +0200
+--- src/ex_docmd.c 2009-10-28 12:06:54.000000000 +0100
+***************
+*** 8358,8363 ****
+--- 8358,8364 ----
+ exarg_T *eap;
+ {
+ int c;
++ int prev_len = typebuf.tb_len;
+
+ curwin->w_cursor.lnum = eap->line2;
+
+***************
+*** 8383,8393 ****
+
+ /*
+ * Execute from the typeahead buffer.
+! * Originally this didn't check for the typeahead buffer to be empty,
+! * thus could read more Ex commands from stdin. It's not clear why,
+! * it is certainly unexpected.
+ */
+! while ((!stuff_empty() || typebuf.tb_len > 0) && vpeekc() == ':')
+ (void)do_cmdline(NULL, getexline, NULL, DOCMD_NOWAIT|DOCMD_VERBOSE);
+
+ exec_from_reg = save_efr;
+--- 8384,8393 ----
+
+ /*
+ * Execute from the typeahead buffer.
+! * Continue until the stuff buffer is empty and all added characters
+! * have been consumed.
+ */
+! while (!stuff_empty() || typebuf.tb_len > prev_len)
+ (void)do_cmdline(NULL, getexline, NULL, DOCMD_NOWAIT|DOCMD_VERBOSE);
+
+ exec_from_reg = save_efr;
+*** ../vim-7.2.269/src/version.c 2009-11-03 12:10:39.000000000 +0100
+--- src/version.c 2009-11-03 12:32:47.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 270,
+ /**/
+
+--
+To the optimist, the glass is half full.
+To the pessimist, the glass is half empty.
+To the engineer, the glass is twice as big as it needs to be.
+
+ /// 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/source/ap/vim/patches/7.2.271 b/source/ap/vim/patches/7.2.271
new file mode 100644
index 00000000..07427981
--- /dev/null
+++ b/source/ap/vim/patches/7.2.271
@@ -0,0 +1,92 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.271
+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.2.271
+Problem: Using freed memory in Motif GUI version when making a choice.
+Solution: Free memory only after using it. (Dominique Pelle)
+Files: src/gui_xmdlg.c
+
+
+*** ../vim-7.2.270/src/gui_xmdlg.c 2009-05-21 23:25:38.000000000 +0200
+--- src/gui_xmdlg.c 2009-10-28 21:56:15.000000000 +0100
+***************
+*** 10,16 ****
+ /*
+ * (C) 2001,2005 by Marcin Dalecki <martin@dalecki.de>
+ *
+! * Implementation of dialogue functions for the Motif GUI variant.
+ *
+ * Note about Lesstif: Apparently lesstif doesn't get the widget layout right,
+ * when using a dynamic scrollbar policy.
+--- 10,16 ----
+ /*
+ * (C) 2001,2005 by Marcin Dalecki <martin@dalecki.de>
+ *
+! * Implementation of dialog functions for the Motif GUI variant.
+ *
+ * Note about Lesstif: Apparently lesstif doesn't get the widget layout right,
+ * when using a dynamic scrollbar policy.
+***************
+*** 633,648 ****
+ data->sel[which] = XtNewString(sel);
+ else
+ {
+- XtFree(data->sel[which]);
+ if (!strcmp(data->sel[which], sel))
+ {
+ /* unselecting current selection */
+ data->sel[which] = NULL;
+ if (w)
+ XmListDeselectItem(w, call_data->item);
+ }
+ else
+ data->sel[which] = XtNewString(sel);
+ }
+ XtFree(sel);
+
+--- 633,651 ----
+ data->sel[which] = XtNewString(sel);
+ else
+ {
+ if (!strcmp(data->sel[which], sel))
+ {
+ /* unselecting current selection */
++ XtFree(data->sel[which]);
+ data->sel[which] = NULL;
+ if (w)
+ XmListDeselectItem(w, call_data->item);
+ }
+ else
++ {
++ XtFree(data->sel[which]);
+ data->sel[which] = XtNewString(sel);
++ }
+ }
+ XtFree(sel);
+
+*** ../vim-7.2.270/src/version.c 2009-11-03 12:38:50.000000000 +0100
+--- src/version.c 2009-11-03 12:48:26.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 271,
+ /**/
+
+--
+ROBIN: (warily) And if you get a question wrong?
+ARTHUR: You are cast into the Gorge of Eternal Peril.
+ROBIN: Oh ... wacho!
+ "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/source/ap/vim/patches/7.2.272 b/source/ap/vim/patches/7.2.272
new file mode 100644
index 00000000..22bebbcc
--- /dev/null
+++ b/source/ap/vim/patches/7.2.272
@@ -0,0 +1,82 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.272
+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.2.272
+Problem: "_.svz" is not recognized as a swap file. (David M. Besonen)
+Solution: Accept .s[uvw][a-z] as a swap file name extension.
+Files: src/memline.c
+
+
+*** ../vim-7.2.271/src/memline.c 2009-04-22 15:56:27.000000000 +0200
+--- src/memline.c 2009-10-29 20:55:08.000000000 +0100
+***************
+*** 864,884 ****
+ recoverymode = TRUE;
+ called_from_main = (curbuf->b_ml.ml_mfp == NULL);
+ attr = hl_attr(HLF_E);
+! /*
+! * If the file name ends in ".sw?" we use it directly.
+! * Otherwise a search is done to find the swap file(s).
+! */
+ fname = curbuf->b_fname;
+ if (fname == NULL) /* When there is no file name */
+ fname = (char_u *)"";
+ len = (int)STRLEN(fname);
+ if (len >= 4 &&
+ #if defined(VMS) || defined(RISCOS)
+! STRNICMP(fname + len - 4, "_sw" , 3)
+ #else
+! STRNICMP(fname + len - 4, ".sw" , 3)
+ #endif
+! == 0)
+ {
+ directly = TRUE;
+ fname = vim_strsave(fname); /* make a copy for mf_open() */
+--- 864,887 ----
+ recoverymode = TRUE;
+ called_from_main = (curbuf->b_ml.ml_mfp == NULL);
+ attr = hl_attr(HLF_E);
+!
+! /*
+! * If the file name ends in ".s[uvw][a-z]" we assume this is the swap file.
+! * Otherwise a search is done to find the swap file(s).
+! */
+ fname = curbuf->b_fname;
+ if (fname == NULL) /* When there is no file name */
+ fname = (char_u *)"";
+ len = (int)STRLEN(fname);
+ if (len >= 4 &&
+ #if defined(VMS) || defined(RISCOS)
+! STRNICMP(fname + len - 4, "_s" , 2)
+ #else
+! STRNICMP(fname + len - 4, ".s" , 2)
+ #endif
+! == 0
+! && vim_strchr((char_u *)"UVWuvw", fname[len - 2]) != NULL
+! && ASCII_ISALPHA(fname[len - 1]))
+ {
+ directly = TRUE;
+ fname = vim_strsave(fname); /* make a copy for mf_open() */
+*** ../vim-7.2.271/src/version.c 2009-11-03 12:53:44.000000000 +0100
+--- src/version.c 2009-11-03 13:02:51.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 272,
+ /**/
+
+--
+Sorry, no fortune 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 ///
diff --git a/source/ap/vim/patches/7.2.273 b/source/ap/vim/patches/7.2.273
new file mode 100644
index 00000000..ac00afaa
--- /dev/null
+++ b/source/ap/vim/patches/7.2.273
@@ -0,0 +1,130 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.273
+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.2.273
+Problem: Crash with redir to unknown array. (Christian Brabandt)
+Solution: Don't assign the redir result when there was an error.
+Files: src/eval.c
+
+
+*** ../vim-7.2.272/src/eval.c 2009-09-30 15:15:33.000000000 +0200
+--- src/eval.c 2009-11-03 12:05:07.000000000 +0100
+***************
+*** 988,1000 ****
+ int err;
+ typval_T tv;
+
+! /* Make sure a valid variable name is specified */
+ if (!eval_isnamec1(*name))
+ {
+ EMSG(_(e_invarg));
+ return FAIL;
+ }
+
+ redir_varname = vim_strsave(name);
+ if (redir_varname == NULL)
+ return FAIL;
+--- 988,1001 ----
+ int err;
+ typval_T tv;
+
+! /* Catch a bad name early. */
+ if (!eval_isnamec1(*name))
+ {
+ EMSG(_(e_invarg));
+ return FAIL;
+ }
+
++ /* Make a copy of the name, it is used in redir_lval until redir ends. */
+ redir_varname = vim_strsave(name);
+ if (redir_varname == NULL)
+ return FAIL;
+***************
+*** 1019,1024 ****
+--- 1020,1026 ----
+ EMSG(_(e_trailing));
+ else
+ EMSG(_(e_invarg));
++ redir_endp = NULL; /* don't store a value, only cleanup */
+ var_redir_stop();
+ return FAIL;
+ }
+***************
+*** 1037,1042 ****
+--- 1039,1045 ----
+ did_emsg |= save_emsg;
+ if (err)
+ {
++ redir_endp = NULL; /* don't store a value, only cleanup */
+ var_redir_stop();
+ return FAIL;
+ }
+***************
+*** 1085,1090 ****
+--- 1088,1094 ----
+
+ /*
+ * Stop redirecting command output to a variable.
++ * Frees the allocated memory.
+ */
+ void
+ var_redir_stop()
+***************
+*** 1093,1106 ****
+
+ if (redir_lval != NULL)
+ {
+! /* Append the trailing NUL. */
+! ga_append(&redir_ga, NUL);
+
+! /* Assign the text to the variable. */
+! tv.v_type = VAR_STRING;
+! tv.vval.v_string = redir_ga.ga_data;
+! set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)".");
+! vim_free(tv.vval.v_string);
+
+ clear_lval(redir_lval);
+ vim_free(redir_lval);
+--- 1097,1114 ----
+
+ if (redir_lval != NULL)
+ {
+! /* If there was no error: assign the text to the variable. */
+! if (redir_endp != NULL)
+! {
+! ga_append(&redir_ga, NUL); /* Append the trailing NUL. */
+! tv.v_type = VAR_STRING;
+! tv.vval.v_string = redir_ga.ga_data;
+! set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)".");
+! }
+
+! /* free the collected output */
+! vim_free(redir_ga.ga_data);
+! redir_ga.ga_data = NULL;
+
+ clear_lval(redir_lval);
+ vim_free(redir_lval);
+*** ../vim-7.2.272/src/version.c 2009-11-03 13:06:03.000000000 +0100
+--- src/version.c 2009-11-03 14:24:06.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 273,
+ /**/
+
+--
+Permission is granted to read this message out aloud on Kings Cross Road,
+London, under the condition that the orator is properly dressed.
+
+ /// 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/source/ap/vim/patches/7.2.274 b/source/ap/vim/patches/7.2.274
new file mode 100644
index 00000000..809cedcf
--- /dev/null
+++ b/source/ap/vim/patches/7.2.274
@@ -0,0 +1,130 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.274
+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.2.274
+Problem: Syntax folding doesn't work properly when adding a comment.
+Solution: Fix it and add a test. (Lech Lorens)
+Files: src/fold.c, src/testdir/test45.in, src/testdir/test45.ok
+
+
+*** ../vim-7.2.273/src/fold.c 2009-09-18 15:16:37.000000000 +0200
+--- src/fold.c 2009-11-03 12:36:37.000000000 +0100
+***************
+*** 2256,2261 ****
+--- 2256,2295 ----
+ }
+ }
+
++ /*
++ * If folding is defined by the syntax, it is possible that a change in
++ * one line will cause all sub-folds of the current fold to change (e.g.,
++ * closing a C-style comment can cause folds in the subsequent lines to
++ * appear). To take that into account we should adjust the value of "bot"
++ * to point to the end of the current fold:
++ */
++ if (foldlevelSyntax == getlevel)
++ {
++ garray_T *gap = &wp->w_folds;
++ fold_T *fp = NULL;
++ int current_fdl = 0;
++ linenr_T fold_start_lnum = 0;
++ linenr_T lnum_rel = fline.lnum;
++
++ while (current_fdl < fline.lvl)
++ {
++ if (!foldFind(gap, lnum_rel, &fp))
++ break;
++ ++current_fdl;
++
++ fold_start_lnum += fp->fd_top;
++ gap = &fp->fd_nested;
++ lnum_rel -= fp->fd_top;
++ }
++ if (fp != NULL && current_fdl == fline.lvl)
++ {
++ linenr_T fold_end_lnum = fold_start_lnum + fp->fd_len;
++
++ if (fold_end_lnum > bot)
++ bot = fold_end_lnum;
++ }
++ }
++
+ start = fline.lnum;
+ end = bot;
+ /* Do at least one line. */
+*** ../vim-7.2.273/src/testdir/test45.in 2007-09-25 17:58:43.000000000 +0200
+--- src/testdir/test45.in 2009-11-03 12:22:38.000000000 +0100
+***************
+*** 28,36 ****
+ k:call append("$", foldlevel("."))
+ :" test syntax folding
+ :set fdm=syntax fdl=0
+! :syn region Hup start="dd" end="hh" fold
+ Gzk:call append("$", "folding " . getline("."))
+ k:call append("$", getline("."))
+ :" test expression folding
+ :fun Flvl()
+ let l = getline(v:lnum)
+--- 28,41 ----
+ k:call append("$", foldlevel("."))
+ :" test syntax folding
+ :set fdm=syntax fdl=0
+! :syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
+! :syn region Fd1 start="ee" end="ff" fold contained
+! :syn region Fd2 start="gg" end="hh" fold contained
+! :syn region Fd3 start="commentstart" end="commentend" fold contained
+ Gzk:call append("$", "folding " . getline("."))
+ k:call append("$", getline("."))
++ jAcommentstart Acommentend:set fdl=1
++ 3j:call append("$", getline("."))
+ :" test expression folding
+ :fun Flvl()
+ let l = getline(v:lnum)
+*** ../vim-7.2.273/src/testdir/test45.ok 2004-06-13 17:47:37.000000000 +0200
+--- src/testdir/test45.ok 2009-11-03 12:22:50.000000000 +0100
+***************
+*** 8,15 ****
+ 0
+ indent 2
+ 1
+! folding 8 hh
+ 3 cc
+ expr 2
+ 1
+ 2
+--- 8,16 ----
+ 0
+ indent 2
+ 1
+! folding 9 ii
+ 3 cc
++ 7 gg
+ expr 2
+ 1
+ 2
+*** ../vim-7.2.273/src/version.c 2009-11-03 14:26:29.000000000 +0100
+--- src/version.c 2009-11-03 14:44:21.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 274,
+ /**/
+
+--
+BRIDGEKEEPER: What is your favorite colour?
+LAUNCELOT: Blue.
+BRIDGEKEEPER: Right. Off you go.
+ "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/source/ap/vim/patches/7.2.275 b/source/ap/vim/patches/7.2.275
new file mode 100644
index 00000000..c6c63264
--- /dev/null
+++ b/source/ap/vim/patches/7.2.275
@@ -0,0 +1,95 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.275
+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.2.275
+Problem: Warning for unused argument and comparing signed and unsigned.
+Solution: Add type cast.
+Files: src/memline.c
+
+
+*** ../vim-7.2.274/src/memline.c 2009-11-03 13:06:03.000000000 +0100
+--- src/memline.c 2009-10-29 20:55:08.000000000 +0100
+***************
+*** 1285,1291 ****
+ for (i = 0; i < dp->db_line_count; ++i)
+ {
+ txt_start = (dp->db_index[i] & DB_INDEX_MASK);
+! if (txt_start <= HEADER_SIZE
+ || txt_start >= (int)dp->db_txt_end)
+ {
+ p = (char_u *)"???";
+--- 1285,1291 ----
+ for (i = 0; i < dp->db_line_count; ++i)
+ {
+ txt_start = (dp->db_index[i] & DB_INDEX_MASK);
+! if (txt_start <= (int)HEADER_SIZE
+ || txt_start >= (int)dp->db_txt_end)
+ {
+ p = (char_u *)"???";
+***************
+*** 1296,1302 ****
+ ml_append(lnum++, p, (colnr_T)0, TRUE);
+ }
+ if (has_error)
+! ml_append(lnum++, (char_u *)_("???END"), (colnr_T)0, TRUE);
+ }
+ }
+ }
+--- 1296,1303 ----
+ ml_append(lnum++, p, (colnr_T)0, TRUE);
+ }
+ if (has_error)
+! ml_append(lnum++, (char_u *)_("???END"),
+! (colnr_T)0, TRUE);
+ }
+ }
+ }
+***************
+*** 3576,3586 ****
+ * Make swap file name out of the file name and a directory name.
+ * Returns pointer to allocated memory or NULL.
+ */
+- /*ARGSUSED*/
+ char_u *
+ makeswapname(fname, ffname, buf, dir_name)
+ char_u *fname;
+! char_u *ffname;
+ buf_T *buf;
+ char_u *dir_name;
+ {
+--- 3577,3586 ----
+ * Make swap file name out of the file name and a directory name.
+ * Returns pointer to allocated memory or NULL.
+ */
+ char_u *
+ makeswapname(fname, ffname, buf, dir_name)
+ char_u *fname;
+! char_u *ffname UNUSED;
+ buf_T *buf;
+ char_u *dir_name;
+ {
+*** ../vim-7.2.274/src/version.c 2009-11-03 14:46:35.000000000 +0100
+--- src/version.c 2009-11-03 15:28:33.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 275,
+ /**/
+
+--
+BRIDGEKEEPER: What is your favorite colour?
+GAWAIN: Blue ... No yelloooooww!
+ "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/source/ap/vim/patches/7.2.276 b/source/ap/vim/patches/7.2.276
new file mode 100644
index 00000000..15dc68b0
--- /dev/null
+++ b/source/ap/vim/patches/7.2.276
@@ -0,0 +1,63 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.276
+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.2.276
+Problem: Crash when setting 'isprint' to a small bullet. (Raul Coronado)
+Solution: Check for the character to be < 256. Also make it possible to
+ specify a range of multi-byte characters. (Lech Lorens)
+Files: src/charset.c
+
+
+*** ../vim-7.2.275/src/charset.c 2009-10-07 16:19:52.000000000 +0200
+--- src/charset.c 2009-11-03 12:46:12.000000000 +0100
+***************
+*** 187,195 ****
+ if (VIM_ISDIGIT(*p))
+ c2 = getdigits(&p);
+ else
+ c2 = *p++;
+ }
+! if (c <= 0 || (c2 < c && c2 != -1) || c2 >= 256
+ || !(*p == NUL || *p == ','))
+ return FAIL;
+
+--- 187,200 ----
+ if (VIM_ISDIGIT(*p))
+ c2 = getdigits(&p);
+ else
++ #ifdef FEAT_MBYTE
++ if (has_mbyte)
++ c2 = mb_ptr2char_adv(&p);
++ else
++ #endif
+ c2 = *p++;
+ }
+! if (c <= 0 || c >= 256 || (c2 < c && c2 != -1) || c2 >= 256
+ || !(*p == NUL || *p == ','))
+ return FAIL;
+
+*** ../vim-7.2.275/src/version.c 2009-11-03 15:32:58.000000000 +0100
+--- src/version.c 2009-11-03 16:03:18.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 276,
+ /**/
+
+--
+BRIDGEKEEPER: What is your favorite editor?
+GAWAIN: Emacs ... No, Viiiiiiiiiiimmmmmmm!
+ "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE 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/source/ap/vim/patches/7.2.277 b/source/ap/vim/patches/7.2.277
new file mode 100644
index 00000000..ed3caf4d
--- /dev/null
+++ b/source/ap/vim/patches/7.2.277
@@ -0,0 +1,66 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.277
+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.2.277
+Problem: CTRL-Y in a diff'ed window may move the cursor outside of the
+ window. (Lech Lorens)
+Solution: Limit the number of filler lines to the height of the window.
+ Don't reset filler lines to zero for an empty buffer.
+Files: src/move.c
+
+
+*** ../vim-7.2.276/src/move.c 2009-05-15 21:31:11.000000000 +0200
+--- src/move.c 2009-11-03 14:39:55.000000000 +0100
+***************
+*** 183,191 ****
+ if (curwin->w_topline != 1)
+ redraw_later(NOT_VALID);
+ curwin->w_topline = 1;
+- #ifdef FEAT_DIFF
+- curwin->w_topfill = 0;
+- #endif
+ curwin->w_botline = 2;
+ curwin->w_valid |= VALID_BOTLINE|VALID_BOTLINE_AP;
+ #ifdef FEAT_SCROLLBIND
+--- 183,188 ----
+***************
+*** 1257,1263 ****
+ while (line_count-- > 0)
+ {
+ #ifdef FEAT_DIFF
+! if (curwin->w_topfill < diff_check(curwin, curwin->w_topline))
+ {
+ ++curwin->w_topfill;
+ ++done;
+--- 1254,1261 ----
+ while (line_count-- > 0)
+ {
+ #ifdef FEAT_DIFF
+! if (curwin->w_topfill < diff_check(curwin, curwin->w_topline)
+! && curwin->w_topfill < curwin->w_height - 1)
+ {
+ ++curwin->w_topfill;
+ ++done;
+*** ../vim-7.2.276/src/version.c 2009-11-03 16:03:59.000000000 +0100
+--- src/version.c 2009-11-03 16:22:04.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 277,
+ /**/
+
+--
+SIGFUN -- signature too funny (core dumped)
+
+ /// 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/source/ap/vim/patches/7.2.278 b/source/ap/vim/patches/7.2.278
new file mode 100644
index 00000000..edf4e58a
--- /dev/null
+++ b/source/ap/vim/patches/7.2.278
@@ -0,0 +1,74 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.278
+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.2.278
+Problem: Using magic number in the folding code.
+Solution: Use the defined MAX_LEVEL.
+Files: src/fold.c
+
+
+*** ../vim-7.2.277/src/fold.c 2009-11-03 14:46:35.000000000 +0100
+--- src/fold.c 2009-11-03 12:36:37.000000000 +0100
+***************
+*** 1932,1938 ****
+ #ifdef FEAT_EVAL
+ if (*wp->w_p_fdt != NUL)
+ {
+! char_u dashes[51];
+ win_T *save_curwin;
+ int level;
+ char_u *p;
+--- 1932,1938 ----
+ #ifdef FEAT_EVAL
+ if (*wp->w_p_fdt != NUL)
+ {
+! char_u dashes[MAX_LEVEL + 2];
+ win_T *save_curwin;
+ int level;
+ char_u *p;
+***************
+*** 1944,1951 ****
+ /* Set "v:folddashes" to a string of "level" dashes. */
+ /* Set "v:foldlevel" to "level". */
+ level = foldinfo->fi_level;
+! if (level > 50)
+! level = 50;
+ vim_memset(dashes, '-', (size_t)level);
+ dashes[level] = NUL;
+ set_vim_var_string(VV_FOLDDASHES, dashes, -1);
+--- 1944,1951 ----
+ /* Set "v:folddashes" to a string of "level" dashes. */
+ /* Set "v:foldlevel" to "level". */
+ level = foldinfo->fi_level;
+! if (level > (int)sizeof(dashes) - 1)
+! level = (int)sizeof(dashes) - 1;
+ vim_memset(dashes, '-', (size_t)level);
+ dashes[level] = NUL;
+ set_vim_var_string(VV_FOLDDASHES, dashes, -1);
+*** ../vim-7.2.277/src/version.c 2009-11-03 16:22:59.000000000 +0100
+--- src/version.c 2009-11-03 16:29:08.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 278,
+ /**/
+
+--
+BRIDGEKEEPER: What is the air-speed velocity of an unladen swallow?
+ARTHUR: What do you mean? An African or European swallow?
+BRIDGEKEEPER: Er ... I don't know that ... Aaaaarrrrrrggghhh!
+ BRIDGEKEEPER is cast into the gorge.
+ "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/source/ap/vim/patches/7.2.279 b/source/ap/vim/patches/7.2.279
new file mode 100644
index 00000000..bdf58fc8
--- /dev/null
+++ b/source/ap/vim/patches/7.2.279
@@ -0,0 +1,120 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.279
+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.2.279
+Problem: Invalid memory read with visual mode "r". (Dominique Pelle)
+Solution: Make sure the cursor position is valid. Don't check the cursor
+ position but the position being used. And make sure we get the
+ right line.
+Files: src/misc2.c, src/ops.c
+
+
+*** ../vim-7.2.278/src/misc2.c 2009-05-16 21:06:36.000000000 +0200
+--- src/misc2.c 2009-11-03 16:43:10.000000000 +0100
+***************
+*** 156,162 ****
+ || ((ve_flags & VE_ONEMORE) && wcol < MAXCOL)
+ #endif
+ ;
+! line = ml_get_curline();
+
+ if (wcol >= MAXCOL)
+ {
+--- 156,162 ----
+ || ((ve_flags & VE_ONEMORE) && wcol < MAXCOL)
+ #endif
+ ;
+! line = ml_get_buf(curbuf, pos->lnum, FALSE);
+
+ if (wcol >= MAXCOL)
+ {
+***************
+*** 332,340 ****
+ #endif
+
+ #ifdef FEAT_MBYTE
+! /* prevent cursor from moving on the trail byte */
+ if (has_mbyte)
+! mb_adjust_cursor();
+ #endif
+
+ if (col < wcol)
+--- 332,340 ----
+ #endif
+
+ #ifdef FEAT_MBYTE
+! /* prevent from moving onto a trail byte */
+ if (has_mbyte)
+! mb_adjustpos(pos);
+ #endif
+
+ if (col < wcol)
+*** ../vim-7.2.278/src/ops.c 2009-09-30 15:15:33.000000000 +0200
+--- src/ops.c 2009-11-03 15:18:50.000000000 +0100
+***************
+*** 2020,2025 ****
+--- 2020,2026 ----
+ bd.is_MAX = (curwin->w_curswant == MAXCOL);
+ for ( ; curwin->w_cursor.lnum <= oap->end.lnum; ++curwin->w_cursor.lnum)
+ {
++ curwin->w_cursor.col = 0; /* make sure cursor position is valid */
+ block_prep(oap, &bd, curwin->w_cursor.lnum, TRUE);
+ if (bd.textlen == 0 && (!virtual_op || bd.is_MAX))
+ continue; /* nothing to replace */
+***************
+*** 2035,2040 ****
+--- 2036,2042 ----
+ {
+ pos_T vpos;
+
++ vpos.lnum = curwin->w_cursor.lnum;
+ getvpos(&vpos, oap->start_vcol);
+ bd.startspaces += vpos.coladd;
+ n = bd.startspaces;
+***************
+*** 2693,2703 ****
+ * initial coladd offset as part of "startspaces" */
+ if (bd.is_short)
+ {
+! linenr_T lnum = curwin->w_cursor.lnum;
+!
+! curwin->w_cursor.lnum = linenr;
+ (void)getvpos(&vpos, oap->start_vcol);
+- curwin->w_cursor.lnum = lnum;
+ }
+ else
+ vpos.coladd = 0;
+--- 2695,2702 ----
+ * initial coladd offset as part of "startspaces" */
+ if (bd.is_short)
+ {
+! vpos.lnum = linenr;
+ (void)getvpos(&vpos, oap->start_vcol);
+ }
+ else
+ vpos.coladd = 0;
+*** ../vim-7.2.278/src/version.c 2009-11-03 16:29:48.000000000 +0100
+--- src/version.c 2009-11-03 16:41:53.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 279,
+ /**/
+
+--
+BEDEVERE: How do you know so much about swallows?
+ARTHUR: Well you have to know these things when you're a king, you know.
+ "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/source/ap/vim/patches/7.2.280 b/source/ap/vim/patches/7.2.280
new file mode 100644
index 00000000..6223ac45
--- /dev/null
+++ b/source/ap/vim/patches/7.2.280
@@ -0,0 +1,251 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.280
+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.2.280
+Problem: A redraw in a custom statusline with %! may cause a crash.
+ (Yukihiro Nakadaira)
+Solution: Make a copy of 'statusline'. Also fix typo in function name
+ redraw_custum_statusline. (party by Dominique Pelle)
+Files: src/screen.c
+
+
+*** ../vim-7.2.279/src/screen.c 2009-07-29 16:13:35.000000000 +0200
+--- src/screen.c 2009-11-03 17:13:16.000000000 +0100
+***************
+*** 132,138 ****
+ static void draw_vsep_win __ARGS((win_T *wp, int row));
+ #endif
+ #ifdef FEAT_STL_OPT
+! static void redraw_custum_statusline __ARGS((win_T *wp));
+ #endif
+ #ifdef FEAT_SEARCH_EXTRA
+ #define SEARCH_HL_PRIORITY 0
+--- 132,138 ----
+ static void draw_vsep_win __ARGS((win_T *wp, int row));
+ #endif
+ #ifdef FEAT_STL_OPT
+! static void redraw_custom_statusline __ARGS((win_T *wp));
+ #endif
+ #ifdef FEAT_SEARCH_EXTRA
+ #define SEARCH_HL_PRIORITY 0
+***************
+*** 5772,5778 ****
+ else if (*p_stl != NUL || *wp->w_p_stl != NUL)
+ {
+ /* redraw custom status line */
+! redraw_custum_statusline(wp);
+ }
+ #endif
+ else
+--- 5794,5800 ----
+ else if (*p_stl != NUL || *wp->w_p_stl != NUL)
+ {
+ /* redraw custom status line */
+! redraw_custom_statusline(wp);
+ }
+ #endif
+ else
+***************
+*** 5897,5914 ****
+ * errors encountered.
+ */
+ static void
+! redraw_custum_statusline(wp)
+ win_T *wp;
+ {
+! int save_called_emsg = called_emsg;
+
+ called_emsg = FALSE;
+ win_redr_custom(wp, FALSE);
+ if (called_emsg)
+ set_string_option_direct((char_u *)"statusline", -1,
+ (char_u *)"", OPT_FREE | (*wp->w_p_stl != NUL
+ ? OPT_LOCAL : OPT_GLOBAL), SID_ERROR);
+ called_emsg |= save_called_emsg;
+ }
+ #endif
+
+--- 5919,5949 ----
+ * errors encountered.
+ */
+ static void
+! redraw_custom_statusline(wp)
+ win_T *wp;
+ {
+! static int entered = FALSE;
+! int save_called_emsg = called_emsg;
+!
+! /* When called recursively return. This can happen when the statusline
+! * contains an expression that triggers a redraw. */
+! if (entered)
+! return;
+! entered = TRUE;
+
+ called_emsg = FALSE;
+ win_redr_custom(wp, FALSE);
+ if (called_emsg)
++ {
++ /* When there is an error disable the statusline, otherwise the
++ * display is messed up with errors and a redraw triggers the problem
++ * again and again. */
+ set_string_option_direct((char_u *)"statusline", -1,
+ (char_u *)"", OPT_FREE | (*wp->w_p_stl != NUL
+ ? OPT_LOCAL : OPT_GLOBAL), SID_ERROR);
++ }
+ called_emsg |= save_called_emsg;
++ entered = FALSE;
+ }
+ #endif
+
+***************
+*** 6016,6021 ****
+--- 6051,6057 ----
+ int len;
+ int fillchar;
+ char_u buf[MAXPATHL];
++ char_u *stl;
+ char_u *p;
+ struct stl_hlrec hltab[STL_MAX_ITEM];
+ struct stl_hlrec tabtab[STL_MAX_ITEM];
+***************
+*** 6025,6031 ****
+ if (wp == NULL)
+ {
+ /* Use 'tabline'. Always at the first line of the screen. */
+! p = p_tal;
+ row = 0;
+ fillchar = ' ';
+ attr = hl_attr(HLF_TPF);
+--- 6061,6067 ----
+ if (wp == NULL)
+ {
+ /* Use 'tabline'. Always at the first line of the screen. */
+! stl = p_tal;
+ row = 0;
+ fillchar = ' ';
+ attr = hl_attr(HLF_TPF);
+***************
+*** 6042,6058 ****
+
+ if (draw_ruler)
+ {
+! p = p_ruf;
+ /* advance past any leading group spec - implicit in ru_col */
+! if (*p == '%')
+ {
+! if (*++p == '-')
+! p++;
+! if (atoi((char *) p))
+! while (VIM_ISDIGIT(*p))
+! p++;
+! if (*p++ != '(')
+! p = p_ruf;
+ }
+ #ifdef FEAT_VERTSPLIT
+ col = ru_col - (Columns - W_WIDTH(wp));
+--- 6078,6094 ----
+
+ if (draw_ruler)
+ {
+! stl = p_ruf;
+ /* advance past any leading group spec - implicit in ru_col */
+! if (*stl == '%')
+ {
+! if (*++stl == '-')
+! stl++;
+! if (atoi((char *)stl))
+! while (VIM_ISDIGIT(*stl))
+! stl++;
+! if (*stl++ != '(')
+! stl = p_ruf;
+ }
+ #ifdef FEAT_VERTSPLIT
+ col = ru_col - (Columns - W_WIDTH(wp));
+***************
+*** 6081,6089 ****
+ else
+ {
+ if (*wp->w_p_stl != NUL)
+! p = wp->w_p_stl;
+ else
+! p = p_stl;
+ # ifdef FEAT_EVAL
+ use_sandbox = was_set_insecurely((char_u *)"statusline",
+ *wp->w_p_stl == NUL ? 0 : OPT_LOCAL);
+--- 6117,6125 ----
+ else
+ {
+ if (*wp->w_p_stl != NUL)
+! stl = wp->w_p_stl;
+ else
+! stl = p_stl;
+ # ifdef FEAT_EVAL
+ use_sandbox = was_set_insecurely((char_u *)"statusline",
+ *wp->w_p_stl == NUL ? 0 : OPT_LOCAL);
+***************
+*** 6098,6107 ****
+ if (maxwidth <= 0)
+ return;
+
+ width = build_stl_str_hl(wp == NULL ? curwin : wp,
+ buf, sizeof(buf),
+! p, use_sandbox,
+ fillchar, maxwidth, hltab, tabtab);
+ len = (int)STRLEN(buf);
+
+ while (width < maxwidth && len < (int)sizeof(buf) - 1)
+--- 6134,6147 ----
+ if (maxwidth <= 0)
+ return;
+
++ /* Make a copy, because the statusline may include a function call that
++ * might change the option value and free the memory. */
++ stl = vim_strsave(stl);
+ width = build_stl_str_hl(wp == NULL ? curwin : wp,
+ buf, sizeof(buf),
+! stl, use_sandbox,
+ fillchar, maxwidth, hltab, tabtab);
++ vim_free(stl);
+ len = (int)STRLEN(buf);
+
+ while (width < maxwidth && len < (int)sizeof(buf) - 1)
+***************
+*** 9465,9471 ****
+ #if defined(FEAT_STL_OPT) && defined(FEAT_WINDOWS)
+ if ((*p_stl != NUL || *curwin->w_p_stl != NUL) && curwin->w_status_height)
+ {
+! redraw_custum_statusline(curwin);
+ }
+ else
+ #endif
+--- 9505,9511 ----
+ #if defined(FEAT_STL_OPT) && defined(FEAT_WINDOWS)
+ if ((*p_stl != NUL || *curwin->w_p_stl != NUL) && curwin->w_status_height)
+ {
+! redraw_custom_statusline(curwin);
+ }
+ else
+ #endif
+*** ../vim-7.2.279/src/version.c 2009-11-03 16:44:04.000000000 +0100
+--- src/version.c 2009-11-03 17:15:35.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 280,
+ /**/
+
+--
+Every exit is an entrance into something else.
+
+ /// 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/source/ap/vim/patches/7.2.281 b/source/ap/vim/patches/7.2.281
new file mode 100644
index 00000000..f73d7a54
--- /dev/null
+++ b/source/ap/vim/patches/7.2.281
@@ -0,0 +1,81 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.281
+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.2.281
+Problem: 'cursorcolumn' highlighting is wrong in diff mode.
+Solution: Adjust the column computation. (Lech Lorens)
+Files: src/screen.c
+
+
+*** ../vim-7.2.280/src/screen.c 2009-11-03 17:20:18.000000000 +0100
+--- src/screen.c 2009-11-03 17:13:16.000000000 +0100
+***************
+*** 3008,3018 ****
+ mb_ptr_adv(ptr);
+ }
+
+! #ifdef FEAT_VIRTUALEDIT
+! /* When 'virtualedit' is set the end of the line may be before the
+! * start of the displayed part. */
+! if (vcol < v && *ptr == NUL && virtual_active())
+ vcol = v;
+ #endif
+
+ /* Handle a character that's not completely on the screen: Put ptr at
+--- 3008,3040 ----
+ mb_ptr_adv(ptr);
+ }
+
+! #if defined(FEAT_SYN_HL) || defined(FEAT_VIRTUALEDIT) || defined(FEAT_VISUAL)
+! /* When:
+! * - 'cuc' is set, or
+! * - 'virtualedit' is set, or
+! * - the visual mode is active,
+! * the end of the line may be before the start of the displayed part.
+! */
+! if (vcol < v && (
+! # ifdef FEAT_SYN_HL
+! wp->w_p_cuc
+! # if defined(FEAT_VIRTUALEDIT) || defined(FEAT_VISUAL)
+! ||
+! # endif
+! # endif
+! # ifdef FEAT_VIRTUALEDIT
+! virtual_active()
+! # ifdef FEAT_VISUAL
+! ||
+! # endif
+! # endif
+! # ifdef FEAT_VISUAL
+! (VIsual_active && wp->w_buffer == curwin->w_buffer)
+! # endif
+! ))
+! {
+ vcol = v;
++ }
+ #endif
+
+ /* Handle a character that's not completely on the screen: Put ptr at
+*** ../vim-7.2.280/src/version.c 2009-11-03 17:20:18.000000000 +0100
+--- src/version.c 2009-11-03 17:34:54.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 281,
+ /**/
+
+--
+Every person is responsible for the choices he makes.
+
+ /// 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/source/ap/vim/patches/7.2.282 b/source/ap/vim/patches/7.2.282
new file mode 100644
index 00000000..dd4dc647
--- /dev/null
+++ b/source/ap/vim/patches/7.2.282
@@ -0,0 +1,47 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.282
+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.2.282
+Problem: A fold can't be closed.
+Solution: Initialize fd_small to MAYBE. (Lech Lorens)
+Files: src/fold.c
+
+
+*** ../vim-7.2.281/src/fold.c 2009-11-03 16:29:48.000000000 +0100
+--- src/fold.c 2009-11-03 17:41:50.000000000 +0100
+***************
+*** 2851,2856 ****
+--- 2851,2858 ----
+ fp[1].fd_top = bot + 1;
+ fp[1].fd_len = fp->fd_len - (fp[1].fd_top - fp->fd_top);
+ fp[1].fd_flags = fp->fd_flags;
++ fp[1].fd_small = MAYBE;
++ fp->fd_small = MAYBE;
+
+ /* Move nested folds below bot to new fold. There can't be
+ * any between top and bot, they have been removed by the caller. */
+*** ../vim-7.2.281/src/version.c 2009-11-03 17:36:09.000000000 +0100
+--- src/version.c 2009-11-03 17:59:12.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 282,
+ /**/
+
+--
+You can be stopped by the police for biking over 65 miles per hour.
+You are not allowed to walk across a street on your hands.
+ [real standing laws in Connecticut, United States of America]
+
+ /// 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/source/ap/vim/patches/7.2.283 b/source/ap/vim/patches/7.2.283
new file mode 100644
index 00000000..0d6f6058
--- /dev/null
+++ b/source/ap/vim/patches/7.2.283
@@ -0,0 +1,73 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.283
+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.2.283
+Problem: Changing font while the window is maximized doesn't keep the
+ window maximized.
+Solution: Recompute number of lines and columns after changing font. (James
+ Vega)
+Files: src/gui_gtk_x11.c
+
+
+*** ../vim-7.2.282/src/gui_gtk_x11.c 2009-09-23 18:14:13.000000000 +0200
+--- src/gui_gtk_x11.c 2009-11-03 17:56:27.000000000 +0100
+***************
+*** 5267,5274 ****
+ # endif
+ #endif /* !HAVE_GTK2 */
+
+! /* Preserve the logical dimensions of the screen. */
+! update_window_manager_hints(0, 0);
+
+ return OK;
+ }
+--- 5267,5290 ----
+ # endif
+ #endif /* !HAVE_GTK2 */
+
+! #ifdef HAVE_GTK2
+! if (gui_mch_maximized())
+! {
+! int w, h;
+!
+! /* Update lines and columns in accordance with the new font, keep the
+! * window maximized. */
+! gtk_window_get_size(GTK_WINDOW(gui.mainwin), &w, &h);
+! w -= get_menu_tool_width();
+! h -= get_menu_tool_height();
+! gui_resize_shell(w, h);
+! }
+! else
+! #endif
+! {
+! /* Preserve the logical dimensions of the screen. */
+! update_window_manager_hints(0, 0);
+! }
+
+ return OK;
+ }
+*** ../vim-7.2.282/src/version.c 2009-11-03 18:04:26.000000000 +0100
+--- src/version.c 2009-11-03 18:11:53.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 283,
+ /**/
+
+--
+If an elephant is left tied to a parking meter, the parking fee has to be paid
+just as it would for a vehicle.
+ [real standing law in Florida, United States of America]
+
+ /// 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/source/ap/vim/patches/7.2.284 b/source/ap/vim/patches/7.2.284
new file mode 100644
index 00000000..5b4336b1
--- /dev/null
+++ b/source/ap/vim/patches/7.2.284
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.284
+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.2.284
+Problem: When editing the same buffer in two windows, one with folding,
+ display may be wrong after changes.
+Solution: Call set_topline() to take care of side effects. (Lech Lorens)
+Files: src/misc1.c
+
+
+*** ../vim-7.2.283/src/misc1.c 2009-07-22 11:03:38.000000000 +0200
+--- src/misc1.c 2009-11-03 18:38:15.000000000 +0100
+***************
+*** 2886,2891 ****
+--- 2886,2898 ----
+ }
+ #endif
+ }
++
++ #ifdef FEAT_FOLDING
++ /* Take care of side effects for setting w_topline when folds have
++ * changed. Esp. when the buffer was changed in another window. */
++ if (hasAnyFolding(wp))
++ set_topline(wp, wp->w_topline);
++ #endif
+ }
+ }
+
+*** ../vim-7.2.283/src/version.c 2009-11-03 18:13:36.000000000 +0100
+--- src/version.c 2009-11-03 18:44:12.000000000 +0100
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 284,
+ /**/
+
+--
+Men may not be seen publicly in any kind of strapless gown.
+ [real standing law in Florida, United States of America]
+
+ /// 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/source/ap/vim/patches/7.2.285 b/source/ap/vim/patches/7.2.285
new file mode 100644
index 00000000..2a34e17e
--- /dev/null
+++ b/source/ap/vim/patches/7.2.285
@@ -0,0 +1,56 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.285
+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.2.285 (after 7.2.169)
+Problem: CTRL-U in Insert mode also deletes indent. (Andrey Voropaev)
+Solution: Fix mistake made in patch 7.2.169.
+Files: src/edit.c
+
+
+*** ../vim-7.2.284/src/edit.c 2009-07-09 18:15:19.000000000 +0200
+--- src/edit.c 2009-11-05 20:25:15.000000000 +0100
+***************
+*** 8519,8525 ****
+ {
+ save_col = curwin->w_cursor.col;
+ beginline(BL_WHITE);
+! if (curwin->w_cursor.col < (colnr_T)temp)
+ mincol = curwin->w_cursor.col;
+ curwin->w_cursor.col = save_col;
+ }
+--- 8519,8525 ----
+ {
+ save_col = curwin->w_cursor.col;
+ beginline(BL_WHITE);
+! if (curwin->w_cursor.col < save_col)
+ mincol = curwin->w_cursor.col;
+ curwin->w_cursor.col = save_col;
+ }
+*** ../vim-7.2.284/src/version.c 2009-11-03 18:46:53.000000000 +0100
+--- src/version.c 2009-11-11 13:21:25.000000000 +0100
+***************
+*** 678,679 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 285,
+ /**/
+
+--
+(letter from Mark to Mike, about the film's probable certificate)
+ I would like to get back to the Censor and agree to lose the shits, take
+ the odd Jesus Christ out and lose Oh fuck off, but to retain 'fart in
+ your general direction', 'castanets of your testicles' and 'oral sex'
+ and ask him for an 'A' rating on that basis.
+ "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/source/ap/vim/patches/7.2.286 b/source/ap/vim/patches/7.2.286
new file mode 100644
index 00000000..7577502f
--- /dev/null
+++ b/source/ap/vim/patches/7.2.286
@@ -0,0 +1,227 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.286
+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.2.286 (after 7.2.269)
+Problem: The "--startuptime=<file>" argument is not consistent with other
+ arguments.
+Solution: Use "--startuptime <file>". Added the +startuptime feature.
+Files: runtime/doc/eval.txt, runtime/doc/starting.txt,
+ runtime/doc/various.txt, src/eval.c, src/main.c, src/version.c
+
+
+*** ../vim-7.2.285/runtime/doc/eval.txt 2009-04-22 12:53:31.000000000 +0200
+--- runtime/doc/eval.txt 2009-11-11 13:01:58.000000000 +0100
+***************
+*** 5869,5874 ****
+--- 5881,5887 ----
+ signs Compiled with |:sign| support.
+ smartindent Compiled with 'smartindent' support.
+ sniff Compiled with SNiFF interface support.
++ startuptime Compiled with |--startuptime| support.
+ statusline Compiled with support for 'statusline', 'rulerformat'
+ and special formats of 'titlestring' and 'iconstring'.
+ sun_workshop Compiled with support for Sun |workshop|.
+*** ../vim-7.2.285/runtime/doc/starting.txt 2009-11-03 12:10:39.000000000 +0100
+--- runtime/doc/starting.txt 2009-11-11 13:20:56.000000000 +0100
+***************
+*** 144,155 ****
+ -u NORC no yes
+ --noplugin yes no
+
+! --startuptime={fname} *--startuptime*
+ During startup write timing messages to the file {fname}.
+ This can be used to find out where time is spent while loading
+! your .vimrc and plugins.
+ When {fname} already exists new messages are appended.
+! {only when compiled with this feature}
+
+ *--literal*
+ --literal Take file names literally, don't expand wildcards. Not needed
+--- 144,156 ----
+ -u NORC no yes
+ --noplugin yes no
+
+! --startuptime {fname} *--startuptime*
+ During startup write timing messages to the file {fname}.
+ This can be used to find out where time is spent while loading
+! your .vimrc, plugins and opening the first file.
+ When {fname} already exists new messages are appended.
+! (Only available when compiled with the |+startuptime|
+! feature).
+
+ *--literal*
+ --literal Take file names literally, don't expand wildcards. Not needed
+*** ../vim-7.2.285/runtime/doc/various.txt 2009-07-09 15:55:34.000000000 +0200
+--- runtime/doc/various.txt 2009-11-11 13:03:52.000000000 +0100
+***************
+*** 374,379 ****
+--- 374,380 ----
+ B *+signs* |:sign|
+ N *+smartindent* |'smartindent'|
+ m *+sniff* SniFF interface |sniff|
++ N *+startuptime* |--startuptime| argument
+ N *+statusline* Options 'statusline', 'rulerformat' and special
+ formats of 'titlestring' and 'iconstring'
+ m *+sun_workshop* |workshop|
+*** ../vim-7.2.285/src/eval.c 2009-11-03 14:26:29.000000000 +0100
+--- src/eval.c 2009-11-11 12:59:53.000000000 +0100
+***************
+*** 11736,11741 ****
+--- 11736,11744 ----
+ #ifdef FEAT_SNIFF
+ "sniff",
+ #endif
++ #ifdef STARTUPTIME
++ "startuptime",
++ #endif
+ #ifdef FEAT_STL_OPT
+ "statusline",
+ #endif
+*** ../vim-7.2.285/src/main.c 2009-11-03 12:10:39.000000000 +0100
+--- src/main.c 2009-11-08 12:57:46.000000000 +0100
+***************
+*** 204,212 ****
+ #ifdef STARTUPTIME
+ for (i = 1; i < argc; ++i)
+ {
+! if (STRNICMP(argv[i], "--startuptime=", 14) == 0)
+ {
+! time_fd = mch_fopen(argv[i] + 14, "a");
+ TIME_MSG("--- VIM STARTING ---");
+ break;
+ }
+--- 204,212 ----
+ #ifdef STARTUPTIME
+ for (i = 1; i < argc; ++i)
+ {
+! if (STRICMP(argv[i], "--startuptime") == 0 && i + 1 < argc)
+ {
+! time_fd = mch_fopen(argv[i + 1], "a");
+ TIME_MSG("--- VIM STARTING ---");
+ break;
+ }
+***************
+*** 1726,1731 ****
+--- 1726,1736 ----
+ want_argument = TRUE;
+ argv_idx += 3;
+ }
++ else if (STRNICMP(argv[0] + argv_idx, "startuptime", 11) == 0)
++ {
++ want_argument = TRUE;
++ argv_idx += 11;
++ }
+ #ifdef FEAT_CLIENTSERVER
+ else if (STRNICMP(argv[0] + argv_idx, "serverlist", 10) == 0)
+ ; /* already processed -- no arg */
+***************
+*** 1761,1770 ****
+ /* already processed, skip */
+ }
+ #endif
+- else if (STRNICMP(argv[0] + argv_idx, "startuptime", 11) == 0)
+- {
+- /* already processed, skip */
+- }
+ else
+ {
+ if (argv[0][argv_idx])
+--- 1766,1771 ----
+***************
+*** 2061,2067 ****
+ mainerr(ME_GARBAGE, (char_u *)argv[0]);
+
+ --argc;
+! if (argc < 1 && c != 'S')
+ mainerr_arg_missing((char_u *)argv[0]);
+ ++argv;
+ argv_idx = -1;
+--- 2062,2068 ----
+ mainerr(ME_GARBAGE, (char_u *)argv[0]);
+
+ --argc;
+! if (argc < 1 && c != 'S') /* -S has an optional argument */
+ mainerr_arg_missing((char_u *)argv[0]);
+ ++argv;
+ argv_idx = -1;
+***************
+*** 2102,2112 ****
+ (char_u *)argv[0];
+ break;
+
+! case '-': /* "--cmd {command}" execute command */
+! if (parmp->n_pre_commands >= MAX_ARG_CMDS)
+! mainerr(ME_EXTRA_CMD, NULL);
+! parmp->pre_commands[parmp->n_pre_commands++] =
+ (char_u *)argv[0];
+ break;
+
+ /* case 'd': -d {device} is handled in mch_check_win() for the
+--- 2103,2118 ----
+ (char_u *)argv[0];
+ break;
+
+! case '-':
+! if (argv[-1][2] == 'c')
+! {
+! /* "--cmd {command}" execute command */
+! if (parmp->n_pre_commands >= MAX_ARG_CMDS)
+! mainerr(ME_EXTRA_CMD, NULL);
+! parmp->pre_commands[parmp->n_pre_commands++] =
+ (char_u *)argv[0];
++ }
++ /* "--startuptime <file>" already handled */
+ break;
+
+ /* case 'd': -d {device} is handled in mch_check_win() for the
+***************
+*** 3144,3149 ****
+--- 3150,3158 ----
+ main_msg(_("--serverlist\t\tList available Vim server names and exit"));
+ main_msg(_("--servername <name>\tSend to/become the Vim server <name>"));
+ #endif
++ #ifdef STARTUPTIME
++ main_msg(_("--startuptime=<file>\tWrite startup timing messages to <file>"));
++ #endif
+ #ifdef FEAT_VIMINFO
+ main_msg(_("-i <viminfo>\t\tUse <viminfo> instead of .viminfo"));
+ #endif
+*** ../vim-7.2.285/src/version.c 2009-11-11 13:22:09.000000000 +0100
+--- src/version.c 2009-11-11 14:17:28.000000000 +0100
+***************
+*** 494,499 ****
+--- 494,504 ----
+ #else
+ "-sniff",
+ #endif
++ #ifdef STARTUPTIME
++ "+startuptime",
++ #else
++ "-startuptime",
++ #endif
+ #ifdef FEAT_STL_OPT
+ "+statusline",
+ #else
+*** ../vim-7.2.285/src/version.c 2009-11-11 13:22:09.000000000 +0100
+--- src/version.c 2009-11-11 14:17:28.000000000 +0100
+***************
+*** 678,679 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 286,
+ /**/
+
+--
+A fool must search for a greater fool to find admiration.
+
+ /// 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/source/ap/vim/patches/7.2.287 b/source/ap/vim/patches/7.2.287
new file mode 100644
index 00000000..0f8e170c
--- /dev/null
+++ b/source/ap/vim/patches/7.2.287
@@ -0,0 +1,54 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.287
+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.2.287
+Problem: Warning from gcc 3.4 about uninitialized variable.
+Solution: Move assignment outside of #ifdef.
+Files: src/if_perl.xs
+
+
+*** ../vim-7.2.286/src/if_perl.xs 2009-07-14 16:05:14.000000000 +0200
+--- src/if_perl.xs 2009-11-11 12:29:32.000000000 +0100
+***************
+*** 720,727 ****
+ #ifdef HAVE_SANDBOX
+ if (sandbox)
+ {
+ # ifndef MAKE_TEST /* avoid a warning for unreachable code */
+! if ((safe = perl_get_sv( "VIM::safe", FALSE )) == NULL || !SvTRUE(safe))
+ EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
+ else
+ # endif
+--- 720,728 ----
+ #ifdef HAVE_SANDBOX
+ if (sandbox)
+ {
++ safe = perl_get_sv( "VIM::safe", FALSE );
+ # ifndef MAKE_TEST /* avoid a warning for unreachable code */
+! if (safe == NULL || !SvTRUE(safe))
+ EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
+ else
+ # endif
+*** ../vim-7.2.286/src/version.c 2009-11-11 14:21:48.000000000 +0100
+--- src/version.c 2009-11-11 14:44:49.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 287,
+ /**/
+
+--
+The most powerful force in the universe is gossip.
+
+ /// 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/source/ap/vim/patches/7.2.288 b/source/ap/vim/patches/7.2.288
new file mode 100644
index 00000000..ab9ecdaf
--- /dev/null
+++ b/source/ap/vim/patches/7.2.288
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.288
+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.2.288
+Problem: Python 2.6 pyconfig.h redefines macros.
+Solution: Undefine the macros before including pyconfig.h.
+Files: src/if_python.c
+
+
+*** ../vim-7.2.287/src/if_python.c 2009-11-03 11:43:05.000000000 +0100
+--- src/if_python.c 2009-11-11 12:33:37.000000000 +0100
+***************
+*** 37,42 ****
+--- 37,48 ----
+ #ifdef HAVE_STDARG_H
+ # undef HAVE_STDARG_H /* Python's config.h defines it as well. */
+ #endif
++ #ifdef _POSIX_C_SOURCE
++ # undef _POSIX_C_SOURCE /* pyconfig.h defines it as well. */
++ #endif
++ #ifdef _XOPEN_SOURCE
++ # undef _XOPEN_SOURCE /* pyconfig.h defines it as well. */
++ #endif
+
+ #define PY_SSIZE_T_CLEAN
+
+*** ../vim-7.2.287/src/version.c 2009-11-11 14:45:36.000000000 +0100
+--- src/version.c 2009-11-11 15:05:51.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 288,
+ /**/
+
+--
+I am always surprised in the Linux world how quickly solutions can be
+obtained. (Imagine sending an email to Bill Gates, asking why Windows
+crashed, and how to fix it... and then getting an answer that fixed the
+problem... <0>_<0> !) -- Mark Langdon
+
+ /// 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/source/ap/vim/patches/7.2.289 b/source/ap/vim/patches/7.2.289
new file mode 100644
index 00000000..4009bb9b
--- /dev/null
+++ b/source/ap/vim/patches/7.2.289
@@ -0,0 +1,120 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.289
+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.2.289
+Problem: Checking wrong struct member.
+Solution: Change tb_buf to tb_noremap. (Dominique Pelle)
+Files: src/getchar.c
+
+
+*** ../vim-7.2.288/src/getchar.c 2009-09-30 15:15:33.000000000 +0200
+--- src/getchar.c 2009-11-11 12:50:58.000000000 +0100
+***************
+*** 22,28 ****
+ * These buffers are used for storing:
+ * - stuffed characters: A command that is translated into another command.
+ * - redo characters: will redo the last change.
+! * - recorded chracters: for the "q" command.
+ *
+ * The bytes are stored like in the typeahead buffer:
+ * - K_SPECIAL introduces a special key (two more bytes follow). A literal
+--- 22,28 ----
+ * These buffers are used for storing:
+ * - stuffed characters: A command that is translated into another command.
+ * - redo characters: will redo the last change.
+! * - recorded characters: for the "q" command.
+ *
+ * The bytes are stored like in the typeahead buffer:
+ * - K_SPECIAL introduces a special key (two more bytes follow). A literal
+***************
+*** 1283,1289 ****
+ EMSG2(_(e_intern2), "Free typebuf 1");
+ else
+ vim_free(typebuf.tb_buf);
+! if (typebuf.tb_buf == noremapbuf_init)
+ EMSG2(_(e_intern2), "Free typebuf 2");
+ else
+ vim_free(typebuf.tb_noremap);
+--- 1283,1289 ----
+ EMSG2(_(e_intern2), "Free typebuf 1");
+ else
+ vim_free(typebuf.tb_buf);
+! if (typebuf.tb_noremap == noremapbuf_init)
+ EMSG2(_(e_intern2), "Free typebuf 2");
+ else
+ vim_free(typebuf.tb_noremap);
+***************
+*** 1516,1522 ****
+ * wanted.
+ * This translates escaped K_SPECIAL and CSI bytes to a K_SPECIAL or CSI byte.
+ * Collects the bytes of a multibyte character into the whole character.
+! * Returns the modifers in the global "mod_mask".
+ */
+ int
+ vgetc()
+--- 1516,1522 ----
+ * wanted.
+ * This translates escaped K_SPECIAL and CSI bytes to a K_SPECIAL or CSI byte.
+ * Collects the bytes of a multibyte character into the whole character.
+! * Returns the modifiers in the global "mod_mask".
+ */
+ int
+ vgetc()
+***************
+*** 3320,3326 ****
+ retval = 1;
+ goto theend;
+ }
+! /* An abbrevation cannot contain white space. */
+ for (n = 0; n < len; ++n)
+ if (vim_iswhite(keys[n]))
+ {
+--- 3320,3326 ----
+ retval = 1;
+ goto theend;
+ }
+! /* An abbreviation cannot contain white space. */
+ for (n = 0; n < len; ++n)
+ if (vim_iswhite(keys[n]))
+ {
+***************
+*** 4272,4278 ****
+
+ /*
+ * Check for word before the cursor: If it ends in a keyword char all
+! * chars before it must be al keyword chars or non-keyword chars, but not
+ * white space. If it ends in a non-keyword char we accept any characters
+ * before it except white space.
+ */
+--- 4272,4278 ----
+
+ /*
+ * Check for word before the cursor: If it ends in a keyword char all
+! * chars before it must be keyword chars or non-keyword chars, but not
+ * white space. If it ends in a non-keyword char we accept any characters
+ * before it except white space.
+ */
+*** ../vim-7.2.288/src/version.c 2009-11-11 15:06:59.000000000 +0100
+--- src/version.c 2009-11-11 16:19:12.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 289,
+ /**/
+
+--
+A M00se once bit my sister ...
+ "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/source/ap/vim/patches/7.2.290 b/source/ap/vim/patches/7.2.290
new file mode 100644
index 00000000..ba4fd62d
--- /dev/null
+++ b/source/ap/vim/patches/7.2.290
@@ -0,0 +1,157 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.290
+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.2.290
+Problem: Not freeing memory from ":lmap", ":xmap" and ":menutranslate".
+Solution: Free the memory when exiting. (Dominique Pelle)
+Files: src/misc2.c
+
+
+*** ../vim-7.2.289/src/misc2.c 2009-11-03 16:44:04.000000000 +0100
+--- src/misc2.c 2009-11-11 16:49:13.000000000 +0100
+***************
+*** 1005,1013 ****
+--- 1005,1018 ----
+ # ifdef FEAT_MENU
+ /* Clear menus. */
+ do_cmdline_cmd((char_u *)"aunmenu *");
++ # ifdef FEAT_MULTI_LANG
++ do_cmdline_cmd((char_u *)"menutranslate clear");
++ # endif
+ # endif
+
+ /* Clear mappings, abbreviations, breakpoints. */
++ do_cmdline_cmd((char_u *)"lmapclear");
++ do_cmdline_cmd((char_u *)"xmapclear");
+ do_cmdline_cmd((char_u *)"mapclear");
+ do_cmdline_cmd((char_u *)"mapclear!");
+ do_cmdline_cmd((char_u *)"abclear");
+***************
+*** 1282,1288 ****
+
+ /*
+ * Escape "string" for use as a shell argument with system().
+! * This uses single quotes, except when we know we need to use double qoutes
+ * (MS-DOS and MS-Windows without 'shellslash' set).
+ * Escape a newline, depending on the 'shell' option.
+ * When "do_special" is TRUE also replace "!", "%", "#" and things starting
+--- 1287,1293 ----
+
+ /*
+ * Escape "string" for use as a shell argument with system().
+! * This uses single quotes, except when we know we need to use double quotes
+ * (MS-DOS and MS-Windows without 'shellslash' set).
+ * Escape a newline, depending on the 'shell' option.
+ * When "do_special" is TRUE also replace "!", "%", "#" and things starting
+***************
+*** 1537,1543 ****
+ #if defined(FEAT_VISUALEXTRA) || defined(PROTO)
+ /*
+ * Copy a character a number of times.
+! * Does not work for multi-byte charactes!
+ */
+ void
+ copy_chars(ptr, count, c)
+--- 1542,1548 ----
+ #if defined(FEAT_VISUALEXTRA) || defined(PROTO)
+ /*
+ * Copy a character a number of times.
+! * Does not work for multi-byte characters!
+ */
+ void
+ copy_chars(ptr, count, c)
+***************
+*** 4260,4266 ****
+ * or '**76' is transposed to '**N'( 'N' is ASCII value 76).
+ * For EBCDIC you get different character values.
+ * If no restrict is given after '**' the default is used.
+! * Due to this technic the path looks awful if you print it as a
+ * string.
+ */
+ len = 0;
+--- 4265,4271 ----
+ * or '**76' is transposed to '**N'( 'N' is ASCII value 76).
+ * For EBCDIC you get different character values.
+ * If no restrict is given after '**' the default is used.
+! * Due to this technique the path looks awful if you print it as a
+ * string.
+ */
+ len = 0;
+***************
+*** 4649,4655 ****
+ && !mch_isdir(stackp->ffs_filearray[i]))
+ continue; /* not a directory */
+
+! /* prepare the filename to be checked for existance
+ * below */
+ STRCPY(file_path, stackp->ffs_filearray[i]);
+ add_pathsep(file_path);
+--- 4654,4660 ----
+ && !mch_isdir(stackp->ffs_filearray[i]))
+ continue; /* not a directory */
+
+! /* prepare the filename to be checked for existence
+ * below */
+ STRCPY(file_path, stackp->ffs_filearray[i]);
+ add_pathsep(file_path);
+***************
+*** 5438,5444 ****
+ #if defined(MSWIN) || defined(MSDOS) || defined(OS2)
+ /* handle "\tmp" as absolute path */
+ || vim_ispathsep(ff_file_to_find[0])
+! /* handle "c:name" as absulute path */
+ || (ff_file_to_find[0] != NUL && ff_file_to_find[1] == ':')
+ #endif
+ #ifdef AMIGA
+--- 5443,5449 ----
+ #if defined(MSWIN) || defined(MSDOS) || defined(OS2)
+ /* handle "\tmp" as absolute path */
+ || vim_ispathsep(ff_file_to_find[0])
+! /* handle "c:name" as absolute path */
+ || (ff_file_to_find[0] != NUL && ff_file_to_find[1] == ':')
+ #endif
+ #ifdef AMIGA
+***************
+*** 5681,5687 ****
+ p2 = (char_u *)base + (j + gap) * elm_size;
+ if ((*cmp)((void *)p1, (void *)p2) <= 0)
+ break;
+! /* Exchange the elemets. */
+ mch_memmove(buf, p1, elm_size);
+ mch_memmove(p1, p2, elm_size);
+ mch_memmove(p2, buf, elm_size);
+--- 5686,5692 ----
+ p2 = (char_u *)base + (j + gap) * elm_size;
+ if ((*cmp)((void *)p1, (void *)p2) <= 0)
+ break;
+! /* Exchange the elements. */
+ mch_memmove(buf, p1, elm_size);
+ mch_memmove(p1, p2, elm_size);
+ mch_memmove(p2, buf, elm_size);
+*** ../vim-7.2.289/src/version.c 2009-11-11 16:23:37.000000000 +0100
+--- src/version.c 2009-11-11 16:54:53.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 290,
+ /**/
+
+--
+ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of Camelot.
+ King of all Britons, defeator of the Saxons, sovereign of all England!
+ [Pause]
+SOLDIER: Get away!
+ "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/source/ap/vim/patches/7.2.291 b/source/ap/vim/patches/7.2.291
new file mode 100644
index 00000000..bab6e3bf
--- /dev/null
+++ b/source/ap/vim/patches/7.2.291
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.291
+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.2.291
+Problem: Reading uninitialised memory in arabic mode.
+Solution: Use utfc_ptr2char_len() rather than utfc_ptr2char(). (Dominique
+ Pelle)
+Files: src/screen.c
+
+
+*** ../vim-7.2.290/src/screen.c 2009-11-03 17:36:09.000000000 +0100
+--- src/screen.c 2009-11-11 17:04:53.000000000 +0100
+***************
+*** 6413,6419 ****
+ }
+ else
+ {
+! nc = utfc_ptr2char(ptr + mbyte_blen, pcc);
+ nc1 = pcc[0];
+ }
+ pc = prev_c;
+--- 6413,6420 ----
+ }
+ else
+ {
+! nc = utfc_ptr2char_len(ptr + mbyte_blen, pcc,
+! (int)((text + len) - ptr - mbyte_blen));
+ nc1 = pcc[0];
+ }
+ pc = prev_c;
+*** ../vim-7.2.290/src/version.c 2009-11-11 16:56:13.000000000 +0100
+--- src/version.c 2009-11-11 17:06:48.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 291,
+ /**/
+
+--
+The problem with political jokes is that they get elected.
+
+ /// 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/source/ap/vim/patches/7.2.292 b/source/ap/vim/patches/7.2.292
new file mode 100644
index 00000000..c5761904
--- /dev/null
+++ b/source/ap/vim/patches/7.2.292
@@ -0,0 +1,55 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.292
+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.2.292
+Problem: Block right-shift doesn't work properly with multi-byte encoding
+ and 'list' set.
+Solution: Add the missing "else". (Lech Lorens)
+Files: src/ops.c
+
+
+*** ../vim-7.2.291/src/ops.c 2009-11-03 16:44:04.000000000 +0100
+--- src/ops.c 2009-11-11 17:15:04.000000000 +0100
+***************
+*** 422,429 ****
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+ bd.textstart += (*mb_ptr2len)(bd.textstart);
+ #endif
+! ++bd.textstart;
+ }
+ for ( ; vim_iswhite(*bd.textstart); )
+ {
+--- 422,430 ----
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+ bd.textstart += (*mb_ptr2len)(bd.textstart);
++ else
+ #endif
+! ++bd.textstart;
+ }
+ for ( ; vim_iswhite(*bd.textstart); )
+ {
+*** ../vim-7.2.291/src/version.c 2009-11-11 17:07:25.000000000 +0100
+--- src/version.c 2009-11-11 17:21:31.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 292,
+ /**/
+
+--
+Computers make very fast, very accurate, mistakes.
+
+ /// 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/source/ap/vim/patches/7.2.293 b/source/ap/vim/patches/7.2.293
new file mode 100644
index 00000000..0f41435a
--- /dev/null
+++ b/source/ap/vim/patches/7.2.293
@@ -0,0 +1,66 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.293
+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.2.293
+Problem: When setting 'comments' option it may be used in a wrong way.
+Solution: Don't increment after skipping over digets. (Yukihiro Nakadaira)
+Files: src/misc1.c
+
+
+*** ../vim-7.2.292/src/misc1.c 2009-11-03 18:46:53.000000000 +0100
+--- src/misc1.c 2009-11-11 17:27:38.000000000 +0100
+***************
+*** 1026,1037 ****
+ int c = 0;
+ int off = 0;
+
+! for (p = lead_flags; *p && *p != ':'; ++p)
+ {
+ if (*p == COM_RIGHT || *p == COM_LEFT)
+! c = *p;
+ else if (VIM_ISDIGIT(*p) || *p == '-')
+ off = getdigits(&p);
+ }
+ if (c == COM_RIGHT) /* right adjusted leader */
+ {
+--- 1026,1039 ----
+ int c = 0;
+ int off = 0;
+
+! for (p = lead_flags; *p != NUL && *p != ':'; )
+ {
+ if (*p == COM_RIGHT || *p == COM_LEFT)
+! c = *p++;
+ else if (VIM_ISDIGIT(*p) || *p == '-')
+ off = getdigits(&p);
++ else
++ ++p;
+ }
+ if (c == COM_RIGHT) /* right adjusted leader */
+ {
+*** ../vim-7.2.292/src/version.c 2009-11-11 17:22:30.000000000 +0100
+--- src/version.c 2009-11-11 17:29:24.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 293,
+ /**/
+
+--
+SOLDIER: What? Ridden on a horse?
+ARTHUR: Yes!
+SOLDIER: You're using coconuts!
+ "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/source/ap/vim/patches/7.2.294 b/source/ap/vim/patches/7.2.294
new file mode 100644
index 00000000..fef1e6bf
--- /dev/null
+++ b/source/ap/vim/patches/7.2.294
@@ -0,0 +1,285 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.294
+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.2.294
+Problem: When using TEMPDIRS dir name could get too long.
+Solution: Overwrite tail instead of appending each time. Use mkdtemp() when
+ available. (James Vega)
+Files: src/auto/configure, src/config.h.in, src/configure.in, src/fileio.c
+
+
+*** ../vim-7.2.293/src/auto/configure 2009-09-11 13:44:33.000000000 +0200
+--- src/auto/configure 2009-11-17 12:03:15.000000000 +0100
+***************
+*** 14019,14027 ****
+
+
+
+ for ac_func in bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
+ getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+! memset nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+ strnicmp strpbrk strtol tgetent towlower towupper iswupper \
+--- 14019,14028 ----
+
+
+
++
+ for ac_func in bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
+ getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+! memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+ strnicmp strpbrk strtol tgetent towlower towupper iswupper \
+*** ../vim-7.2.293/src/config.h.in 2009-05-21 23:25:38.000000000 +0200
+--- src/config.h.in 2009-11-11 17:40:21.000000000 +0100
+***************
+*** 157,162 ****
+--- 157,163 ----
+ #undef HAVE_LSTAT
+ #undef HAVE_MEMCMP
+ #undef HAVE_MEMSET
++ #undef HAVE_MKDTEMP
+ #undef HAVE_NANOSLEEP
+ #undef HAVE_OPENDIR
+ #undef HAVE_FLOAT_FUNCS
+*** ../vim-7.2.293/src/configure.in 2009-09-11 13:44:33.000000000 +0200
+--- src/configure.in 2009-11-11 17:40:21.000000000 +0100
+***************
+*** 2635,2641 ****
+ dnl Check for functions in one big call, to reduce the size of configure
+ AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
+ getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+! memset nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+ strnicmp strpbrk strtol tgetent towlower towupper iswupper \
+--- 2635,2641 ----
+ dnl Check for functions in one big call, to reduce the size of configure
+ AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
+ getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+! memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+ strnicmp strpbrk strtol tgetent towlower towupper iswupper \
+*** ../vim-7.2.293/src/fileio.c 2009-09-11 17:24:01.000000000 +0200
+--- src/fileio.c 2009-11-11 18:01:22.000000000 +0100
+***************
+*** 146,151 ****
+--- 146,152 ----
+ # endif
+ #endif
+ static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf));
++ static void vim_settempdir __ARGS((char_u *tempdir));
+ #ifdef FEAT_AUTOCMD
+ static char *e_auchangedbuf = N_("E812: Autocommands changed buffer or buffer name");
+ #endif
+***************
+*** 6987,6992 ****
+--- 6988,7020 ----
+ #endif
+
+ /*
++ * Directory "tempdir" was created. Expand this name to a full path and put
++ * it in "vim_tempdir". This avoids that using ":cd" would confuse us.
++ * "tempdir" must be no longer than MAXPATHL.
++ */
++ static void
++ vim_settempdir(tempdir)
++ char_u *tempdir;
++ {
++ char_u *buf;
++
++ buf = alloc((unsigned)MAXPATHL + 2);
++ if (buf != NULL)
++ {
++ if (vim_FullName(tempdir, buf, MAXPATHL, FALSE) == FAIL)
++ STRCPY(buf, tempdir);
++ # ifdef __EMX__
++ if (vim_strchr(buf, '/') != NULL)
++ STRCAT(buf, "/");
++ else
++ # endif
++ add_pathsep(buf);
++ vim_tempdir = vim_strsave(buf);
++ vim_free(buf);
++ }
++ }
++
++ /*
+ * vim_tempname(): Return a unique name that can be used for a temp file.
+ *
+ * The temp file is NOT created.
+***************
+*** 7007,7014 ****
+ #ifdef TEMPDIRNAMES
+ static char *(tempdirs[]) = {TEMPDIRNAMES};
+ int i;
+- long nr;
+- long off;
+ # ifndef EEXIST
+ struct stat st;
+ # endif
+--- 7035,7040 ----
+***************
+*** 7027,7032 ****
+--- 7053,7064 ----
+ */
+ for (i = 0; i < (int)(sizeof(tempdirs) / sizeof(char *)); ++i)
+ {
++ size_t itmplen;
++ # ifndef HAVE_MKDTEMP
++ long nr;
++ long off;
++ # endif
++
+ /* expand $TMP, leave room for "/v1100000/999999999" */
+ expand_env((char_u *)tempdirs[i], itmp, TEMPNAMELEN - 20);
+ if (mch_isdir(itmp)) /* directory exists */
+***************
+*** 7040,7046 ****
+--- 7072,7085 ----
+ else
+ # endif
+ add_pathsep(itmp);
++ itmplen = STRLEN(itmp);
+
++ # ifdef HAVE_MKDTEMP
++ /* Leave room for filename */
++ STRCAT(itmp, "vXXXXXX");
++ if (mkdtemp((char *)itmp) != NULL)
++ vim_settempdir(itmp);
++ # else
+ /* Get an arbitrary number of up to 6 digits. When it's
+ * unlikely that it already exists it will be faster,
+ * otherwise it doesn't matter. The use of mkdir() avoids any
+***************
+*** 7052,7110 ****
+ for (off = 0; off < 10000L; ++off)
+ {
+ int r;
+! #if defined(UNIX) || defined(VMS)
+ mode_t umask_save;
+! #endif
+
+! sprintf((char *)itmp + STRLEN(itmp), "v%ld", nr + off);
+! # ifndef EEXIST
+ /* If mkdir() does not set errno to EEXIST, check for
+ * existing file here. There is a race condition then,
+ * although it's fail-safe. */
+ if (mch_stat((char *)itmp, &st) >= 0)
+ continue;
+! # endif
+! #if defined(UNIX) || defined(VMS)
+ /* Make sure the umask doesn't remove the executable bit.
+ * "repl" has been reported to use "177". */
+ umask_save = umask(077);
+! #endif
+ r = vim_mkdir(itmp, 0700);
+! #if defined(UNIX) || defined(VMS)
+ (void)umask(umask_save);
+! #endif
+ if (r == 0)
+ {
+! char_u *buf;
+!
+! /* Directory was created, use this name.
+! * Expand to full path; When using the current
+! * directory a ":cd" would confuse us. */
+! buf = alloc((unsigned)MAXPATHL + 1);
+! if (buf != NULL)
+! {
+! if (vim_FullName(itmp, buf, MAXPATHL, FALSE)
+! == FAIL)
+! STRCPY(buf, itmp);
+! # ifdef __EMX__
+! if (vim_strchr(buf, '/') != NULL)
+! STRCAT(buf, "/");
+! else
+! # endif
+! add_pathsep(buf);
+! vim_tempdir = vim_strsave(buf);
+! vim_free(buf);
+! }
+ break;
+ }
+! # ifdef EEXIST
+ /* If the mkdir() didn't fail because the file/dir exists,
+ * we probably can't create any dir here, try another
+ * place. */
+ if (errno != EEXIST)
+! # endif
+ break;
+ }
+ if (vim_tempdir != NULL)
+ break;
+ }
+--- 7091,7131 ----
+ for (off = 0; off < 10000L; ++off)
+ {
+ int r;
+! # if defined(UNIX) || defined(VMS)
+ mode_t umask_save;
+! # endif
+
+! sprintf((char *)itmp + itmplen, "v%ld", nr + off);
+! # ifndef EEXIST
+ /* If mkdir() does not set errno to EEXIST, check for
+ * existing file here. There is a race condition then,
+ * although it's fail-safe. */
+ if (mch_stat((char *)itmp, &st) >= 0)
+ continue;
+! # endif
+! # if defined(UNIX) || defined(VMS)
+ /* Make sure the umask doesn't remove the executable bit.
+ * "repl" has been reported to use "177". */
+ umask_save = umask(077);
+! # endif
+ r = vim_mkdir(itmp, 0700);
+! # if defined(UNIX) || defined(VMS)
+ (void)umask(umask_save);
+! # endif
+ if (r == 0)
+ {
+! vim_settempdir(itmp);
+ break;
+ }
+! # ifdef EEXIST
+ /* If the mkdir() didn't fail because the file/dir exists,
+ * we probably can't create any dir here, try another
+ * place. */
+ if (errno != EEXIST)
+! # endif
+ break;
+ }
++ # endif /* HAVE_MKDTEMP */
+ if (vim_tempdir != NULL)
+ break;
+ }
+*** ../vim-7.2.293/src/version.c 2009-11-11 17:30:05.000000000 +0100
+--- src/version.c 2009-11-17 11:54:49.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 294,
+ /**/
+
+--
+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/source/ap/vim/patches/7.2.295 b/source/ap/vim/patches/7.2.295
new file mode 100644
index 00000000..331498ff
--- /dev/null
+++ b/source/ap/vim/patches/7.2.295
@@ -0,0 +1,142 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.295
+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.2.295
+Problem: When using map() on a List the index is not known.
+Solution: Set v:key to the index. (Hari Krishna Dara)
+Files: runtime/doc/eval.txt, src/eval.c
+
+
+*** ../vim-7.2.294/runtime/doc/eval.txt 2009-11-11 14:21:48.000000000 +0100
+--- runtime/doc/eval.txt 2009-11-11 18:22:54.000000000 +0100
+***************
+*** 3802,3808 ****
+ Replace each item in {expr} with the result of evaluating
+ {string}.
+ Inside {string} |v:val| has the value of the current item.
+! For a |Dictionary| |v:key| has the key of the current item.
+ Example: >
+ :call map(mylist, '"> " . v:val . " <"')
+ < This puts "> " before and " <" after each item in "mylist".
+--- 3812,3819 ----
+ Replace each item in {expr} with the result of evaluating
+ {string}.
+ Inside {string} |v:val| has the value of the current item.
+! For a |Dictionary| |v:key| has the key of the current item
+! and for a |List| |v:key| has the index of the current item.
+ Example: >
+ :call map(mylist, '"> " . v:val . " <"')
+ < This puts "> " before and " <" after each item in "mylist".
+*** ../vim-7.2.294/src/eval.c 2009-11-11 14:21:48.000000000 +0100
+--- src/eval.c 2009-11-11 18:22:49.000000000 +0100
+***************
+*** 9928,9933 ****
+--- 9928,9934 ----
+ int todo;
+ char_u *ermsg = map ? (char_u *)"map()" : (char_u *)"filter()";
+ int save_did_emsg;
++ int index = 0;
+
+ if (argvars[0].v_type == VAR_LIST)
+ {
+***************
+*** 9961,9969 ****
+ save_did_emsg = did_emsg;
+ did_emsg = FALSE;
+
+ if (argvars[0].v_type == VAR_DICT)
+ {
+- prepare_vimvar(VV_KEY, &save_key);
+ vimvars[VV_KEY].vv_type = VAR_STRING;
+
+ ht = &d->dv_hashtab;
+--- 9962,9970 ----
+ save_did_emsg = did_emsg;
+ did_emsg = FALSE;
+
++ prepare_vimvar(VV_KEY, &save_key);
+ if (argvars[0].v_type == VAR_DICT)
+ {
+ vimvars[VV_KEY].vv_type = VAR_STRING;
+
+ ht = &d->dv_hashtab;
+***************
+*** 9987,10010 ****
+ }
+ }
+ hash_unlock(ht);
+-
+- restore_vimvar(VV_KEY, &save_key);
+ }
+ else
+ {
+ for (li = l->lv_first; li != NULL; li = nli)
+ {
+ if (tv_check_lock(li->li_tv.v_lock, ermsg))
+ break;
+ nli = li->li_next;
+ if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL
+ || did_emsg)
+ break;
+ if (!map && rem)
+ listitem_remove(l, li);
+ }
+ }
+
+ restore_vimvar(VV_VAL, &save_val);
+
+ did_emsg |= save_did_emsg;
+--- 9988,10014 ----
+ }
+ }
+ hash_unlock(ht);
+ }
+ else
+ {
++ vimvars[VV_KEY].vv_type = VAR_NUMBER;
++
+ for (li = l->lv_first; li != NULL; li = nli)
+ {
+ if (tv_check_lock(li->li_tv.v_lock, ermsg))
+ break;
+ nli = li->li_next;
++ vimvars[VV_KEY].vv_nr = index;
+ if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL
+ || did_emsg)
+ break;
+ if (!map && rem)
+ listitem_remove(l, li);
++ ++index;
+ }
+ }
+
++ restore_vimvar(VV_KEY, &save_key);
+ restore_vimvar(VV_VAL, &save_val);
+
+ did_emsg |= save_did_emsg;
+*** ../vim-7.2.294/src/version.c 2009-11-17 12:08:48.000000000 +0100
+--- src/version.c 2009-11-17 12:18:08.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 295,
+ /**/
+
+--
+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/source/ap/vim/patches/7.2.296 b/source/ap/vim/patches/7.2.296
new file mode 100644
index 00000000..5fc3cb3c
--- /dev/null
+++ b/source/ap/vim/patches/7.2.296
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.296
+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.2.296
+Problem: Help message about startuptime is wrong. (Dominique Pelle)
+Solution: Remove the equal sign.
+Files: src/main.c
+
+
+*** ../vim-7.2.295/src/main.c 2009-11-11 14:21:48.000000000 +0100
+--- src/main.c 2009-11-11 22:51:04.000000000 +0100
+***************
+*** 3151,3157 ****
+ main_msg(_("--servername <name>\tSend to/become the Vim server <name>"));
+ #endif
+ #ifdef STARTUPTIME
+! main_msg(_("--startuptime=<file>\tWrite startup timing messages to <file>"));
+ #endif
+ #ifdef FEAT_VIMINFO
+ main_msg(_("-i <viminfo>\t\tUse <viminfo> instead of .viminfo"));
+--- 3151,3157 ----
+ main_msg(_("--servername <name>\tSend to/become the Vim server <name>"));
+ #endif
+ #ifdef STARTUPTIME
+! main_msg(_("--startuptime <file>\tWrite startup timing messages to <file>"));
+ #endif
+ #ifdef FEAT_VIMINFO
+ main_msg(_("-i <viminfo>\t\tUse <viminfo> instead of .viminfo"));
+*** ../vim-7.2.295/src/version.c 2009-11-17 12:20:30.000000000 +0100
+--- src/version.c 2009-11-17 12:30:29.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 296,
+ /**/
+
+--
+BLACK KNIGHT: I'm invincible!
+ARTHUR: You're a looney.
+ "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/source/ap/vim/patches/7.2.297 b/source/ap/vim/patches/7.2.297
new file mode 100644
index 00000000..cc8d7899
--- /dev/null
+++ b/source/ap/vim/patches/7.2.297
@@ -0,0 +1,70 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.297
+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.2.297
+Problem: Reading freed memory when writing ":reg" output to a register.
+ (Dominique Pelle)
+Solution: Skip the register being written to.
+Files: src/ops.c
+
+
+*** ../vim-7.2.296/src/ops.c 2009-11-11 17:22:30.000000000 +0100
+--- src/ops.c 2009-11-11 19:30:47.000000000 +0100
+***************
+*** 3991,3996 ****
+--- 3991,4004 ----
+ }
+ else
+ yb = &(y_regs[i]);
++
++ #ifdef FEAT_EVAL
++ if (name == MB_TOLOWER(redir_reg)
++ || (redir_reg == '"' && yb == y_previous))
++ continue; /* do not list register being written to, the
++ * pointer can be freed */
++ #endif
++
+ if (yb->y_array != NULL)
+ {
+ msg_putchar('\n');
+***************
+*** 6090,6096 ****
+ long maxlen;
+ #endif
+
+! if (y_ptr->y_array == NULL) /* NULL means emtpy register */
+ y_ptr->y_size = 0;
+
+ /*
+--- 6098,6104 ----
+ long maxlen;
+ #endif
+
+! if (y_ptr->y_array == NULL) /* NULL means empty register */
+ y_ptr->y_size = 0;
+
+ /*
+*** ../vim-7.2.296/src/version.c 2009-11-17 12:31:30.000000000 +0100
+--- src/version.c 2009-11-17 12:42:28.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 297,
+ /**/
+
+--
+"Beware of bugs in the above code; I have only proved
+it correct, not tried it." -- Donald Knuth
+
+ /// 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/source/ap/vim/patches/7.2.298 b/source/ap/vim/patches/7.2.298
new file mode 100644
index 00000000..0aabd7ac
--- /dev/null
+++ b/source/ap/vim/patches/7.2.298
@@ -0,0 +1,48 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.298
+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.2.298
+Problem: ":vimgrep" crashes when there is an autocommand that sets a
+ window-local variable.
+Solution: Initialize the w: hashtab for re-use. (Yukihiro Nakadaira)
+Files: src/fileio.c
+
+
+*** ../vim-7.2.297/src/fileio.c 2009-11-17 12:08:48.000000000 +0100
+--- src/fileio.c 2009-11-17 13:22:06.000000000 +0100
+***************
+*** 8597,8602 ****
+--- 8605,8611 ----
+ curwin = firstwin;
+ # ifdef FEAT_EVAL
+ vars_clear(&aucmd_win->w_vars.dv_hashtab); /* free all w: variables */
++ hash_init(&aucmd_win->w_vars.dv_hashtab); /* re-use the hashtab */
+ # endif
+ #else
+ curwin = aco->save_curwin;
+*** ../vim-7.2.297/src/version.c 2009-11-17 12:43:19.000000000 +0100
+--- src/version.c 2009-11-17 14:56:19.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 298,
+ /**/
+
+--
+Eye have a spelling checker, it came with my PC;
+It plainly marks four my revue mistakes I cannot sea.
+I've run this poem threw it, I'm sure your please to no,
+It's letter perfect in it's weigh, my checker tolled me sew!
+
+ /// 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/source/ap/vim/patches/7.2.299 b/source/ap/vim/patches/7.2.299
new file mode 100644
index 00000000..88f9e705
--- /dev/null
+++ b/source/ap/vim/patches/7.2.299
@@ -0,0 +1,54 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.299
+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.2.299
+Problem: Crash when comment middle is longer than start.
+Solution: Fix size computation. (Lech Lorens)
+Files: src/misc1.c
+
+
+*** ../vim-7.2.298/src/misc1.c 2009-11-11 17:30:05.000000000 +0100
+--- src/misc1.c 2009-11-17 15:59:28.000000000 +0100
+***************
+*** 1121,1127 ****
+ if (i != lead_repl_len)
+ {
+ mch_memmove(p + lead_repl_len, p + i,
+! (size_t)(lead_len - i - (leader - p)));
+ lead_len += lead_repl_len - i;
+ }
+ }
+--- 1121,1127 ----
+ if (i != lead_repl_len)
+ {
+ mch_memmove(p + lead_repl_len, p + i,
+! (size_t)(lead_len - i - (p - leader)));
+ lead_len += lead_repl_len - i;
+ }
+ }
+*** ../vim-7.2.298/src/version.c 2009-11-17 14:57:19.000000000 +0100
+--- src/version.c 2009-11-17 16:01:07.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 299,
+ /**/
+
+--
+BLACK KNIGHT: The Black Knight always triumphs. Have at you!
+ ARTHUR takes his last leg off. The BLACK KNIGHT's body lands upright.
+BLACK KNIGHT: All right, we'll call it a draw.
+ "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/source/ap/vim/patches/7.2.300 b/source/ap/vim/patches/7.2.300
new file mode 100644
index 00000000..f88035e6
--- /dev/null
+++ b/source/ap/vim/patches/7.2.300
@@ -0,0 +1,201 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.300
+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.2.300
+Problem: Vim doesn't close file descriptors when forking and executing
+ another command, e.g., ":shell".
+Solution: Use FD_CLOEXEC when available. (James Vega)
+Files: src/auto/configure, src/config.h.in, src/configure.in,
+ src/ex_cmdds2.c, src/fileio.c, src/memfile.c, src/memline.c
+
+
+*** ../vim-7.2.299/src/auto/configure 2009-11-17 12:08:48.000000000 +0100
+--- src/auto/configure 2009-11-17 13:09:03.000000000 +0100
+***************
+*** 15174,15179 ****
+--- 15174,15231 ----
+ $as_echo "yes" >&6; }
+ fi
+
++ { $as_echo "$as_me:$LINENO: checking for FD_CLOEXEC" >&5
++ $as_echo_n "checking for FD_CLOEXEC... " >&6; }
++ cat >conftest.$ac_ext <<_ACEOF
++ /* confdefs.h. */
++ _ACEOF
++ cat confdefs.h >>conftest.$ac_ext
++ cat >>conftest.$ac_ext <<_ACEOF
++ /* end confdefs.h. */
++ #if HAVE_FCNTL_H
++ # include <fcntl.h>
++ #endif
++ int
++ main ()
++ {
++ int flag = FD_CLOEXEC;
++ ;
++ return 0;
++ }
++ _ACEOF
++ rm -f conftest.$ac_objext
++ if { (ac_try="$ac_compile"
++ case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++ esac
++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++ $as_echo "$ac_try_echo") >&5
++ (eval "$ac_compile") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest.$ac_objext; then
++ { $as_echo "$as_me:$LINENO: result: yes" >&5
++ $as_echo "yes" >&6; }; cat >>confdefs.h <<\_ACEOF
++ #define HAVE_FD_CLOEXEC 1
++ _ACEOF
++
++ else
++ $as_echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++
++ { $as_echo "$as_me:$LINENO: result: not usable" >&5
++ $as_echo "not usable" >&6; }
++ fi
++
++ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++
+ { $as_echo "$as_me:$LINENO: checking for rename" >&5
+ $as_echo_n "checking for rename... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+*** ../vim-7.2.299/src/config.h.in 2009-11-17 12:08:48.000000000 +0100
+--- src/config.h.in 2009-11-17 13:01:36.000000000 +0100
+***************
+*** 388,390 ****
+--- 388,393 ----
+
+ /* Define if you want XSMP interaction as well as vanilla swapfile safety */
+ #undef USE_XSMP_INTERACT
++
++ /* Define if fcntl()'s F_SETFD command knows about FD_CLOEXEC */
++ #undef HAVE_FD_CLOEXEC
+*** ../vim-7.2.299/src/configure.in 2009-11-17 12:08:48.000000000 +0100
+--- src/configure.in 2009-11-17 13:01:36.000000000 +0100
+***************
+*** 2855,2860 ****
+--- 2855,2870 ----
+ AC_MSG_RESULT(yes)
+ fi
+
++ dnl make sure the FD_CLOEXEC flag for fcntl()'s F_SETFD command is known
++ AC_MSG_CHECKING(for FD_CLOEXEC)
++ AC_TRY_COMPILE(
++ [#if HAVE_FCNTL_H
++ # include <fcntl.h>
++ #endif],
++ [ int flag = FD_CLOEXEC;],
++ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FD_CLOEXEC),
++ AC_MSG_RESULT(not usable))
++
+ dnl rename needs to be checked separately to work on Nextstep with cc
+ AC_MSG_CHECKING(for rename)
+ AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
+*** ../vim-7.2.299/src/fileio.c 2009-11-17 14:57:19.000000000 +0100
+--- src/fileio.c 2009-11-17 13:22:06.000000000 +0100
+***************
+*** 2254,2259 ****
+--- 2254,2267 ----
+
+ if (!read_buffer && !read_stdin)
+ close(fd); /* errors are ignored */
++ #ifdef HAVE_FD_CLOEXEC
++ else
++ {
++ int fdflags = fcntl(fd, F_GETFD);
++ if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0)
++ fcntl(fd, F_SETFD, fdflags | FD_CLOEXEC);
++ }
++ #endif
+ vim_free(buffer);
+
+ #ifdef HAVE_DUP
+*** ../vim-7.2.299/src/memfile.c 2008-07-13 19:39:39.000000000 +0200
+--- src/memfile.c 2009-11-17 13:22:15.000000000 +0100
+***************
+*** 1343,1348 ****
+--- 1343,1353 ----
+ }
+ else
+ {
++ #ifdef HAVE_FD_CLOEXEC
++ int fdflags = fcntl(mfp->mf_fd, F_GETFD);
++ if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0)
++ fcntl(mfp->mf_fd, F_SETFD, fdflags | FD_CLOEXEC);
++ #endif
+ #ifdef HAVE_SELINUX
+ mch_copy_sec(fname, mfp->mf_fname);
+ #endif
+*** ../vim-7.2.299/src/memline.c 2009-11-03 15:32:58.000000000 +0100
+--- src/memline.c 2009-11-17 13:21:40.000000000 +0100
+***************
+*** 382,388 ****
+ dp->db_index[0] = --dp->db_txt_start; /* at end of block */
+ dp->db_free -= 1 + INDEX_SIZE;
+ dp->db_line_count = 1;
+! *((char_u *)dp + dp->db_txt_start) = NUL; /* emtpy line */
+
+ return OK;
+
+--- 382,388 ----
+ dp->db_index[0] = --dp->db_txt_start; /* at end of block */
+ dp->db_free -= 1 + INDEX_SIZE;
+ dp->db_line_count = 1;
+! *((char_u *)dp + dp->db_txt_start) = NUL; /* empty line */
+
+ return OK;
+
+***************
+*** 490,495 ****
+--- 490,502 ----
+ EMSG(_("E301: Oops, lost the swap file!!!"));
+ return;
+ }
++ #ifdef HAVE_FD_CLOEXEC
++ {
++ int fdflags = fcntl(mfp->mf_fd, F_GETFD);
++ if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0)
++ fcntl(mfp->mf_fd, F_SETFD, fdflags | FD_CLOEXEC);
++ }
++ #endif
+ }
+ if (!success)
+ EMSG(_("E302: Could not rename swap file"));
+*** ../vim-7.2.299/src/version.c 2009-11-17 16:08:12.000000000 +0100
+--- src/version.c 2009-11-17 17:09:43.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 300,
+ /**/
+
+--
+ |
+
+Ceci n'est pas une pipe.
+
+ /// 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/source/ap/vim/patches/7.2.301 b/source/ap/vim/patches/7.2.301
new file mode 100644
index 00000000..e63cc088
--- /dev/null
+++ b/source/ap/vim/patches/7.2.301
@@ -0,0 +1,777 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.301
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+NOTE: some mail and patch programs may have a problem with the non-ASCII
+characters in this patch. You can fetch the patch from
+ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.301 and/or fetch the updated
+files from CVS. http://www.vim.org/cvs.php
+
+
+Patch 7.2.301
+Problem: Formatting is wrong when 'tw' is set to a small value.
+Solution: Fix it and add tests. Also fix behavior of "1" in 'fo'. (Yukihiro
+ Nakadaira)
+Files: src/edit.c, src/testdir/Makefile, src/testdir/test68.in,
+ src/testdir/test68.ok, src/testdir/test69.in,
+ src/testdir/test69.ok
+
+
+*** ../vim-7.2.300/src/edit.c 2009-11-11 13:22:32.000000000 +0100
+--- src/edit.c 2009-11-17 15:34:47.000000000 +0100
+***************
+*** 181,187 ****
+ static void ins_ctrl_v __ARGS((void));
+ static void undisplay_dollar __ARGS((void));
+ static void insert_special __ARGS((int, int, int));
+! static void internal_format __ARGS((int textwidth, int second_indent, int flags, int format_only));
+ static void check_auto_format __ARGS((int));
+ static void redo_literal __ARGS((int c));
+ static void start_arrow __ARGS((pos_T *end_insert_pos));
+--- 181,187 ----
+ static void ins_ctrl_v __ARGS((void));
+ static void undisplay_dollar __ARGS((void));
+ static void insert_special __ARGS((int, int, int));
+! static void internal_format __ARGS((int textwidth, int second_indent, int flags, int format_only, int c));
+ static void check_auto_format __ARGS((int));
+ static void redo_literal __ARGS((int c));
+ static void start_arrow __ARGS((pos_T *end_insert_pos));
+***************
+*** 2164,2170 ****
+ int i, c;
+ int actual_len; /* Take multi-byte characters */
+ int actual_compl_length; /* into account. */
+! int *wca; /* Wide character array. */
+ int has_lower = FALSE;
+ int was_letter = FALSE;
+
+--- 2164,2170 ----
+ int i, c;
+ int actual_len; /* Take multi-byte characters */
+ int actual_compl_length; /* into account. */
+! int *wca; /* Wide character array. */
+ int has_lower = FALSE;
+ int was_letter = FALSE;
+
+***************
+*** 5558,5564 ****
+ }
+ if (do_internal)
+ #endif
+! internal_format(textwidth, second_indent, flags, c == NUL);
+ }
+
+ if (c == NUL) /* only formatting was wanted */
+--- 5558,5564 ----
+ }
+ if (do_internal)
+ #endif
+! internal_format(textwidth, second_indent, flags, c == NUL, c);
+ }
+
+ if (c == NUL) /* only formatting was wanted */
+***************
+*** 5738,5748 ****
+ * Format text at the current insert position.
+ */
+ static void
+! internal_format(textwidth, second_indent, flags, format_only)
+ int textwidth;
+ int second_indent;
+ int flags;
+ int format_only;
+ {
+ int cc;
+ int save_char = NUL;
+--- 5738,5749 ----
+ * Format text at the current insert position.
+ */
+ static void
+! internal_format(textwidth, second_indent, flags, format_only, c)
+ int textwidth;
+ int second_indent;
+ int flags;
+ int format_only;
++ int c; /* character to be inserted (can be NUL) */
+ {
+ int cc;
+ int save_char = NUL;
+***************
+*** 5763,5769 ****
+ * When 'ai' is off we don't want a space under the cursor to be
+ * deleted. Replace it with an 'x' temporarily.
+ */
+! if (!curbuf->b_p_ai)
+ {
+ cc = gchar_cursor();
+ if (vim_iswhite(cc))
+--- 5764,5774 ----
+ * When 'ai' is off we don't want a space under the cursor to be
+ * deleted. Replace it with an 'x' temporarily.
+ */
+! if (!curbuf->b_p_ai
+! #ifdef FEAT_VREPLACE
+! && !(State & VREPLACE_FLAG)
+! #endif
+! )
+ {
+ cc = gchar_cursor();
+ if (vim_iswhite(cc))
+***************
+*** 5789,5797 ****
+ char_u *saved_text = NULL;
+ #endif
+ colnr_T col;
+
+! virtcol = get_nolist_virtcol();
+! if (virtcol < (colnr_T)textwidth)
+ break;
+
+ #ifdef FEAT_COMMENTS
+--- 5794,5804 ----
+ char_u *saved_text = NULL;
+ #endif
+ colnr_T col;
++ colnr_T end_col;
+
+! virtcol = get_nolist_virtcol()
+! + char2cells(c != NUL ? c : gchar_cursor());
+! if (virtcol <= (colnr_T)textwidth)
+ break;
+
+ #ifdef FEAT_COMMENTS
+***************
+*** 5831,5842 ****
+ coladvance((colnr_T)textwidth);
+ wantcol = curwin->w_cursor.col;
+
+! curwin->w_cursor.col = startcol - 1;
+! #ifdef FEAT_MBYTE
+! /* Correct cursor for multi-byte character. */
+! if (has_mbyte)
+! mb_adjust_cursor();
+! #endif
+ foundcol = 0;
+
+ /*
+--- 5838,5844 ----
+ coladvance((colnr_T)textwidth);
+ wantcol = curwin->w_cursor.col;
+
+! curwin->w_cursor.col = startcol;
+ foundcol = 0;
+
+ /*
+***************
+*** 5847,5857 ****
+ || curwin->w_cursor.lnum != Insstart.lnum
+ || curwin->w_cursor.col >= Insstart.col)
+ {
+! cc = gchar_cursor();
+ if (WHITECHAR(cc))
+ {
+ /* remember position of blank just before text */
+! end_foundcol = curwin->w_cursor.col;
+
+ /* find start of sequence of blanks */
+ while (curwin->w_cursor.col > 0 && WHITECHAR(cc))
+--- 5849,5862 ----
+ || curwin->w_cursor.lnum != Insstart.lnum
+ || curwin->w_cursor.col >= Insstart.col)
+ {
+! if (curwin->w_cursor.col == startcol && c != NUL)
+! cc = c;
+! else
+! cc = gchar_cursor();
+ if (WHITECHAR(cc))
+ {
+ /* remember position of blank just before text */
+! end_col = curwin->w_cursor.col;
+
+ /* find start of sequence of blanks */
+ while (curwin->w_cursor.col > 0 && WHITECHAR(cc))
+***************
+*** 5871,5877 ****
+ /* do not break after one-letter words */
+ if (curwin->w_cursor.col == 0)
+ break; /* one-letter word at begin */
+!
+ col = curwin->w_cursor.col;
+ dec_cursor();
+ cc = gchar_cursor();
+--- 5876,5886 ----
+ /* do not break after one-letter words */
+ if (curwin->w_cursor.col == 0)
+ break; /* one-letter word at begin */
+! #ifdef FEAT_COMMENTS
+! /* do not break "#a b" when 'tw' is 2 */
+! if (curwin->w_cursor.col <= leader_len)
+! break;
+! #endif
+ col = curwin->w_cursor.col;
+ dec_cursor();
+ cc = gchar_cursor();
+***************
+*** 5880,5905 ****
+ continue; /* one-letter, continue */
+ curwin->w_cursor.col = col;
+ }
+! #ifdef FEAT_MBYTE
+! if (has_mbyte)
+! foundcol = curwin->w_cursor.col
+! + (*mb_ptr2len)(ml_get_cursor());
+! else
+! #endif
+! foundcol = curwin->w_cursor.col + 1;
+! if (curwin->w_cursor.col < (colnr_T)wantcol)
+ break;
+ }
+ #ifdef FEAT_MBYTE
+! else if (cc >= 0x100 && fo_multibyte
+! && curwin->w_cursor.col <= (colnr_T)wantcol)
+ {
+ /* Break after or before a multi-byte character. */
+ foundcol = curwin->w_cursor.col;
+- if (curwin->w_cursor.col < (colnr_T)wantcol)
+- foundcol += (*mb_char2len)(cc);
+ end_foundcol = foundcol;
+! break;
+ }
+ #endif
+ if (curwin->w_cursor.col == 0)
+--- 5889,5948 ----
+ continue; /* one-letter, continue */
+ curwin->w_cursor.col = col;
+ }
+!
+! inc_cursor();
+!
+! end_foundcol = end_col + 1;
+! foundcol = curwin->w_cursor.col;
+! if (curwin->w_cursor.col <= (colnr_T)wantcol)
+ break;
+ }
+ #ifdef FEAT_MBYTE
+! else if (cc >= 0x100 && fo_multibyte)
+ {
+ /* Break after or before a multi-byte character. */
++ if (curwin->w_cursor.col != startcol)
++ {
++ #ifdef FEAT_COMMENTS
++ /* Don't break until after the comment leader */
++ if (curwin->w_cursor.col < leader_len)
++ break;
++ #endif
++ col = curwin->w_cursor.col;
++ inc_cursor();
++ /* Don't change end_foundcol if already set. */
++ if (foundcol != curwin->w_cursor.col)
++ {
++ foundcol = curwin->w_cursor.col;
++ end_foundcol = foundcol;
++ if (curwin->w_cursor.col <= (colnr_T)wantcol)
++ break;
++ }
++ curwin->w_cursor.col = col;
++ }
++
++ if (curwin->w_cursor.col == 0)
++ break;
++
++ col = curwin->w_cursor.col;
++
++ dec_cursor();
++ cc = gchar_cursor();
++
++ if (WHITECHAR(cc))
++ continue; /* break with space */
++ #ifdef FEAT_COMMENTS
++ /* Don't break until after the comment leader */
++ if (curwin->w_cursor.col < leader_len)
++ break;
++ #endif
++
++ curwin->w_cursor.col = col;
++
+ foundcol = curwin->w_cursor.col;
+ end_foundcol = foundcol;
+! if (curwin->w_cursor.col <= (colnr_T)wantcol)
+! break;
+ }
+ #endif
+ if (curwin->w_cursor.col == 0)
+***************
+*** 5926,5939 ****
+ orig_col = startcol; /* Will start backspacing from here */
+ else
+ #endif
+! replace_offset = startcol - end_foundcol - 1;
+
+ /*
+ * adjust startcol for spaces that will be deleted and
+ * characters that will remain on top line
+ */
+ curwin->w_cursor.col = foundcol;
+! while (cc = gchar_cursor(), WHITECHAR(cc))
+ inc_cursor();
+ startcol -= curwin->w_cursor.col;
+ if (startcol < 0)
+--- 5969,5983 ----
+ orig_col = startcol; /* Will start backspacing from here */
+ else
+ #endif
+! replace_offset = startcol - end_foundcol;
+
+ /*
+ * adjust startcol for spaces that will be deleted and
+ * characters that will remain on top line
+ */
+ curwin->w_cursor.col = foundcol;
+! while ((cc = gchar_cursor(), WHITECHAR(cc))
+! && (!fo_white_par || curwin->w_cursor.col < startcol))
+ inc_cursor();
+ startcol -= curwin->w_cursor.col;
+ if (startcol < 0)
+***************
+*** 8509,8515 ****
+ if (mode == BACKSPACE_LINE
+ && (curbuf->b_p_ai
+ #ifdef FEAT_CINDENT
+! || cindent_on()
+ #endif
+ )
+ #ifdef FEAT_RIGHTLEFT
+--- 8553,8559 ----
+ if (mode == BACKSPACE_LINE
+ && (curbuf->b_p_ai
+ #ifdef FEAT_CINDENT
+! || cindent_on()
+ #endif
+ )
+ #ifdef FEAT_RIGHTLEFT
+*** ../vim-7.2.300/src/testdir/Makefile 2009-11-17 17:36:13.000000000 +0100
+--- src/testdir/Makefile 2009-11-17 15:11:26.000000000 +0100
+***************
+*** 22,28 ****
+ test48.out test49.out test51.out test52.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 test66.out test67.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 22,29 ----
+ test48.out test49.out test51.out test52.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 test66.out test67.out test68.out \
+! test69.out
+
+ SCRIPTS_GUI = test16.out
+
+*** ../vim-7.2.300/src/testdir/test68.in 2009-11-17 17:39:36.000000000 +0100
+--- src/testdir/test68.in 2009-11-17 15:39:09.000000000 +0100
+***************
+*** 0 ****
+--- 1,56 ----
++ Test for text formatting.
++
++ Results of test68:
++
++ STARTTEST
++ :so small.vim
++ /^{/+1
++ :set noai tw=2 fo=t
++ gRa b
++ ENDTEST
++
++ {
++
++
++ }
++
++ STARTTEST
++ /^{/+1
++ :set ai tw=2 fo=tw
++ gqgqjjllab
++ ENDTEST
++
++ {
++ a b
++
++ a
++ }
++
++ STARTTEST
++ /^{/+1
++ :set tw=3 fo=t
++ gqgqo
++ a 
++ ENDTEST
++
++ {
++ a 
++ }
++
++ STARTTEST
++ /^{/+1
++ :set tw=2 fo=tcq1 comments=:#
++ gqgqjgqgqo
++ a b
++ #a b
++ ENDTEST
++
++ {
++ a b
++ #a b
++ }
++
++ STARTTEST
++ :g/^STARTTEST/.,/^ENDTEST/d
++ :1;/^Results/,$wq! test.out
++ ENDTEST
+*** ../vim-7.2.300/src/testdir/test68.ok 2009-11-17 17:39:36.000000000 +0100
+--- src/testdir/test68.ok 2009-11-17 15:11:26.000000000 +0100
+***************
+*** 0 ****
+--- 1,35 ----
++ Results of test68:
++
++
++ {
++ a
++ b
++ }
++
++
++ {
++ a
++ b
++
++ a
++ b
++ }
++
++
++ {
++ a
++ 
++
++ a
++ 
++ }
++
++
++ {
++ a b
++ #a b
++
++ a b
++ #a b
++ }
++
+*** ../vim-7.2.300/src/testdir/test69.in 2009-11-17 17:39:36.000000000 +0100
+--- src/testdir/test69.in 2009-11-17 15:11:26.000000000 +0100
+***************
+*** 0 ****
+--- 1,139 ----
++ Test for multi-byte text formatting.
++
++ STARTTEST
++ :so mbyte.vim
++ :set encoding=utf-8
++ ENDTEST
++
++ Results of test69:
++
++ STARTTEST
++ /^{/+1
++ :set tw=2 fo=t
++ gqgqjgqgqo
++ XYZ
++ abc XYZ
++ ENDTEST
++
++ {
++ XYZ
++ abc XYZ
++ }
++
++ STARTTEST
++ /^{/+1
++ :set tw=1 fo=tm
++ gqgqjgqgqjgqgqjgqgqjgqgqo
++ X
++ Xa
++ X a
++ XY
++ X Y
++ ENDTEST
++
++ {
++ X
++ Xa
++ X a
++ XY
++ X Y
++ }
++
++ STARTTEST
++ /^{/+1
++ :set tw=2 fo=tm
++ gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
++ X
++ Xa
++ X a
++ XY
++ X Y
++ aX
++ abX
++ abcX
++ abX c
++ abXY
++ ENDTEST
++
++ {
++ X
++ Xa
++ X a
++ XY
++ X Y
++ aX
++ abX
++ abcX
++ abX c
++ abXY
++ }
++
++ STARTTEST
++ /^{/+1
++ :set ai tw=2 fo=tm
++ gqgqjgqgqo
++ X
++ Xa
++ ENDTEST
++
++ {
++ X
++ Xa
++ }
++
++ STARTTEST
++ /^{/+1
++ :set noai tw=2 fo=tm
++ gqgqjgqgqo
++ X
++ Xa
++ ENDTEST
++
++ {
++ X
++ Xa
++ }
++
++ STARTTEST
++ /^{/+1
++ :set tw=2 fo=cqm comments=n:X
++ gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
++ X
++ Xa
++ XaY
++ XY
++ XYZ
++ X Y
++ X YZ
++ XX
++ XXa
++ XXY
++ ENDTEST
++
++ {
++ X
++ Xa
++ XaY
++ XY
++ XYZ
++ X Y
++ X YZ
++ XX
++ XXa
++ XXY
++ }
++
++ STARTTEST
++ /^{/+1
++ :set tw=2 fo=tm
++ RXa
++ ENDTEST
++
++ {
++
++ }
++
++ STARTTEST
++ :g/^STARTTEST/.,/^ENDTEST/d
++ :1;/^Results/,$wq! test.out
++ ENDTEST
+*** ../vim-7.2.300/src/testdir/test69.ok 2009-11-17 17:39:36.000000000 +0100
+--- src/testdir/test69.ok 2009-11-17 15:11:26.000000000 +0100
+***************
+*** 0 ****
+--- 1,142 ----
++ Results of test69:
++
++
++ {
++ XYZ
++ abc
++ XYZ
++
++ XYZ
++ abc
++ XYZ
++ }
++
++
++ {
++ X
++ X
++ a
++ X
++ a
++ X
++ ï¼¹
++ X
++ ï¼¹
++
++ X
++ X
++ a
++ X
++ a
++ X
++ ï¼¹
++ X
++ ï¼¹
++ }
++
++
++ {
++ X
++ X
++ a
++ X
++ a
++ X
++ ï¼¹
++ X
++ ï¼¹
++ a
++ X
++ ab
++ X
++ abc
++ X
++ ab
++ X
++ c
++ ab
++ X
++ ï¼¹
++
++ X
++ X
++ a
++ X
++ a
++ X
++ ï¼¹
++ X
++ ï¼¹
++ a
++ X
++ ab
++ X
++ abc
++ X
++ ab
++ X
++ c
++ ab
++ X
++ ï¼¹
++ }
++
++
++ {
++ X
++ X
++ a
++
++ X
++ X
++ a
++ }
++
++
++ {
++ X
++ X
++ a
++
++ X
++ X
++ a
++ }
++
++
++ {
++ X
++ Xa
++ Xa
++ XY
++ XY
++ XY
++ XZ
++ X Y
++ X Y
++ X Z
++ XX
++ XXa
++ XXY
++
++ X
++ Xa
++ Xa
++ XY
++ XY
++ XY
++ XZ
++ X Y
++ X Y
++ X Z
++ XX
++ XXa
++ XXY
++ }
++
++
++ {
++ X
++ a
++ }
++
+*** ../vim-7.2.300/src/version.c 2009-11-17 17:37:34.000000000 +0100
+--- src/version.c 2009-11-17 17:26:35.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 301,
+ /**/
diff --git a/source/ap/vim/patches/7.2.302 b/source/ap/vim/patches/7.2.302
new file mode 100644
index 00000000..c4d5a99d
--- /dev/null
+++ b/source/ap/vim/patches/7.2.302
@@ -0,0 +1,140 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.302 (extra)
+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.2.302 (extra part of 7.2.301)
+Problem: Formatting wrong with small 'tw' value.
+Solution: Add build rules for tests.
+Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
+ src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
+ src/testdir/Make_vms.mms
+
+
+*** ../vim-7.2.301/src/testdir/Make_amiga.mak 2009-09-18 14:58:26.000000000 +0200
+--- src/testdir/Make_amiga.mak 2009-11-17 15:29:05.000000000 +0100
+***************
+*** 26,32 ****
+ 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 \
+! test66.out test67.out
+
+ .SUFFIXES: .in .out
+
+--- 26,32 ----
+ 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 \
+! test66.out test67.out test68.out test69.out
+
+ .SUFFIXES: .in .out
+
+***************
+*** 113,115 ****
+--- 113,117 ----
+ test65.out: test65.in
+ test66.out: test66.in
+ test67.out: test67.in
++ test68.out: test68.in
++ test69.out: test69.in
+*** ../vim-7.2.301/src/testdir/Make_dos.mak 2009-09-18 14:58:26.000000000 +0200
+--- src/testdir/Make_dos.mak 2009-11-17 15:29:54.000000000 +0100
+***************
+*** 26,32 ****
+ 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 test66.out test67.out
+
+ SCRIPTS32 = test50.out
+
+--- 26,33 ----
+ 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 test66.out test67.out \
+! test68.out test69.out
+
+ SCRIPTS32 = test50.out
+
+*** ../vim-7.2.301/src/testdir/Make_ming.mak 2009-09-18 14:58:26.000000000 +0200
+--- src/testdir/Make_ming.mak 2009-11-17 15:30:07.000000000 +0100
+***************
+*** 45,51 ****
+ 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 test66.out test67.out
+
+ SCRIPTS32 = test50.out
+
+--- 45,52 ----
+ 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 test66.out test67.out \
+! test68.out test69.out
+
+ SCRIPTS32 = test50.out
+
+*** ../vim-7.2.301/src/testdir/Make_os2.mak 2009-09-18 14:58:26.000000000 +0200
+--- src/testdir/Make_os2.mak 2009-11-17 15:11:26.000000000 +0100
+***************
+*** 26,32 ****
+ 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 \
+! test66.out test67.out
+
+ .SUFFIXES: .in .out
+
+--- 26,32 ----
+ 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 \
+! test66.out test67.out test68.out test69.out
+
+ .SUFFIXES: .in .out
+
+*** ../vim-7.2.301/src/testdir/Make_vms.mms 2009-09-18 14:58:26.000000000 +0200
+--- src/testdir/Make_vms.mms 2009-11-17 15:11:26.000000000 +0100
+***************
+*** 69,75 ****
+ 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 \
+! test66.out test67.out
+
+ .IFDEF WANT_GUI
+ SCRIPT_GUI = test16.out
+--- 69,75 ----
+ 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 \
+! test66.out test67.out test68.out test69.out
+
+ .IFDEF WANT_GUI
+ SCRIPT_GUI = test16.out
+*** ../vim-7.2.301/src/version.c 2009-11-17 17:40:34.000000000 +0100
+--- src/version.c 2009-11-17 17:43:26.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 302,
+ /**/
+
+--
+Hacker: Someone skilled in computer programming (good guy).
+Cracker: A hacker that uses his skills to crack software (bad guy).
+
+ /// 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/source/ap/vim/patches/7.2.303 b/source/ap/vim/patches/7.2.303
new file mode 100644
index 00000000..b53d1981
--- /dev/null
+++ b/source/ap/vim/patches/7.2.303
@@ -0,0 +1,70 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.303
+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.2.303 (after 7.2.294)
+Problem: Can't build on MS-Windows.
+Solution: Add #ifdef around vim_settempdir(). (James Vega)
+Files: src/fileio.c
+
+
+*** ../vim-7.2.302/src/fileio.c 2009-11-17 17:13:03.000000000 +0100
+--- src/fileio.c 2009-11-18 20:06:55.000000000 +0100
+***************
+*** 146,152 ****
+--- 146,154 ----
+ # endif
+ #endif
+ static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf));
++ #ifdef TEMPDIRNAMES
+ static void vim_settempdir __ARGS((char_u *tempdir));
++ #endif
+ #ifdef FEAT_AUTOCMD
+ static char *e_auchangedbuf = N_("E812: Autocommands changed buffer or buffer name");
+ #endif
+***************
+*** 6995,7000 ****
+--- 6997,7003 ----
+ }
+ #endif
+
++ #ifdef TEMPDIRNAMES
+ /*
+ * Directory "tempdir" was created. Expand this name to a full path and put
+ * it in "vim_tempdir". This avoids that using ":cd" would confuse us.
+***************
+*** 7021,7026 ****
+--- 7024,7030 ----
+ vim_free(buf);
+ }
+ }
++ #endif
+
+ /*
+ * vim_tempname(): Return a unique name that can be used for a temp file.
+*** ../vim-7.2.302/src/version.c 2009-11-17 17:57:10.000000000 +0100
+--- src/version.c 2009-11-18 20:07:58.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 303,
+ /**/
+
+--
+BEDEVERE: Why do you think she is a witch?
+SECOND VILLAGER: She turned me into a newt.
+BEDEVERE: A newt?
+SECOND VILLAGER: (After looking at himself for some time) I got better.
+ "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/source/ap/vim/patches/7.2.304 b/source/ap/vim/patches/7.2.304
new file mode 100644
index 00000000..8a138c04
--- /dev/null
+++ b/source/ap/vim/patches/7.2.304
@@ -0,0 +1,58 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.304
+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.2.304
+Problem: Compiler warning for bad pointer cast.
+Solution: Use another variable for int pointer.
+Files: src/ops.c
+
+
+*** ../vim-7.2.303/src/ops.c 2009-11-17 12:43:19.000000000 +0100
+--- src/ops.c 2009-11-18 15:40:26.000000000 +0100
+***************
+*** 5597,5603 ****
+ vc.vc_type = CONV_NONE;
+ if (convert_setup(&vc, p_enc, (char_u *)"latin1") == OK)
+ {
+! conv_str = string_convert(&vc, str, (int*)&len);
+ if (conv_str != NULL)
+ {
+ vim_free(str);
+--- 5597,5606 ----
+ vc.vc_type = CONV_NONE;
+ if (convert_setup(&vc, p_enc, (char_u *)"latin1") == OK)
+ {
+! int intlen = len;
+!
+! conv_str = string_convert(&vc, str, &intlen);
+! len = intlen;
+ if (conv_str != NULL)
+ {
+ vim_free(str);
+*** ../vim-7.2.303/src/version.c 2009-11-18 20:12:15.000000000 +0100
+--- src/version.c 2009-11-25 12:37:36.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 304,
+ /**/
+
+--
+I recommend ordering large cargo containers of paper towels to make up
+whatever budget underruns you have. Paper products are always useful and they
+have the advantage of being completely flushable if you need to make room in
+the storage area later.
+ (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/source/ap/vim/patches/7.2.305 b/source/ap/vim/patches/7.2.305
new file mode 100644
index 00000000..c8ad7084
--- /dev/null
+++ b/source/ap/vim/patches/7.2.305
@@ -0,0 +1,105 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.305
+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.2.305
+Problem: Recursively redrawing causes a memory leak. (Dominique Pelle)
+Solution: Disallow recursive screen updating.
+Files: src/screen.c
+
+
+*** ../vim-7.2.304/src/screen.c 2009-11-11 17:07:25.000000000 +0100
+--- src/screen.c 2009-11-17 16:30:53.000000000 +0100
+***************
+*** 323,328 ****
+--- 323,329 ----
+ int did_one;
+ #endif
+
++ /* Don't do anything if the screen structures are (not yet) valid. */
+ if (!screen_valid(TRUE))
+ return;
+
+***************
+*** 342,348 ****
+ if (curwin->w_lines_valid == 0 && type < NOT_VALID)
+ type = NOT_VALID;
+
+! if (!redrawing())
+ {
+ redraw_later(type); /* remember type for next time */
+ must_redraw = type;
+--- 343,351 ----
+ if (curwin->w_lines_valid == 0 && type < NOT_VALID)
+ type = NOT_VALID;
+
+! /* Postpone the redrawing when it's not needed and when being called
+! * recursively. */
+! if (!redrawing() || updating_screen)
+ {
+ redraw_later(type); /* remember type for next time */
+ must_redraw = type;
+***************
+*** 582,587 ****
+--- 585,591 ----
+
+ /*
+ * Prepare for updating one or more windows.
++ * Caller must check for "updating_screen" already set to avoid recursiveness.
+ */
+ static void
+ update_prepare()
+***************
+*** 663,669 ****
+ doit = TRUE;
+ }
+
+! if (!doit)
+ return;
+
+ /* update all windows that need updating */
+--- 667,675 ----
+ doit = TRUE;
+ }
+
+! /* Return when there is nothing to do or screen updating already
+! * happening. */
+! if (!doit || updating_screen)
+ return;
+
+ /* update all windows that need updating */
+***************
+*** 696,701 ****
+--- 702,711 ----
+ updateWindow(wp)
+ win_T *wp;
+ {
++ /* return if already busy updating */
++ if (updating_screen)
++ return;
++
+ update_prepare();
+
+ #ifdef FEAT_CLIPBOARD
+*** ../vim-7.2.304/src/version.c 2009-11-25 12:38:49.000000000 +0100
+--- src/version.c 2009-11-25 13:01:48.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 305,
+ /**/
+
+--
+If the Universe is constantly expanding, why can't I ever find a parking space?
+
+ /// 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/source/ap/vim/patches/7.2.306 b/source/ap/vim/patches/7.2.306
new file mode 100644
index 00000000..d54e90d3
--- /dev/null
+++ b/source/ap/vim/patches/7.2.306
@@ -0,0 +1,48 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.306
+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.2.306
+Problem: shellescape("10%%", 1) only escapes first %. (Christian Brabandt)
+Solution: Don't copy the character after the escaped one.
+Files: src/misc2.c
+
+
+*** ../vim-7.2.305/src/misc2.c 2009-11-11 16:56:13.000000000 +0100
+--- src/misc2.c 2009-11-25 17:11:49.000000000 +0100
+***************
+*** 1390,1395 ****
+--- 1390,1396 ----
+ *d++ = '\\'; /* insert backslash */
+ while (--l >= 0) /* copy the var */
+ *d++ = *p++;
++ continue;
+ }
+
+ MB_COPY_CHAR(p, d);
+*** ../vim-7.2.305/src/version.c 2009-11-25 13:03:29.000000000 +0100
+--- src/version.c 2009-11-25 17:13:54.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 306,
+ /**/
+
+--
+Article in the first Free Software Magazine: "Bram Moolenaar studied electrical
+engineering at the Technical University of Delft and graduated in 1985 on a
+multi-processor Unix architecture."
+Response by "dimator": Could the school not afford a proper stage for the
+ceremony?
+
+ /// 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/source/ap/vim/patches/7.2.307 b/source/ap/vim/patches/7.2.307
new file mode 100644
index 00000000..23504e2c
--- /dev/null
+++ b/source/ap/vim/patches/7.2.307
@@ -0,0 +1,181 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.307
+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.2.307
+Problem: Crash with a very long syntax match statement. (Guy Gur Ari)
+Solution: When the offset does not fit in the two bytes available give an
+ error instead of continuing with invalid pointers.
+Files: src/regexp.c
+
+
+*** ../vim-7.2.306/src/regexp.c 2009-05-15 21:31:11.000000000 +0200
+--- src/regexp.c 2009-11-25 18:13:03.000000000 +0100
+***************
+*** 583,588 ****
+--- 583,589 ----
+ #endif
+ static char_u *regcode; /* Code-emit pointer, or JUST_CALC_SIZE */
+ static long regsize; /* Code size. */
++ static int reg_toolong; /* TRUE when offset out of range */
+ static char_u had_endbrace[NSUBEXP]; /* flags, TRUE if end of () found */
+ static unsigned regflags; /* RF_ flags for prog */
+ static long brace_min[10]; /* Minimums for complex brace repeats */
+***************
+*** 1028,1036 ****
+ regcomp_start(expr, re_flags);
+ regcode = r->program;
+ regc(REGMAGIC);
+! if (reg(REG_NOPAREN, &flags) == NULL)
+ {
+ vim_free(r);
+ return NULL;
+ }
+
+--- 1029,1039 ----
+ regcomp_start(expr, re_flags);
+ regcode = r->program;
+ regc(REGMAGIC);
+! if (reg(REG_NOPAREN, &flags) == NULL || reg_toolong)
+ {
+ vim_free(r);
++ if (reg_toolong)
++ EMSG_RET_NULL(_("E339: Pattern too long"));
+ return NULL;
+ }
+
+***************
+*** 1141,1146 ****
+--- 1144,1150 ----
+ re_has_z = 0;
+ #endif
+ regsize = 0L;
++ reg_toolong = FALSE;
+ regflags = 0;
+ #if defined(FEAT_SYN_HL) || defined(PROTO)
+ had_eol = FALSE;
+***************
+*** 1228,1234 ****
+ {
+ skipchr();
+ br = regbranch(&flags);
+! if (br == NULL)
+ return NULL;
+ regtail(ret, br); /* BRANCH -> BRANCH. */
+ if (!(flags & HASWIDTH))
+--- 1232,1238 ----
+ {
+ skipchr();
+ br = regbranch(&flags);
+! if (br == NULL || reg_toolong)
+ return NULL;
+ regtail(ret, br); /* BRANCH -> BRANCH. */
+ if (!(flags & HASWIDTH))
+***************
+*** 1313,1318 ****
+--- 1317,1324 ----
+ break;
+ skipchr();
+ regtail(latest, regnode(END)); /* operand ends */
++ if (reg_toolong)
++ break;
+ reginsert(MATCH, latest);
+ chain = latest;
+ }
+***************
+*** 1382,1388 ****
+ break;
+ default:
+ latest = regpiece(&flags);
+! if (latest == NULL)
+ return NULL;
+ *flagp |= flags & (HASWIDTH | HASNL | HASLOOKBH);
+ if (chain == NULL) /* First piece. */
+--- 1388,1394 ----
+ break;
+ default:
+ latest = regpiece(&flags);
+! if (latest == NULL || reg_toolong)
+ return NULL;
+ *flagp |= flags & (HASWIDTH | HASNL | HASLOOKBH);
+ if (chain == NULL) /* First piece. */
+***************
+*** 2540,2547 ****
+ offset = (int)(scan - val);
+ else
+ offset = (int)(val - scan);
+! *(scan + 1) = (char_u) (((unsigned)offset >> 8) & 0377);
+! *(scan + 2) = (char_u) (offset & 0377);
+ }
+
+ /*
+--- 2546,2561 ----
+ offset = (int)(scan - val);
+ else
+ offset = (int)(val - scan);
+! /* When the offset uses more than 16 bits it can no longer fit in the two
+! * bytes avaliable. Use a global flag to avoid having to check return
+! * values in too many places. */
+! if (offset > 0xffff)
+! reg_toolong = TRUE;
+! else
+! {
+! *(scan + 1) = (char_u) (((unsigned)offset >> 8) & 0377);
+! *(scan + 2) = (char_u) (offset & 0377);
+! }
+ }
+
+ /*
+***************
+*** 5764,5769 ****
+--- 5778,5785 ----
+
+ /*
+ * regnext - dig the "next" pointer out of a node
++ * Returns NULL when calculating size, when there is no next item and when
++ * there is an error.
+ */
+ static char_u *
+ regnext(p)
+***************
+*** 5771,5777 ****
+ {
+ int offset;
+
+! if (p == JUST_CALC_SIZE)
+ return NULL;
+
+ offset = NEXT(p);
+--- 5787,5793 ----
+ {
+ int offset;
+
+! if (p == JUST_CALC_SIZE || reg_toolong)
+ return NULL;
+
+ offset = NEXT(p);
+*** ../vim-7.2.306/src/version.c 2009-11-25 17:15:16.000000000 +0100
+--- src/version.c 2009-11-25 18:14:32.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 307,
+ /**/
+
+--
+The fastest way to get an engineer to solve a problem is to declare that the
+problem is unsolvable. No engineer can walk away from an unsolvable problem
+until it's solved.
+ (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/source/ap/vim/patches/7.2.308 b/source/ap/vim/patches/7.2.308
new file mode 100644
index 00000000..1e19b21d
--- /dev/null
+++ b/source/ap/vim/patches/7.2.308
@@ -0,0 +1,182 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.308
+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.2.308
+Problem: When using a regexp in the "\=" expression of a substitute
+ command, submatch() returns empty strings for further lines.
+ (Clockwork Jam)
+Solution: Save and restore the line number and line count when calling
+ reg_getline().
+Files: src/regexp.c
+
+
+*** ../vim-7.2.307/src/regexp.c 2009-11-25 18:21:48.000000000 +0100
+--- src/regexp.c 2009-11-25 19:45:07.000000000 +0100
+***************
+*** 6828,6833 ****
+--- 6828,6835 ----
+ * that contains a call to substitute() and submatch(). */
+ static regmatch_T *submatch_match;
+ static regmmatch_T *submatch_mmatch;
++ static linenr_T submatch_firstlnum;
++ static linenr_T submatch_maxline;
+ #endif
+
+ #if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) || defined(PROTO)
+***************
+*** 6941,6947 ****
+ }
+ else
+ {
+- linenr_T save_reg_maxline;
+ win_T *save_reg_win;
+ int save_ireg_ic;
+
+--- 6943,6948 ----
+***************
+*** 6953,6959 ****
+ * vim_regexec_multi() can't be called recursively. */
+ submatch_match = reg_match;
+ submatch_mmatch = reg_mmatch;
+! save_reg_maxline = reg_maxline;
+ save_reg_win = reg_win;
+ save_ireg_ic = ireg_ic;
+ can_f_submatch = TRUE;
+--- 6954,6961 ----
+ * vim_regexec_multi() can't be called recursively. */
+ submatch_match = reg_match;
+ submatch_mmatch = reg_mmatch;
+! submatch_firstlnum = reg_firstlnum;
+! submatch_maxline = reg_maxline;
+ save_reg_win = reg_win;
+ save_ireg_ic = ireg_ic;
+ can_f_submatch = TRUE;
+***************
+*** 6976,6982 ****
+
+ reg_match = submatch_match;
+ reg_mmatch = submatch_mmatch;
+! reg_maxline = save_reg_maxline;
+ reg_win = save_reg_win;
+ ireg_ic = save_ireg_ic;
+ can_f_submatch = FALSE;
+--- 6978,6985 ----
+
+ reg_match = submatch_match;
+ reg_mmatch = submatch_mmatch;
+! reg_firstlnum = submatch_firstlnum;
+! reg_maxline = submatch_maxline;
+ reg_win = save_reg_win;
+ ireg_ic = save_ireg_ic;
+ can_f_submatch = FALSE;
+***************
+*** 7212,7217 ****
+--- 7215,7243 ----
+
+ #ifdef FEAT_EVAL
+ /*
++ * Call reg_getline() with the line numbers from the submatch. If a
++ * substitute() was used the reg_maxline and other values have been
++ * overwritten.
++ */
++ static char_u *
++ reg_getline_submatch(lnum)
++ linenr_T lnum;
++ {
++ char_u *s;
++ linenr_T save_first = reg_firstlnum;
++ linenr_T save_max = reg_maxline;
++
++ reg_firstlnum = submatch_firstlnum;
++ reg_maxline = submatch_maxline;
++
++ s = reg_getline(lnum);
++
++ reg_firstlnum = save_first;
++ reg_maxline = save_max;
++ return s;
++ }
++
++ /*
+ * Used for the submatch() function: get the string from the n'th submatch in
+ * allocated memory.
+ * Returns NULL when not in a ":s" command and for a non-existing submatch.
+***************
+*** 7241,7247 ****
+ if (lnum < 0 || submatch_mmatch->endpos[no].lnum < 0)
+ return NULL;
+
+! s = reg_getline(lnum) + submatch_mmatch->startpos[no].col;
+ if (s == NULL) /* anti-crash check, cannot happen? */
+ break;
+ if (submatch_mmatch->endpos[no].lnum == lnum)
+--- 7267,7273 ----
+ if (lnum < 0 || submatch_mmatch->endpos[no].lnum < 0)
+ return NULL;
+
+! s = reg_getline_submatch(lnum) + submatch_mmatch->startpos[no].col;
+ if (s == NULL) /* anti-crash check, cannot happen? */
+ break;
+ if (submatch_mmatch->endpos[no].lnum == lnum)
+***************
+*** 7267,7273 ****
+ ++lnum;
+ while (lnum < submatch_mmatch->endpos[no].lnum)
+ {
+! s = reg_getline(lnum++);
+ if (round == 2)
+ STRCPY(retval + len, s);
+ len += (int)STRLEN(s);
+--- 7293,7299 ----
+ ++lnum;
+ while (lnum < submatch_mmatch->endpos[no].lnum)
+ {
+! s = reg_getline_submatch(lnum++);
+ if (round == 2)
+ STRCPY(retval + len, s);
+ len += (int)STRLEN(s);
+***************
+*** 7276,7282 ****
+ ++len;
+ }
+ if (round == 2)
+! STRNCPY(retval + len, reg_getline(lnum),
+ submatch_mmatch->endpos[no].col);
+ len += submatch_mmatch->endpos[no].col;
+ if (round == 2)
+--- 7302,7308 ----
+ ++len;
+ }
+ if (round == 2)
+! STRNCPY(retval + len, reg_getline_submatch(lnum),
+ submatch_mmatch->endpos[no].col);
+ len += submatch_mmatch->endpos[no].col;
+ if (round == 2)
+*** ../vim-7.2.307/src/version.c 2009-11-25 18:21:48.000000000 +0100
+--- src/version.c 2009-11-25 19:50:16.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 308,
+ /**/
+
+--
+Engineers are always delighted to share wisdom, even in areas in which they
+have no experience whatsoever. Their logic provides them with inherent
+insight into any field of expertise. This can be a problem when dealing with
+the illogical people who believe that knowledge can only be derived through
+experience.
+ (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/source/ap/vim/patches/7.2.309 b/source/ap/vim/patches/7.2.309
new file mode 100644
index 00000000..a1713b75
--- /dev/null
+++ b/source/ap/vim/patches/7.2.309
@@ -0,0 +1,48 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.309
+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.2.309 (after 7.2.308)
+Problem: Warning for missing function prototype. (Patrick Texier)
+Solution: Add the prototype.
+Files: src/regexp.c
+
+
+*** ../vim-7.2.308/src/regexp.c 2009-11-25 19:51:56.000000000 +0100
+--- src/regexp.c 2009-11-26 20:39:18.000000000 +0100
+***************
+*** 7214,7219 ****
+--- 7214,7221 ----
+ }
+
+ #ifdef FEAT_EVAL
++ static char_u *reg_getline_submatch __ARGS((linenr_T lnum));
++
+ /*
+ * Call reg_getline() with the line numbers from the submatch. If a
+ * substitute() was used the reg_maxline and other values have been
+*** ../vim-7.2.308/src/version.c 2009-11-25 19:51:56.000000000 +0100
+--- src/version.c 2009-11-26 20:40:11.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 309,
+ /**/
+
+--
+Female engineers become irresistible at the age of consent and remain that
+way until about thirty minutes after their clinical death. Longer if it's a
+warm day.
+ (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/source/ap/vim/patches/7.2.310 b/source/ap/vim/patches/7.2.310
new file mode 100644
index 00000000..52734ddf
--- /dev/null
+++ b/source/ap/vim/patches/7.2.310
@@ -0,0 +1,63 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.310
+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.2.310
+Problem: When a filetype plugin in ~/.vim/ftdetect uses ":setfiletype" and
+ the file starts with a "# comment" it gets "conf" filetype.
+Solution: Check for "conf" filetype after using ftdetect plugins.
+Files: runtime/filetype.vim
+
+
+*** ../vim-7.2.309/runtime/filetype.vim 2008-08-06 18:56:36.000000000 +0200
+--- runtime/filetype.vim 2009-12-02 12:08:42.000000000 +0100
+***************
+*** 2400,2405 ****
+--- 2435,2446 ----
+ au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')
+
+
++
++ " Use the filetype detect plugins. They may overrule any of the previously
++ " detected filetypes.
++ runtime! ftdetect/*.vim
++
++
+ " Generic configuration file (check this last, it's just guessing!)
+ au BufNewFile,BufRead,StdinReadPost *
+ \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
+***************
+*** 2408,2417 ****
+ \ setf conf |
+ \ endif
+
+- " Use the plugin-filetype checks last, they may overrule any of the previously
+- " detected filetypes.
+- runtime! ftdetect/*.vim
+-
+ augroup END
+
+
+--- 2449,2454 ----
+*** ../vim-7.2.309/src/version.c 2009-11-26 20:41:19.000000000 +0100
+--- src/version.c 2009-12-02 12:05:27.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 310,
+ /**/
+
+--
+A)bort, R)etry, P)lease don't bother me again
+
+ /// 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/source/ap/vim/patches/7.2.311 b/source/ap/vim/patches/7.2.311
new file mode 100644
index 00000000..9e27a739
--- /dev/null
+++ b/source/ap/vim/patches/7.2.311
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.311
+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.2.311
+Problem: Can't compile with FreeMiNT.
+Solution: Change #ifdef for limits.h. (Alan Hourihane)
+Files: src/fileio.c
+
+
+*** ../vim-7.2.310/src/fileio.c 2009-11-18 20:12:15.000000000 +0100
+--- src/fileio.c 2009-12-02 13:30:07.000000000 +0100
+***************
+*** 21,27 ****
+
+ #include "vim.h"
+
+! #ifdef __TANDEM
+ # include <limits.h> /* for SSIZE_MAX */
+ #endif
+
+--- 21,27 ----
+
+ #include "vim.h"
+
+! #if defined(__TANDEM) || defined(__MINT__)
+ # include <limits.h> /* for SSIZE_MAX */
+ #endif
+
+*** ../vim-7.2.310/src/version.c 2009-12-02 12:08:57.000000000 +0100
+--- src/version.c 2009-12-02 13:31:46.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 311,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+3. Your bookmark takes 15 minutes to scroll from top to bottom.
+
+ /// 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/source/ap/vim/patches/7.2.312 b/source/ap/vim/patches/7.2.312
new file mode 100644
index 00000000..8b95868d
--- /dev/null
+++ b/source/ap/vim/patches/7.2.312
@@ -0,0 +1,312 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.312
+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.2.312
+Problem: iconv() returns an invalid character sequence when conversion
+ fails. It should return an empty string. (Yongwei Wu)
+Solution: Be more strict about invalid characters in the input.
+Files: src/mbyte.c
+
+
+*** ../vim-7.2.311/src/mbyte.c 2009-06-16 15:23:07.000000000 +0200
+--- src/mbyte.c 2009-11-25 16:10:44.000000000 +0100
+***************
+*** 133,154 ****
+ static int dbcs_ptr2cells_len __ARGS((char_u *p, int size));
+ static int dbcs_ptr2char __ARGS((char_u *p));
+
+! /* Lookup table to quickly get the length in bytes of a UTF-8 character from
+! * the first byte of a UTF-8 string. Bytes which are illegal when used as the
+! * first byte have a one, because these will be used separately. */
+ static char utf8len_tab[256] =
+ {
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+! 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /*bogus*/
+! 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /*bogus*/
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,1,1,
+ };
+
+ /*
+ * XIM often causes trouble. Define XIM_DEBUG to get a log of XIM callbacks
+ * in the "xim.log" file.
+ */
+--- 133,172 ----
+ static int dbcs_ptr2cells_len __ARGS((char_u *p, int size));
+ static int dbcs_ptr2char __ARGS((char_u *p));
+
+! /*
+! * Lookup table to quickly get the length in bytes of a UTF-8 character from
+! * the first byte of a UTF-8 string.
+! * Bytes which are illegal when used as the first byte have a 1.
+! * The NUL byte has length 1.
+! */
+ static char utf8len_tab[256] =
+ {
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+! 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+! 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,1,1,
+ };
+
+ /*
++ * Like utf8len_tab above, but using a zero for illegal lead bytes.
++ */
++ static char utf8len_tab_zero[256] =
++ {
++ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
++ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
++ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
++ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
++ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
++ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
++ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,0,0,
++ };
++
++ /*
+ * XIM often causes trouble. Define XIM_DEBUG to get a log of XIM callbacks
+ * in the "xim.log" file.
+ */
+***************
+*** 1352,1358 ****
+ if (size > 0 && *p >= 0x80)
+ {
+ if (utf_ptr2len_len(p, size) < utf8len_tab[*p])
+! return 1;
+ c = utf_ptr2char(p);
+ /* An illegal byte is displayed as <xx>. */
+ if (utf_ptr2len(p) == 1 || c == NUL)
+--- 1370,1376 ----
+ if (size > 0 && *p >= 0x80)
+ {
+ if (utf_ptr2len_len(p, size) < utf8len_tab[*p])
+! return 1; /* truncated */
+ c = utf_ptr2char(p);
+ /* An illegal byte is displayed as <xx>. */
+ if (utf_ptr2len(p) == 1 || c == NUL)
+***************
+*** 1473,1479 ****
+ if (p[0] < 0x80) /* be quick for ASCII */
+ return p[0];
+
+! len = utf8len_tab[p[0]];
+ if (len > 1 && (p[1] & 0xc0) == 0x80)
+ {
+ if (len == 2)
+--- 1491,1497 ----
+ if (p[0] < 0x80) /* be quick for ASCII */
+ return p[0];
+
+! len = utf8len_tab_zero[p[0]];
+ if (len > 1 && (p[1] & 0xc0) == 0x80)
+ {
+ if (len == 2)
+***************
+*** 1723,1728 ****
+--- 1741,1747 ----
+ /*
+ * Return length of UTF-8 character, obtained from the first byte.
+ * "b" must be between 0 and 255!
++ * Returns 1 for an invalid first byte value.
+ */
+ int
+ utf_byte2len(b)
+***************
+*** 1737,1742 ****
+--- 1756,1762 ----
+ * Returns 1 for "".
+ * Returns 1 for an illegal byte sequence (also in incomplete byte seq.).
+ * Returns number > "size" for an incomplete byte sequence.
++ * Never returns zero.
+ */
+ int
+ utf_ptr2len_len(p, size)
+***************
+*** 1747,1757 ****
+ int i;
+ int m;
+
+! if (*p == NUL)
+! return 1;
+! m = len = utf8len_tab[*p];
+ if (len > size)
+ m = size; /* incomplete byte sequence. */
+ for (i = 1; i < m; ++i)
+ if ((p[i] & 0xc0) != 0x80)
+ return 1;
+--- 1767,1779 ----
+ int i;
+ int m;
+
+! len = utf8len_tab[*p];
+! if (len == 1)
+! return 1; /* NUL, ascii or illegal lead byte */
+ if (len > size)
+ m = size; /* incomplete byte sequence. */
++ else
++ m = len;
+ for (i = 1; i < m; ++i)
+ if ((p[i] & 0xc0) != 0x80)
+ return 1;
+***************
+*** 2505,2510 ****
+--- 2527,2533 ----
+ /*
+ * mb_head_off() function pointer.
+ * Return offset from "p" to the first byte of the character it points into.
++ * If "p" points to the NUL at the end of the string return 0.
+ * Returns 0 when already at the first byte of a character.
+ */
+ int
+***************
+*** 2524,2530 ****
+
+ /* It can't be a trailing byte when not using DBCS, at the start of the
+ * string or the previous byte can't start a double-byte. */
+! if (p <= base || MB_BYTE2LEN(p[-1]) == 1)
+ return 0;
+
+ /* This is slow: need to start at the base and go forward until the
+--- 2547,2553 ----
+
+ /* It can't be a trailing byte when not using DBCS, at the start of the
+ * string or the previous byte can't start a double-byte. */
+! if (p <= base || MB_BYTE2LEN(p[-1]) == 1 || *p == NUL)
+ return 0;
+
+ /* This is slow: need to start at the base and go forward until the
+***************
+*** 2552,2558 ****
+ * lead byte in the current cell. */
+ if (p <= base
+ || (enc_dbcs == DBCS_JPNU && p[-1] == 0x8e)
+! || MB_BYTE2LEN(p[-1]) == 1)
+ return 0;
+
+ /* This is slow: need to start at the base and go forward until the
+--- 2575,2582 ----
+ * lead byte in the current cell. */
+ if (p <= base
+ || (enc_dbcs == DBCS_JPNU && p[-1] == 0x8e)
+! || MB_BYTE2LEN(p[-1]) == 1
+! || *p == NUL)
+ return 0;
+
+ /* This is slow: need to start at the base and go forward until the
+***************
+*** 2578,2583 ****
+--- 2602,2608 ----
+ char_u *q;
+ char_u *s;
+ int c;
++ int len;
+ #ifdef FEAT_ARABIC
+ char_u *j;
+ #endif
+***************
+*** 2597,2604 ****
+ --q;
+ /* Check for illegal sequence. Do allow an illegal byte after where we
+ * started. */
+! if (utf8len_tab[*q] != (int)(s - q + 1)
+! && utf8len_tab[*q] != (int)(p - q + 1))
+ return 0;
+
+ if (q <= base)
+--- 2622,2629 ----
+ --q;
+ /* Check for illegal sequence. Do allow an illegal byte after where we
+ * started. */
+! len = utf8len_tab[*q];
+! if (len != (int)(s - q + 1) && len != (int)(p - q + 1))
+ return 0;
+
+ if (q <= base)
+***************
+*** 2810,2818 ****
+
+ while (end == NULL ? *p != NUL : p < end)
+ {
+! if ((*p & 0xc0) == 0x80)
+ return FALSE; /* invalid lead byte */
+- l = utf8len_tab[*p];
+ if (end != NULL && p + l > end)
+ return FALSE; /* incomplete byte sequence */
+ ++p;
+--- 2835,2843 ----
+
+ while (end == NULL ? *p != NUL : p < end)
+ {
+! l = utf8len_tab_zero[*p];
+! if (l == 0)
+ return FALSE; /* invalid lead byte */
+ if (end != NULL && p + l > end)
+ return FALSE; /* incomplete byte sequence */
+ ++p;
+***************
+*** 6117,6128 ****
+ d = retval;
+ for (i = 0; i < len; ++i)
+ {
+! l = utf_ptr2len(ptr + i);
+ if (l == 0)
+ *d++ = NUL;
+ else if (l == 1)
+ {
+! if (unconvlenp != NULL && utf8len_tab[ptr[i]] > len - i)
+ {
+ /* Incomplete sequence at the end. */
+ *unconvlenp = len - i;
+--- 6142,6161 ----
+ d = retval;
+ for (i = 0; i < len; ++i)
+ {
+! l = utf_ptr2len_len(ptr + i, len - i);
+ if (l == 0)
+ *d++ = NUL;
+ else if (l == 1)
+ {
+! int l_w = utf8len_tab_zero[ptr[i]];
+!
+! if (l_w == 0)
+! {
+! /* Illegal utf-8 byte cannot be converted */
+! vim_free(retval);
+! return NULL;
+! }
+! if (unconvlenp != NULL && l_w > len - i)
+ {
+ /* Incomplete sequence at the end. */
+ *unconvlenp = len - i;
+*** ../vim-7.2.311/src/version.c 2009-12-02 13:32:10.000000000 +0100
+--- src/version.c 2009-12-02 15:00:23.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 312,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+6. You refuse to go to a vacation spot with no electricity and no phone lines.
+
+ /// 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/source/ap/vim/patches/7.2.313 b/source/ap/vim/patches/7.2.313
new file mode 100644
index 00000000..77b9103a
--- /dev/null
+++ b/source/ap/vim/patches/7.2.313
@@ -0,0 +1,117 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.313
+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.2.313
+Problem: Command line completion doesn't work after "%:h" and similar.
+Solution: Expand these items before doing the completion.
+Files: src/ex_getln.c, src/misc1.c, src/proto/misc1.pro
+
+
+*** ../vim-7.2.312/src/ex_getln.c 2009-09-18 17:24:54.000000000 +0200
+--- src/ex_getln.c 2009-12-02 16:40:06.000000000 +0100
+***************
+*** 4422,4428 ****
+ flags |= EW_FILE;
+ else
+ flags = (flags | EW_DIR) & ~EW_FILE;
+! ret = expand_wildcards(1, &pat, num_file, file, flags);
+ if (free_pat)
+ vim_free(pat);
+ return ret;
+--- 4422,4429 ----
+ flags |= EW_FILE;
+ else
+ flags = (flags | EW_DIR) & ~EW_FILE;
+! /* Expand wildcards, supporting %:h and the like. */
+! ret = expand_wildcards_eval(&pat, num_file, file, flags);
+ if (free_pat)
+ vim_free(pat);
+ return ret;
+*** ../vim-7.2.312/src/misc1.c 2009-11-17 16:08:12.000000000 +0100
+--- src/misc1.c 2009-12-02 17:06:49.000000000 +0100
+***************
+*** 8447,8452 ****
+--- 8447,8492 ----
+ }
+
+ /*
++ * Invoke expand_wildcards() for one pattern.
++ * Expand items like "%:h" before the expansion.
++ * Returns OK or FAIL.
++ */
++ int
++ expand_wildcards_eval(pat, num_file, file, flags)
++ char_u **pat; /* pointer to input pattern */
++ int *num_file; /* resulting number of files */
++ char_u ***file; /* array of resulting files */
++ int flags; /* EW_DIR, etc. */
++ {
++ int ret = FAIL;
++ char_u *eval_pat = NULL;
++ char_u *exp_pat = *pat;
++ char_u *ignored_msg;
++ int usedlen;
++
++ if (*exp_pat == '%' || *exp_pat == '#' || *exp_pat == '<')
++ {
++ ++emsg_off;
++ eval_pat = eval_vars(exp_pat, exp_pat, &usedlen,
++ NULL, &ignored_msg, NULL);
++ --emsg_off;
++ if (eval_pat != NULL)
++ exp_pat = concat_str(eval_pat, exp_pat + usedlen);
++ }
++
++ if (exp_pat != NULL)
++ ret = expand_wildcards(1, &exp_pat, num_file, file, flags);
++
++ if (eval_pat != NULL)
++ {
++ vim_free(exp_pat);
++ vim_free(eval_pat);
++ }
++
++ return ret;
++ }
++
++ /*
+ * Expand wildcards. Calls gen_expand_wildcards() and removes files matching
+ * 'wildignore'.
+ * Returns OK or FAIL.
+*** ../vim-7.2.312/src/proto/misc1.pro 2007-09-26 22:36:32.000000000 +0200
+--- src/proto/misc1.pro 2009-12-02 16:41:52.000000000 +0100
+***************
+*** 85,90 ****
+--- 85,91 ----
+ int vim_fexists __ARGS((char_u *fname));
+ void line_breakcheck __ARGS((void));
+ void fast_breakcheck __ARGS((void));
++ int expand_wildcards_eval __ARGS((char_u **pat, int *num_file, char_u ***file, int flags));
+ int expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
+ int match_suffix __ARGS((char_u *fname));
+ int unix_expandpath __ARGS((garray_T *gap, char_u *path, int wildoff, int flags, int didstar));
+*** ../vim-7.2.312/src/version.c 2009-12-02 15:03:24.000000000 +0100
+--- src/version.c 2009-12-02 17:14:02.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 313,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+8. You spend half of the plane trip with your laptop on your lap...and your
+ child in the overhead compartment.
+
+ /// 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/source/ap/vim/patches/7.2.314 b/source/ap/vim/patches/7.2.314
new file mode 100644
index 00000000..490605d0
--- /dev/null
+++ b/source/ap/vim/patches/7.2.314
@@ -0,0 +1,56 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.314
+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.2.314
+Problem: Missing function in small build.
+Solution: Always include concat_str.
+Files: src/misc1.c
+
+
+*** ../vim-7.2.313/src/misc1.c 2009-12-02 17:15:04.000000000 +0100
+--- src/misc1.c 2009-12-02 17:44:55.000000000 +0100
+***************
+*** 4666,4672 ****
+ return dest;
+ }
+
+- #if defined(FEAT_EVAL) || defined(FEAT_GETTEXT) || defined(PROTO)
+ /*
+ * Concatenate two strings and return the result in allocated memory.
+ * Returns NULL when out of memory.
+--- 4666,4671 ----
+***************
+*** 4687,4693 ****
+ }
+ return dest;
+ }
+- #endif
+
+ /*
+ * Add a path separator to a file name, unless it already ends in a path
+--- 4686,4691 ----
+*** ../vim-7.2.313/src/version.c 2009-12-02 17:15:04.000000000 +0100
+--- src/version.c 2009-12-02 17:47:18.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 314,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+9. All your daydreaming is preoccupied with getting a faster connection to the
+ net: 28.8...ISDN...cable modem...T1...T3.
+
+ /// 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/source/ap/vim/patches/7.2.315 b/source/ap/vim/patches/7.2.315
new file mode 100644
index 00000000..6a5e7c7b
--- /dev/null
+++ b/source/ap/vim/patches/7.2.315
@@ -0,0 +1,134 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.315
+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.2.315
+Problem: Python libs can't be found on 64 bit system.
+Solution: Add lib64 to the list of directories. (Michael Henry)
+Files: src/auto/configure, src/configure.in
+
+
+*** ../vim-7.2.314/src/auto/configure 2009-11-17 17:13:03.000000000 +0100
+--- src/auto/configure 2009-12-02 17:21:20.000000000 +0100
+***************
+*** 5126,5132 ****
+
+ vi_cv_path_python_conf=
+ for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
+! for subdir in lib share; do
+ d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
+ if test -d "$d" && test -f "$d/config.c"; then
+ vi_cv_path_python_conf="$d"
+--- 5126,5132 ----
+
+ vi_cv_path_python_conf=
+ for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
+! for subdir in lib64 lib share; do
+ d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
+ if test -d "$d" && test -f "$d/config.c"; then
+ vi_cv_path_python_conf="$d"
+***************
+*** 13718,13725 ****
+ $as_echo "pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group" >&6; }
+ else
+ vim_cv_tty_group=world
+! { $as_echo "$as_me:$LINENO: result: ptys are world accessable" >&5
+! $as_echo "ptys are world accessable" >&6; }
+ fi
+
+ else
+--- 13718,13725 ----
+ $as_echo "pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group" >&6; }
+ else
+ vim_cv_tty_group=world
+! { $as_echo "$as_me:$LINENO: result: ptys are world accessible" >&5
+! $as_echo "ptys are world accessible" >&6; }
+ fi
+
+ else
+***************
+*** 13730,13737 ****
+ ( exit $ac_status )
+
+ vim_cv_tty_group=world
+! { $as_echo "$as_me:$LINENO: result: can't determine - assume ptys are world accessable" >&5
+! $as_echo "can't determine - assume ptys are world accessable" >&6; }
+
+ fi
+ rm -rf conftest.dSYM
+--- 13730,13737 ----
+ ( exit $ac_status )
+
+ vim_cv_tty_group=world
+! { $as_echo "$as_me:$LINENO: result: can't determine - assume ptys are world accessible" >&5
+! $as_echo "can't determine - assume ptys are world accessible" >&6; }
+
+ fi
+ rm -rf conftest.dSYM
+*** ../vim-7.2.314/src/configure.in 2009-11-17 17:13:03.000000000 +0100
+--- src/configure.in 2009-12-02 17:21:10.000000000 +0100
+***************
+*** 686,692 ****
+ [
+ vi_cv_path_python_conf=
+ for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
+! for subdir in lib share; do
+ d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
+ if test -d "$d" && test -f "$d/config.c"; then
+ vi_cv_path_python_conf="$d"
+--- 686,692 ----
+ [
+ vi_cv_path_python_conf=
+ for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
+! for subdir in lib64 lib share; do
+ d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
+ if test -d "$d" && test -f "$d/config.c"; then
+ vi_cv_path_python_conf="$d"
+***************
+*** 2557,2567 ****
+ AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
+ else
+ vim_cv_tty_group=world
+! AC_MSG_RESULT([ptys are world accessable])
+ fi
+ ],[
+ vim_cv_tty_group=world
+! AC_MSG_RESULT([can't determine - assume ptys are world accessable])
+ ],[
+ AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
+ ])
+--- 2557,2567 ----
+ AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
+ else
+ vim_cv_tty_group=world
+! AC_MSG_RESULT([ptys are world accessible])
+ fi
+ ],[
+ vim_cv_tty_group=world
+! AC_MSG_RESULT([can't determine - assume ptys are world accessible])
+ ],[
+ AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
+ ])
+*** ../vim-7.2.314/src/version.c 2009-12-02 17:47:46.000000000 +0100
+--- src/version.c 2009-12-02 17:57:39.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 315,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+10. And even your night dreams are in HTML.
+
+ /// 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/source/ap/vim/patches/7.2.316 b/source/ap/vim/patches/7.2.316
new file mode 100644
index 00000000..34e629fe
--- /dev/null
+++ b/source/ap/vim/patches/7.2.316
@@ -0,0 +1,83 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.316
+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.2.316
+Problem: May get multiple _FORTIFY_SOURCE arguments. (Tony Mechelynck)
+Solution: First remove all these arguments and then add the one we want.
+ (Dominique Pelle)
+Files: src/auto/configure, src/configure.in
+
+
+*** ../vim-7.2.315/src/auto/configure 2009-12-02 17:59:08.000000000 +0100
+--- src/auto/configure 2009-12-16 17:05:59.000000000 +0100
+***************
+*** 17185,17194 ****
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+! { $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5
+ $as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
+ if test "$gccmajor" -gt "3"; then
+! CFLAGS=`echo "$CFLAGS -D_FORTIFY_SOURCE=1" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g' -e 's/-D_FORTIFY_SOURCE=2//g'`
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+ $as_echo "yes" >&6; }
+ else
+--- 17185,17194 ----
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+! { $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5
+ $as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
+ if test "$gccmajor" -gt "3"; then
+! CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+ $as_echo "yes" >&6; }
+ else
+*** ../vim-7.2.315/src/configure.in 2009-12-02 17:59:08.000000000 +0100
+--- src/configure.in 2009-12-16 17:05:55.000000000 +0100
+***************
+*** 3241,3249 ****
+ fi
+ dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
+ dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
+ AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
+ if test "$gccmajor" -gt "3"; then
+! CFLAGS=`echo "$CFLAGS -D_FORTIFY_SOURCE=1" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g' -e 's/-D_FORTIFY_SOURCE=2//g'`
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+--- 3241,3250 ----
+ fi
+ dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
+ dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
++ dnl Also remove duplicate _FORTIFY_SOURCE arguments.
+ AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
+ if test "$gccmajor" -gt "3"; then
+! CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+*** ../vim-7.2.315/src/version.c 2009-12-02 17:59:08.000000000 +0100
+--- src/version.c 2009-12-16 17:12:25.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 316,
+ /**/
+
+--
+Have you heard about the new Beowulf cluster? It's so fast, it executes
+an infinite loop in 6 seconds.
+
+ /// 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/source/ap/vim/patches/7.2.317 b/source/ap/vim/patches/7.2.317
new file mode 100644
index 00000000..bc0ceeea
--- /dev/null
+++ b/source/ap/vim/patches/7.2.317
@@ -0,0 +1,148 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.317
+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.2.317
+Problem: Memory leak when adding a highlight group with unprintable
+ characters, resulting in E669.
+Solution: Free the memory. And fix a few typos. (Dominique Pelle)
+Files: src/syntax.c
+
+
+*** ../vim-7.2.316/src/syntax.c 2009-05-17 13:30:58.000000000 +0200
+--- src/syntax.c 2009-12-16 18:09:05.000000000 +0100
+***************
+*** 206,212 ****
+ static int current_attr = 0; /* attr of current syntax word */
+ #ifdef FEAT_EVAL
+ static int current_id = 0; /* ID of current char for syn_get_id() */
+! static int current_trans_id = 0; /* idem, transparancy removed */
+ #endif
+
+ typedef struct syn_cluster_S
+--- 206,212 ----
+ static int current_attr = 0; /* attr of current syntax word */
+ #ifdef FEAT_EVAL
+ static int current_id = 0; /* ID of current char for syn_get_id() */
+! static int current_trans_id = 0; /* idem, transparency removed */
+ #endif
+
+ typedef struct syn_cluster_S
+***************
+*** 282,288 ****
+ int si_idx; /* index of syntax pattern or
+ KEYWORD_IDX */
+ int si_id; /* highlight group ID for keywords */
+! int si_trans_id; /* idem, transparancy removed */
+ int si_m_lnum; /* lnum of the match */
+ int si_m_startcol; /* starting column of the match */
+ lpos_T si_m_endpos; /* just after end posn of the match */
+--- 282,288 ----
+ int si_idx; /* index of syntax pattern or
+ KEYWORD_IDX */
+ int si_id; /* highlight group ID for keywords */
+! int si_trans_id; /* idem, transparency removed */
+ int si_m_lnum; /* lnum of the match */
+ int si_m_startcol; /* starting column of the match */
+ lpos_T si_m_endpos; /* just after end posn of the match */
+***************
+*** 1274,1280 ****
+ dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1;
+
+ /*
+! * Go throught the list to find the "tick" for the oldest entry that can
+ * be removed. Set "above" when the "tick" for the oldest entry is above
+ * "b_sst_lasttick" (the display tick wraps around).
+ */
+--- 1274,1280 ----
+ dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1;
+
+ /*
+! * Go through the list to find the "tick" for the oldest entry that can
+ * be removed. Set "above" when the "tick" for the oldest entry is above
+ * "b_sst_lasttick" (the display tick wraps around).
+ */
+***************
+*** 2319,2325 ****
+ ? (syn_buf->b_spell_cluster_id == 0)
+ : (syn_buf->b_syn_spell == SYNSPL_TOP);
+
+! /* nextgroup ends at end of line, unless "skipnl" or "skipemtpy" present */
+ if (current_next_list != NULL
+ && syn_getcurline()[current_col + 1] == NUL
+ && !(current_next_flags & (HL_SKIPNL | HL_SKIPEMPTY)))
+--- 2319,2325 ----
+ ? (syn_buf->b_spell_cluster_id == 0)
+ : (syn_buf->b_syn_spell == SYNSPL_TOP);
+
+! /* nextgroup ends at end of line, unless "skipnl" or "skipempty" present */
+ if (current_next_list != NULL
+ && syn_getcurline()[current_col + 1] == NUL
+ && !(current_next_flags & (HL_SKIPNL | HL_SKIPEMPTY)))
+***************
+*** 6108,6114 ****
+ win_T *wp;
+ long lnum;
+ colnr_T col;
+! int trans; /* remove transparancy */
+ int *spellp; /* return: can do spell checking */
+ int keep_state; /* keep state of char at "col" */
+ {
+--- 6108,6114 ----
+ win_T *wp;
+ long lnum;
+ colnr_T col;
+! int trans; /* remove transparency */
+ int *spellp; /* return: can do spell checking */
+ int keep_state; /* keep state of char at "col" */
+ {
+***************
+*** 7523,7529 ****
+ #if defined(FEAT_GUI) || defined(PROTO)
+ /*
+ * Set the normal foreground and background colors according to the "Normal"
+! * highlighighting group. For X11 also set "Menu", "Scrollbar", and
+ * "Tooltip" colors.
+ */
+ void
+--- 7523,7529 ----
+ #if defined(FEAT_GUI) || defined(PROTO)
+ /*
+ * Set the normal foreground and background colors according to the "Normal"
+! * highlighting group. For X11 also set "Menu", "Scrollbar", and
+ * "Tooltip" colors.
+ */
+ void
+***************
+*** 8647,8652 ****
+--- 8647,8653 ----
+ if (!vim_isprintc(*p))
+ {
+ EMSG(_("E669: Unprintable character in group name"));
++ vim_free(name);
+ return 0;
+ }
+ else if (!ASCII_ISALNUM(*p) && *p != '_')
+*** ../vim-7.2.316/src/version.c 2009-12-16 17:14:08.000000000 +0100
+--- src/version.c 2009-12-16 18:09:14.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 317,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+35. Your husband tells you he's had the beard for 2 months.
+
+ /// 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/source/ap/vim/patches/7.2.318 b/source/ap/vim/patches/7.2.318
new file mode 100644
index 00000000..43018360
--- /dev/null
+++ b/source/ap/vim/patches/7.2.318
@@ -0,0 +1,91 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.318
+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.2.318
+Problem: Wrong locale value breaks floating point numbers for gvim.
+Solution: Set the locale again after doing GUI inits. (Dominique Pelle)
+Files: src/main.c
+
+
+*** ../vim-7.2.317/src/main.c 2009-11-17 12:31:30.000000000 +0100
+--- src/main.c 2009-12-16 18:23:46.000000000 +0100
+***************
+*** 366,379 ****
+ * Check if the GUI can be started. Reset gui.starting if not.
+ * Don't know about other systems, stay on the safe side and don't check.
+ */
+! if (gui.starting && gui_init_check() == FAIL)
+ {
+! gui.starting = FALSE;
+
+! /* When running "evim" or "gvim -y" we need the menus, exit if we
+! * don't have them. */
+! if (params.evim_mode)
+! mch_exit(1);
+ }
+ # endif
+ #endif
+--- 366,386 ----
+ * Check if the GUI can be started. Reset gui.starting if not.
+ * Don't know about other systems, stay on the safe side and don't check.
+ */
+! if (gui.starting)
+ {
+! if (gui_init_check() == FAIL)
+! {
+! gui.starting = FALSE;
+
+! /* When running "evim" or "gvim -y" we need the menus, exit if we
+! * don't have them. */
+! if (params.evim_mode)
+! mch_exit(1);
+! }
+! # if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
+! /* Re-initialize locale, it may have been altered by gui_init_check() */
+! init_locale();
+! # endif
+ }
+ # endif
+ #endif
+***************
+*** 3685,3691 ****
+ }
+ else if (STRICMP(argv[i], "--servername") == 0)
+ {
+! /* Alredy processed. Take it out of the command line */
+ i++;
+ continue;
+ }
+--- 3692,3698 ----
+ }
+ else if (STRICMP(argv[i], "--servername") == 0)
+ {
+! /* Already processed. Take it out of the command line */
+ i++;
+ continue;
+ }
+*** ../vim-7.2.317/src/version.c 2009-12-16 18:13:04.000000000 +0100
+--- src/version.c 2009-12-16 18:26:24.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 318,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+36. You miss more than five meals a week downloading the latest games from
+ Apogee.
+
+ /// 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/source/ap/vim/patches/7.2.319 b/source/ap/vim/patches/7.2.319
new file mode 100644
index 00000000..3cbfd42e
--- /dev/null
+++ b/source/ap/vim/patches/7.2.319
@@ -0,0 +1,63 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.319
+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.2.319
+Problem: Motif: accessing freed memory when cancelling font dialog.
+Solution: Destroy the widget only after accessing it. (Dominique Pelle)
+Files: src/gui_xmdlg.c
+
+
+*** ../vim-7.2.318/src/gui_xmdlg.c 2009-11-03 12:53:44.000000000 +0100
+--- src/gui_xmdlg.c 2009-12-16 18:39:21.000000000 +0100
+***************
+*** 1274,1286 ****
+ XtAppProcessEvent(XtWidgetToApplicationContext(data->dialog),
+ (XtInputMask)XtIMAll);
+
+- XtDestroyWidget(data->dialog);
+-
+ if (data->old)
+ {
+ XFreeFont(XtDisplay(data->dialog), data->old);
+ XmFontListFree(data->old_list);
+ }
+
+ gui_motif_synch_fonts();
+
+--- 1274,1285 ----
+ XtAppProcessEvent(XtWidgetToApplicationContext(data->dialog),
+ (XtInputMask)XtIMAll);
+
+ if (data->old)
+ {
+ XFreeFont(XtDisplay(data->dialog), data->old);
+ XmFontListFree(data->old_list);
+ }
++ XtDestroyWidget(data->dialog);
+
+ gui_motif_synch_fonts();
+
+*** ../vim-7.2.318/src/version.c 2009-12-16 18:27:29.000000000 +0100
+--- src/version.c 2009-12-16 18:40:06.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 319,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+37. You start looking for hot HTML addresses in public restrooms.
+
+ /// 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/source/ap/vim/patches/7.2.320 b/source/ap/vim/patches/7.2.320
new file mode 100644
index 00000000..73f62247
--- /dev/null
+++ b/source/ap/vim/patches/7.2.320
@@ -0,0 +1,199 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.320
+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.2.320
+Problem: Unused function in Mzscheme interface.
+Solution: Remove the function and what depends on it. (Dominique Pelle)
+Files: src/if_mzsch.c, src/proto/if_mzsch.pro
+
+
+*** ../vim-7.2.319/src/if_mzsch.c 2009-09-11 12:20:47.000000000 +0200
+--- src/if_mzsch.c 2009-12-16 19:01:04.000000000 +0100
+***************
+*** 70,83 ****
+ Scheme_Object *port;
+ } Port_Info;
+
+- /* info for do_apply */
+- typedef struct
+- {
+- Scheme_Object *proc;
+- int argc;
+- Scheme_Object **argv;
+- } Apply_Info;
+-
+ /*
+ *========================================================================
+ * Vim-Control Commands
+--- 70,75 ----
+***************
+*** 160,166 ****
+ static Scheme_Object *extract_exn_message(Scheme_Object *v);
+ static Scheme_Object *do_eval(void *, int noargc, Scheme_Object **noargv);
+ static Scheme_Object *do_load(void *, int noargc, Scheme_Object **noargv);
+- static Scheme_Object *do_apply(void *, int noargc, Scheme_Object **noargv);
+ static void register_vim_exn(void);
+ static vim_mz_buffer *get_buffer_arg(const char *fname, int argnum,
+ int argc, Scheme_Object **argv);
+--- 152,157 ----
+***************
+*** 1056,1062 ****
+ MZ_GC_REG();
+ config = scheme_config;
+ MZ_GC_CHECK();
+! /* recreate ports each call effectivelly clearing these ones */
+ curout = scheme_make_string_output_port();
+ MZ_GC_CHECK();
+ curerr = scheme_make_string_output_port();
+--- 1047,1053 ----
+ MZ_GC_REG();
+ config = scheme_config;
+ MZ_GC_CHECK();
+! /* recreate ports each call effectively clearing these ones */
+ curout = scheme_make_string_output_port();
+ MZ_GC_CHECK();
+ curerr = scheme_make_string_output_port();
+***************
+*** 1196,1231 ****
+ }
+ }
+
+- /*
+- * apply MzScheme procedure with arguments,
+- * handling errors
+- */
+- Scheme_Object *
+- mzvim_apply(Scheme_Object *proc, int argc, Scheme_Object **argv)
+- {
+- if (mzscheme_init())
+- return FAIL;
+- else
+- {
+- Apply_Info data = {NULL, 0, NULL};
+- Scheme_Object *ret = NULL;
+-
+- MZ_GC_DECL_REG(5);
+- MZ_GC_VAR_IN_REG(0, ret);
+- MZ_GC_VAR_IN_REG(1, data.proc);
+- MZ_GC_ARRAY_VAR_IN_REG(2, data.argv, argc);
+- MZ_GC_REG();
+-
+- data.proc = proc;
+- data.argc = argc;
+- data.argv = argv;
+-
+- eval_with_exn_handling(&data, do_apply, &ret);
+- MZ_GC_UNREG();
+- return ret;
+- }
+- }
+-
+ static Scheme_Object *
+ do_load(void *data, int noargc, Scheme_Object **noargv)
+ {
+--- 1187,1192 ----
+***************
+*** 1257,1263 ****
+ MZ_GC_CHECK();
+ }
+
+! /* errors will be caught in do_mzscheme_comamnd and ex_mzfile */
+ scheme_close_input_port(pinfo->port);
+ MZ_GC_CHECK();
+ pinfo->port = NULL;
+--- 1218,1224 ----
+ MZ_GC_CHECK();
+ }
+
+! /* errors will be caught in do_mzscheme_command and ex_mzfile */
+ scheme_close_input_port(pinfo->port);
+ MZ_GC_CHECK();
+ pinfo->port = NULL;
+***************
+*** 1348,1360 ****
+ return scheme_eval_string_all((char *)s, environment, TRUE);
+ }
+
+- static Scheme_Object *
+- do_apply(void *a, int noargc, Scheme_Object **noargv)
+- {
+- Apply_Info *info = (Apply_Info *)a;
+- return scheme_apply(info->proc, info->argc, info->argv);
+- }
+-
+ /*
+ *========================================================================
+ * 3. MzScheme I/O Handlers
+--- 1309,1314 ----
+***************
+*** 2128,2134 ****
+ static Scheme_Object *
+ set_buffer_line(void *data, int argc, Scheme_Object **argv)
+ {
+! /* First of all, we check the the of the supplied MzScheme object.
+ * There are three cases:
+ * 1. #f - this is a deletion.
+ * 2. A string - this is a replacement.
+--- 2082,2088 ----
+ static Scheme_Object *
+ set_buffer_line(void *data, int argc, Scheme_Object **argv)
+ {
+! /* First of all, we check the value of the supplied MzScheme object.
+ * There are three cases:
+ * 1. #f - this is a deletion.
+ * 2. A string - this is a replacement.
+***************
+*** 2428,2434 ****
+ /*
+ * (insert-buff-line-list {linenr} {string/string-list} [buffer])
+ *
+! * Insert a number of lines into the specified buffer after the specifed line.
+ * The line number is in Vim format (1-based). The lines to be inserted are
+ * given as an MzScheme list of string objects or as a single string. The lines
+ * to be added are checked for validity and correct format. Errors are
+--- 2382,2388 ----
+ /*
+ * (insert-buff-line-list {linenr} {string/string-list} [buffer])
+ *
+! * Insert a number of lines into the specified buffer after the specified line.
+ * The line number is in Vim format (1-based). The lines to be inserted are
+ * given as an MzScheme list of string objects or as a single string. The lines
+ * to be added are checked for validity and correct format. Errors are
+*** ../vim-7.2.319/src/proto/if_mzsch.pro 2009-05-26 22:58:43.000000000 +0200
+--- src/proto/if_mzsch.pro 2009-12-16 19:01:01.000000000 +0100
+***************
+*** 13,20 ****
+ void mzvim_check_threads __ARGS((void));
+ void mzvim_reset_timer __ARGS((void));
+ void *mzvim_eval_string __ARGS((char_u *str));
+- struct Scheme_Object *mzvim_apply __ARGS((struct Scheme_Object *, int argc,
+- struct Scheme_Object **));
+ int mzthreads_allowed __ARGS((void));
+ void mzscheme_main __ARGS((void));
+ /* vim: set ft=c : */
+--- 13,18 ----
+*** ../vim-7.2.319/src/version.c 2009-12-16 18:49:09.000000000 +0100
+--- src/version.c 2009-12-16 18:53:48.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 320,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+38. You wake up at 3 a.m. to go to the bathroom and stop and check your e-mail
+ on the way back to bed.
+
+ /// 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/source/ap/vim/patches/7.2.321 b/source/ap/vim/patches/7.2.321
new file mode 100644
index 00000000..69c08f48
--- /dev/null
+++ b/source/ap/vim/patches/7.2.321
@@ -0,0 +1,59 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.321
+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.2.321
+Problem: histadd() and searching with "*" fails to add entry to history
+ when it is empty.
+Solution: Initialize the history. (Lech Lorens)
+Files: src/eval.c, src/normal.c
+
+
+*** ../vim-7.2.320/src/eval.c 2009-11-17 12:20:30.000000000 +0100
+--- src/eval.c 2009-12-24 14:37:50.000000000 +0100
+***************
+*** 12014,12019 ****
+--- 12014,12020 ----
+ str = get_tv_string_buf(&argvars[1], buf);
+ if (*str != NUL)
+ {
++ init_history();
+ add_to_history(histype, str, FALSE, NUL);
+ rettv->vval.v_number = TRUE;
+ return;
+*** ../vim-7.2.320/src/normal.c 2009-05-17 13:30:58.000000000 +0200
+--- src/normal.c 2009-12-24 14:38:28.000000000 +0100
+***************
+*** 5602,5607 ****
+--- 5602,5608 ----
+ STRCAT(buf, "\\>");
+ #ifdef FEAT_CMDHIST
+ /* put pattern in search history */
++ init_history();
+ add_to_history(HIST_SEARCH, buf, TRUE, NUL);
+ #endif
+ normal_search(cap, cmdchar == '*' ? '/' : '?', buf, 0);
+*** ../vim-7.2.320/src/version.c 2009-12-16 19:02:05.000000000 +0100
+--- src/version.c 2009-12-24 14:39:46.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 321,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+43. You tell the kids they can't use the computer because "Daddy's got work to
+ do" and you don't even have a job.
+
+ /// 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/source/ap/vim/patches/7.2.322 b/source/ap/vim/patches/7.2.322
new file mode 100644
index 00000000..57f27fcd
--- /dev/null
+++ b/source/ap/vim/patches/7.2.322
@@ -0,0 +1,49 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.322
+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.2.322
+Problem: Wrong indenting in virtual replace mode with CTRL-Y below a short
+ line.
+Solution: Check for character to be NUL. (suggested by Lech Lorens)
+Files: src/edit.c
+
+
+*** ../vim-7.2.321/src/edit.c 2009-11-17 17:40:34.000000000 +0100
+--- src/edit.c 2009-12-24 15:18:23.000000000 +0100
+***************
+*** 7397,7402 ****
+--- 7397,7406 ----
+ int icase;
+ int i;
+
++ if (keytyped == NUL)
++ /* Can happen with CTRL-Y and CTRL-E on a short line. */
++ return FALSE;
++
+ #ifdef FEAT_EVAL
+ if (*curbuf->b_p_inde != NUL)
+ look = curbuf->b_p_indk; /* 'indentexpr' set: use 'indentkeys' */
+*** ../vim-7.2.321/src/version.c 2009-12-24 15:00:31.000000000 +0100
+--- src/version.c 2009-12-24 15:44:46.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 322,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+45. You buy a Captain Kirk chair with a built-in keyboard and mouse.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.2.323 b/source/ap/vim/patches/7.2.323
new file mode 100644
index 00000000..fc432461
--- /dev/null
+++ b/source/ap/vim/patches/7.2.323
@@ -0,0 +1,95 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.323 (extra)
+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.2.323 (extra)
+Problem: Balloon evaluation crashes on Win64.
+Solution: Change pointer types. (Sergey Khorev)
+Files: src/gui_w32.c
+
+
+*** ../vim-7.2.322/src/gui_w32.c 2009-01-28 21:22:20.000000000 +0100
+--- src/gui_w32.c 2009-12-24 16:06:41.000000000 +0100
+***************
+*** 212,223 ****
+ DWORD dwPlatformID;
+ } DLLVERSIONINFO;
+
+ typedef struct tagTOOLINFOA_NEW
+ {
+ UINT cbSize;
+ UINT uFlags;
+ HWND hwnd;
+! UINT uId;
+ RECT rect;
+ HINSTANCE hinst;
+ LPSTR lpszText;
+--- 212,225 ----
+ DWORD dwPlatformID;
+ } DLLVERSIONINFO;
+
++ #include <poppack.h>
++
+ typedef struct tagTOOLINFOA_NEW
+ {
+ UINT cbSize;
+ UINT uFlags;
+ HWND hwnd;
+! UINT_PTR uId;
+ RECT rect;
+ HINSTANCE hinst;
+ LPSTR lpszText;
+***************
+*** 227,241 ****
+ typedef struct tagNMTTDISPINFO_NEW
+ {
+ NMHDR hdr;
+! LPTSTR lpszText;
+ char szText[80];
+ HINSTANCE hinst;
+ UINT uFlags;
+ LPARAM lParam;
+ } NMTTDISPINFO_NEW;
+
+- #include <poppack.h>
+-
+ typedef HRESULT (WINAPI* DLLGETVERSIONPROC)(DLLVERSIONINFO *);
+ #ifndef TTM_SETMAXTIPWIDTH
+ # define TTM_SETMAXTIPWIDTH (WM_USER+24)
+--- 229,241 ----
+ typedef struct tagNMTTDISPINFO_NEW
+ {
+ NMHDR hdr;
+! LPSTR lpszText;
+ char szText[80];
+ HINSTANCE hinst;
+ UINT uFlags;
+ LPARAM lParam;
+ } NMTTDISPINFO_NEW;
+
+ typedef HRESULT (WINAPI* DLLGETVERSIONPROC)(DLLVERSIONINFO *);
+ #ifndef TTM_SETMAXTIPWIDTH
+ # define TTM_SETMAXTIPWIDTH (WM_USER+24)
+*** ../vim-7.2.322/src/version.c 2009-12-24 15:45:53.000000000 +0100
+--- src/version.c 2009-12-24 16:08:33.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 323,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+46. Your wife makes a new rule: "The computer cannot come to bed."
+
+ /// 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/source/ap/vim/patches/7.2.324 b/source/ap/vim/patches/7.2.324
new file mode 100644
index 00000000..8f61b8ac
--- /dev/null
+++ b/source/ap/vim/patches/7.2.324
@@ -0,0 +1,66 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.324
+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.2.324
+Problem: A negative column argument in setpos() may cause a crash.
+Solution: Check for invalid column number. (James Vega)
+Files: src/eval.c, src/misc2.c
+
+
+*** ../vim-7.2.323/src/eval.c 2009-12-24 15:00:31.000000000 +0100
+--- src/eval.c 2009-12-31 13:09:19.000000000 +0100
+***************
+*** 15542,15548 ****
+ {
+ if (list2fpos(&argvars[1], &pos, &fnum) == OK)
+ {
+! --pos.col;
+ if (name[0] == '.' && name[1] == NUL)
+ {
+ /* set cursor */
+--- 15542,15549 ----
+ {
+ if (list2fpos(&argvars[1], &pos, &fnum) == OK)
+ {
+! if (--pos.col < 0)
+! pos.col = 0;
+ if (name[0] == '.' && name[1] == NUL)
+ {
+ /* set cursor */
+*** ../vim-7.2.323/src/misc2.c 2009-11-25 17:15:16.000000000 +0100
+--- src/misc2.c 2009-12-31 13:12:36.000000000 +0100
+***************
+*** 528,533 ****
+--- 528,535 ----
+ #endif
+ }
+ }
++ else if (curwin->w_cursor.col < 0)
++ curwin->w_cursor.col = 0;
+
+ #ifdef FEAT_VIRTUALEDIT
+ /* If virtual editing is on, we can leave the cursor on the old position,
+*** ../vim-7.2.323/src/version.c 2009-12-24 16:11:24.000000000 +0100
+--- src/version.c 2009-12-31 13:17:25.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 324,
+ /**/
+
+--
+"Thou shalt not follow the Null Pointer, for at its end Chaos and
+Madness lie."
+
+ /// 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/source/ap/vim/patches/7.2.325 b/source/ap/vim/patches/7.2.325
new file mode 100644
index 00000000..77a6e089
--- /dev/null
+++ b/source/ap/vim/patches/7.2.325
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.325
+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.2.325
+Problem: A stray "w" in the startup vimrc file causes the edited file to be
+ replaced with an empty file. (Stone Kang).
+Solution: Do not write a buffer when it has never been loaded.
+Files: src/fileio.c
+
+
+*** ../vim-7.2.324/src/fileio.c 2009-12-02 13:32:10.000000000 +0100
+--- src/fileio.c 2009-12-31 14:08:31.000000000 +0100
+***************
+*** 2981,2986 ****
+--- 2981,2993 ----
+
+ if (fname == NULL || *fname == NUL) /* safety check */
+ return FAIL;
++ if (buf->b_ml.ml_mfp == NULL)
++ {
++ /* This can happen during startup when there is a stray "w" in the
++ * vimrc file. */
++ EMSG(_(e_emptybuf));
++ return FAIL;
++ }
+
+ /*
+ * Disallow writing from .exrc and .vimrc in current directory for
+*** ../vim-7.2.324/src/version.c 2009-12-31 13:18:05.000000000 +0100
+--- src/version.c 2009-12-31 14:52:29.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 325,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+74. Your most erotic dreams are about cybersex
+
+ /// 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/source/ap/vim/patches/7.2.326 b/source/ap/vim/patches/7.2.326
new file mode 100644
index 00000000..8e988a8d
--- /dev/null
+++ b/source/ap/vim/patches/7.2.326
@@ -0,0 +1,54 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.326
+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.2.326
+Problem: Win32: $HOME doesn't work when %HOMEPATH% is not defined.
+Solution: Use "\" for %HOMEPATH% when it is not defined.
+Files: src/misc1.c
+
+
+*** ../vim-7.2.325/src/misc1.c 2009-12-02 17:47:46.000000000 +0100
+--- src/misc1.c 2010-01-05 19:53:23.000000000 +0100
+***************
+*** 3470,3476 ****
+
+ homedrive = mch_getenv((char_u *)"HOMEDRIVE");
+ homepath = mch_getenv((char_u *)"HOMEPATH");
+! if (homedrive != NULL && homepath != NULL
+ && STRLEN(homedrive) + STRLEN(homepath) < MAXPATHL)
+ {
+ sprintf((char *)NameBuff, "%s%s", homedrive, homepath);
+--- 3470,3478 ----
+
+ homedrive = mch_getenv((char_u *)"HOMEDRIVE");
+ homepath = mch_getenv((char_u *)"HOMEPATH");
+! if (homepath == NULL || *homepath == NUL)
+! homepath = "\\";
+! if (homedrive != NULL
+ && STRLEN(homedrive) + STRLEN(homepath) < MAXPATHL)
+ {
+ sprintf((char *)NameBuff, "%s%s", homedrive, homepath);
+*** ../vim-7.2.325/src/version.c 2009-12-31 14:52:48.000000000 +0100
+--- src/version.c 2010-01-06 17:39:23.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 326,
+ /**/
+
+--
+From "know your smileys":
+ :q vi user saying, "How do I get out of this damn emacs editor?"
+
+ /// 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/source/ap/vim/patches/7.2.327 b/source/ap/vim/patches/7.2.327
new file mode 100644
index 00000000..4bfb077c
--- /dev/null
+++ b/source/ap/vim/patches/7.2.327
@@ -0,0 +1,323 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.327
+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.2.327
+Problem: Unused functions in Workshop.
+Solution: Add "#if 0" and minor cleanup. (Dominique Pelle)
+Files: src/workshop.c, src/integration.c, src/ingegration.h
+
+
+*** ../vim-7.2.326/src/workshop.c 2009-05-21 23:25:38.000000000 +0200
+--- src/workshop.c 2010-01-06 18:10:10.000000000 +0100
+***************
+*** 56,67 ****
+ static void load_window(char *, int lnum);
+ static void warp_to_pc(int);
+ #ifdef FEAT_BEVAL
+! void workshop_beval_cb(BalloonEval *, int);
+ #endif
+ static char *fixAccelText(char *);
+ static void addMenu(char *, char *, char *);
+ static char *lookupVerb(char *, int);
+- static int computeIndex(int, char_u *, int);
+ static void coloncmd(char *, Boolean);
+
+ extern Widget vimShell;
+--- 56,67 ----
+ static void load_window(char *, int lnum);
+ static void warp_to_pc(int);
+ #ifdef FEAT_BEVAL
+! void workshop_beval_cb(BalloonEval *, int);
+! static int computeIndex(int, char_u *, int);
+ #endif
+ static char *fixAccelText(char *);
+ static void addMenu(char *, char *, char *);
+ static char *lookupVerb(char *, int);
+ static void coloncmd(char *, Boolean);
+
+ extern Widget vimShell;
+***************
+*** 1624,1631 ****
+ }
+ }
+ }
+- #endif
+-
+
+ static int
+ computeIndex(
+--- 1624,1629 ----
+***************
+*** 1649,1654 ****
+--- 1647,1653 ----
+
+ return -1;
+ }
++ #endif
+
+ static void
+ addMenu(
+*** ../vim-7.2.326/src/integration.c 2008-06-24 22:27:10.000000000 +0200
+--- src/integration.c 2010-01-06 18:18:11.000000000 +0100
+***************
+*** 78,84 ****
+
+ /* Functions private to this file */
+ static void workshop_connection_closed(void);
+! static void messageFromEserve(XtPointer clientData, int *NOTUSED1, XtInputId *NOTUSED2);
+ static void workshop_disconnect(void);
+ static void workshop_sensitivity(int num, char *table);
+ static void adjust_sign_name(char *filename);
+--- 78,84 ----
+
+ /* Functions private to this file */
+ static void workshop_connection_closed(void);
+! static void messageFromEserve(XtPointer clientData, int *dum1, XtInputId *dum2);
+ static void workshop_disconnect(void);
+ static void workshop_sensitivity(int num, char *table);
+ static void adjust_sign_name(char *filename);
+***************
+*** 157,165 ****
+
+ }
+
+- /*ARGSUSED*/
+ void
+! messageFromEserve(XtPointer clientData, int *NOTUSED1, XtInputId *NOTUSED2)
+ {
+ char *cmd; /* the 1st word of the command */
+
+--- 157,166 ----
+
+ }
+
+ void
+! messageFromEserve(XtPointer clientData UNUSED,
+! int *dum1 UNUSED,
+! XtInputId *dum2 UNUSED)
+ {
+ char *cmd; /* the 1st word of the command */
+
+***************
+*** 199,205 ****
+ if (sign) {
+ sign++;
+ }
+! /* Change sign name to accomodate a different size? */
+ adjust_sign_name(sign);
+ workshop_add_mark_type(idx, color, sign);
+ }
+--- 200,206 ----
+ if (sign) {
+ sign++;
+ }
+! /* Change sign name to accommodate a different size? */
+ adjust_sign_name(sign);
+ workshop_add_mark_type(idx, color, sign);
+ }
+***************
+*** 580,586 ****
+ #endif
+
+
+! /* Change sign name to accomodate a different size:
+ * Create the filename based on the height. The filename format
+ * of multisize icons are:
+ * x.xpm : largest icon
+--- 581,587 ----
+ #endif
+
+
+! /* Change sign name to accommodate a different size:
+ * Create the filename based on the height. The filename format
+ * of multisize icons are:
+ * x.xpm : largest icon
+***************
+*** 614,619 ****
+--- 615,621 ----
+ strcpy(s, ".xpm");
+ }
+
++ #if 0
+ /* Were we invoked by WorkShop? This function can be used early during startup
+ if you want to do things differently if the editor is started standalone
+ or in WorkShop mode. For example, in standalone mode you may not want to
+***************
+*** 627,632 ****
+--- 629,635 ----
+ }
+ return result;
+ }
++ #endif
+
+ /* Connect back to eserve */
+ void workshop_connect(XtAppContext context)
+***************
+*** 750,755 ****
+--- 753,759 ----
+ * Utility functions
+ */
+
++ #if 0
+ /* Set icon for the window */
+ void
+ workshop_set_icon(Display *display, Widget shell, char **xpmdata,
+***************
+*** 793,798 ****
+--- 797,803 ----
+ }
+ XtFree((char *)xpmAttributes.colorsymbols);
+ }
++ #endif
+
+ /* Minimize and maximize shells. From libutil's shell.cc. */
+
+***************
+*** 927,933 ****
+ return success;
+ }
+
+!
+ Boolean workshop_get_rows_cols(int *rows, int *cols)
+ {
+ static int r = 0;
+--- 932,938 ----
+ return success;
+ }
+
+! #if 0
+ Boolean workshop_get_rows_cols(int *rows, int *cols)
+ {
+ static int r = 0;
+***************
+*** 958,963 ****
+--- 963,969 ----
+ }
+ return success;
+ }
++ #endif
+
+ /*
+ * Toolbar code
+***************
+*** 1043,1054 ****
+ }
+
+
+!
+ /*
+ * Send information to eserve on certain editor events
+ * You must make sure these are called when necessary
+ */
+-
+ void workshop_file_closed(char *filename)
+ {
+ char buffer[2*MAXPATHLEN];
+--- 1049,1059 ----
+ }
+
+
+! #if 0
+ /*
+ * Send information to eserve on certain editor events
+ * You must make sure these are called when necessary
+ */
+ void workshop_file_closed(char *filename)
+ {
+ char buffer[2*MAXPATHLEN];
+***************
+*** 1056,1061 ****
+--- 1061,1067 ----
+ NOCATGETS("deletedFile %s\n"), filename);
+ write(sd, buffer, strlen(buffer));
+ }
++ #endif
+
+ void workshop_file_closed_lineno(char *filename, int lineno)
+ {
+***************
+*** 1086,1106 ****
+ workshop_moved_marks(filename);
+ }
+
+! void workshop_move_mark(char *filename, int markId, int newLineno)
+ {
+ char buffer[2*MAXPATHLEN];
+ vim_snprintf(buffer, sizeof(buffer),
+! NOCATGETS("moveMark %s %d %d\n"), filename, markId, newLineno);
+ write(sd, buffer, strlen(buffer));
+ }
+
+! void workshop_file_modified(char *filename)
+ {
+ char buffer[2*MAXPATHLEN];
+ vim_snprintf(buffer, sizeof(buffer),
+! NOCATGETS("modifiedFile %s\n"), filename);
+ write(sd, buffer, strlen(buffer));
+ }
+
+ void workshop_frame_moved(int new_x, int new_y, int new_w, int new_h)
+ {
+--- 1092,1114 ----
+ workshop_moved_marks(filename);
+ }
+
+! #if 0
+! void workshop_file_modified(char *filename)
+ {
+ char buffer[2*MAXPATHLEN];
+ vim_snprintf(buffer, sizeof(buffer),
+! NOCATGETS("modifiedFile %s\n"), filename);
+ write(sd, buffer, strlen(buffer));
+ }
+
+! void workshop_move_mark(char *filename, int markId, int newLineno)
+ {
+ char buffer[2*MAXPATHLEN];
+ vim_snprintf(buffer, sizeof(buffer),
+! NOCATGETS("moveMark %s %d %d\n"), filename, markId, newLineno);
+ write(sd, buffer, strlen(buffer));
+ }
++ #endif
+
+ void workshop_frame_moved(int new_x, int new_y, int new_w, int new_h)
+ {
+***************
+*** 1179,1188 ****
+--- 1187,1198 ----
+ }
+
+ /* Send a message to eserve */
++ #if defined(NOHANDS_SUPPORT_FUNCTIONS) || defined(FEAT_BEVAL)
+ void workshop_send_message(char *buf)
+ {
+ write(sd, buf, strlen(buf));
+ }
++ #endif
+
+ /* Some methods, like currentFile, cursorPos, etc. are missing here.
+ * But it looks like these are used for NoHands testing only so we
+*** ../vim-7.2.326/src/version.c 2010-01-06 17:46:03.000000000 +0100
+--- src/version.c 2010-01-06 18:20:41.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 327,
+ /**/
+
+--
+From "know your smileys":
+ (:-# Said something he shouldn't have
+
+ /// 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/source/ap/vim/patches/7.2.328 b/source/ap/vim/patches/7.2.328
new file mode 100644
index 00000000..f547fb94
--- /dev/null
+++ b/source/ap/vim/patches/7.2.328
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.328
+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.2.328
+Problem: has("win64") does not return 1 on 64 bit MS-Windows version.
+Solution: Also check for _WIN64 besides WIN64.
+Files: src/eval.c
+
+
+*** ../vim-7.2.327/src/eval.c 2009-12-31 13:18:05.000000000 +0100
+--- src/eval.c 2010-01-06 16:28:23.000000000 +0100
+***************
+*** 11453,11459 ****
+ #if defined(UNIX) && (defined(__CYGWIN32__) || defined(__CYGWIN__))
+ "win32unix",
+ #endif
+! #ifdef WIN64
+ "win64",
+ #endif
+ #ifdef EBCDIC
+--- 11453,11459 ----
+ #if defined(UNIX) && (defined(__CYGWIN32__) || defined(__CYGWIN__))
+ "win32unix",
+ #endif
+! #if defined(WIN64) || defined(_WIN64)
+ "win64",
+ #endif
+ #ifdef EBCDIC
+*** ../vim-7.2.327/src/version.c 2010-01-06 18:24:53.000000000 +0100
+--- src/version.c 2010-01-12 12:10:06.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 328,
+ /**/
+
+--
+From "know your smileys":
+ :.-( Crying
+
+ /// 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/source/ap/vim/patches/7.2.329 b/source/ap/vim/patches/7.2.329
new file mode 100644
index 00000000..f92bc655
--- /dev/null
+++ b/source/ap/vim/patches/7.2.329
@@ -0,0 +1,48 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.329
+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.2.329
+Problem: "g_" doesn't position cursor correctly when in Visual mode and
+ 'selection' is "exclusive". (Ben Fritz)
+Solution: Call adjust_for_sel().
+Files: src/normal.c
+
+
+*** ../vim-7.2.328/src/normal.c 2009-12-24 15:00:31.000000000 +0100
+--- src/normal.c 2010-01-09 15:19:47.000000000 +0100
+***************
+*** 7873,7878 ****
+--- 7873,7881 ----
+ && vim_iswhite(ptr[curwin->w_cursor.col]))
+ --curwin->w_cursor.col;
+ curwin->w_set_curswant = TRUE;
++ #ifdef FEAT_VISUAL
++ adjust_for_sel(cap);
++ #endif
+ }
+ break;
+
+*** ../vim-7.2.328/src/version.c 2010-01-12 12:48:40.000000000 +0100
+--- src/version.c 2010-01-12 15:41:13.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 329,
+ /**/
+
+--
+From "know your smileys":
+ |-( Contact lenses, but has lost them
+
+ /// 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/source/ap/vim/patches/7.2.330 b/source/ap/vim/patches/7.2.330
new file mode 100644
index 00000000..0d9c3f1e
--- /dev/null
+++ b/source/ap/vim/patches/7.2.330
@@ -0,0 +1,1531 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.330
+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.2.330
+Problem: Tables for Unicode case operators are outdated.
+Solution: Add a Vim script for generating the tables. Include tables for
+ Unicode 5.2.
+Files: runtime/tools/README.txt, runtime/tools/unicode.vim, src/mbyte.c
+
+
+*** ../vim-7.2.329/runtime/tools/README.txt 2005-12-02 01:47:43.000000000 +0100
+--- runtime/tools/README.txt 2010-01-12 19:43:13.000000000 +0100
+***************
+*** 32,35 ****
+--- 32,37 ----
+ xcmdsrv_client.c: Example for a client program that communicates with a Vim
+ server through the X-Windows interface.
+
++ unicode.vim Vim script to generate tables for src/mbyte.c.
++
+ [xxd (and tee for OS/2) can be found in the src directory]
+*** ../vim-7.2.329/runtime/tools/unicode.vim 2010-01-12 19:47:33.000000000 +0100
+--- runtime/tools/unicode.vim 2010-01-12 19:42:14.000000000 +0100
+***************
+*** 0 ****
+--- 1,280 ----
++ " Script to extract tables from Unicode .txt files, to be used in src/mbyte.c.
++ " The format of the UnicodeData.txt file is explained here:
++ " http://www.unicode.org/Public/5.1.0/ucd/UCD.html
++ " For the other files see the header.
++ "
++ " Usage: Vim -S <this-file>
++ "
++ " Author: Bram Moolenaar
++ " Last Update: 2010 Jan 12
++
++ " Parse lines of UnicodeData.txt. Creates a list of lists in s:dataprops.
++ func! ParseDataToProps()
++ let s:dataprops = []
++ let lnum = 1
++ while lnum <= line('$')
++ let l = split(getline(lnum), '\s*;\s*', 1)
++ if len(l) != 15
++ echoerr 'Found ' . len(l) . ' items in line ' . lnum . ', expected 15'
++ return
++ endif
++ call add(s:dataprops, l)
++ let lnum += 1
++ endwhile
++ endfunc
++
++ " Parse lines of CaseFolding.txt. Creates a list of lists in s:foldprops.
++ func! ParseFoldProps()
++ let s:foldprops = []
++ let lnum = 1
++ while lnum <= line('$')
++ let line = getline(lnum)
++ if line !~ '^#' && line !~ '^\s*$'
++ let l = split(line, '\s*;\s*', 1)
++ if len(l) != 4
++ echoerr 'Found ' . len(l) . ' items in line ' . lnum . ', expected 4'
++ return
++ endif
++ call add(s:foldprops, l)
++ endif
++ let lnum += 1
++ endwhile
++ endfunc
++
++ " Parse lines of EastAsianWidth.txt. Creates a list of lists in s:widthprops.
++ func! ParseWidthProps()
++ let s:widthprops = []
++ let lnum = 1
++ while lnum <= line('$')
++ let line = getline(lnum)
++ if line !~ '^#' && line !~ '^\s*$'
++ let l = split(line, '\s*;\s*', 1)
++ if len(l) != 2
++ echoerr 'Found ' . len(l) . ' items in line ' . lnum . ', expected 2'
++ return
++ endif
++ call add(s:widthprops, l)
++ endif
++ let lnum += 1
++ endwhile
++ endfunc
++
++ " Build the toLower or toUpper table in a new buffer.
++ " Uses s:dataprops.
++ func! BuildCaseTable(name, index)
++ let start = -1
++ let end = -1
++ let step = 0
++ let add = -1
++ let ranges = []
++ for p in s:dataprops
++ if p[a:index] != ''
++ let n = ('0x' . p[0]) + 0
++ let nl = ('0x' . p[a:index]) + 0
++ if start >= 0 && add == nl - n && (step == 0 || n - end == step)
++ " continue with same range.
++ let step = n - end
++ let end = n
++ else
++ if start >= 0
++ " produce previous range
++ call Range(ranges, start, end, step, add)
++ endif
++ let start = n
++ let end = n
++ let step = 0
++ let add = nl - n
++ endif
++ endif
++ endfor
++ if start >= 0
++ call Range(ranges, start, end, step, add)
++ endif
++
++ " New buffer to put the result in.
++ new
++ exe "file to" . a:name
++ call setline(1, "static convertStruct to" . a:name . "[] =")
++ call setline(2, "{")
++ call append('$', ranges)
++ call setline('$', getline('$')[:-2]) " remove last comma
++ call setline(line('$') + 1, "};")
++ wincmd p
++ endfunc
++
++ " Build the foldCase table in a new buffer.
++ " Uses s:foldprops.
++ func! BuildFoldTable()
++ let start = -1
++ let end = -1
++ let step = 0
++ let add = -1
++ let ranges = []
++ for p in s:foldprops
++ if p[1] == 'C' || p[1] == 'S'
++ let n = ('0x' . p[0]) + 0
++ let nl = ('0x' . p[2]) + 0
++ if start >= 0 && add == nl - n && (step == 0 || n - end == step)
++ " continue with same range.
++ let step = n - end
++ let end = n
++ else
++ if start >= 0
++ " produce previous range
++ call Range(ranges, start, end, step, add)
++ endif
++ let start = n
++ let end = n
++ let step = 0
++ let add = nl - n
++ endif
++ endif
++ endfor
++ if start >= 0
++ call Range(ranges, start, end, step, add)
++ endif
++
++ " New buffer to put the result in.
++ new
++ file foldCase
++ call setline(1, "static convertStruct foldCase[] =")
++ call setline(2, "{")
++ call append('$', ranges)
++ call setline('$', getline('$')[:-2]) " remove last comma
++ call setline(line('$') + 1, "};")
++ wincmd p
++ endfunc
++
++ func! Range(ranges, start, end, step, add)
++ let s = printf("\t{0x%x,0x%x,%d,%d},", a:start, a:end, a:step == 0 ? -1 : a:step, a:add)
++ call add(a:ranges, s)
++ endfunc
++
++ " Build the combining table.
++ " Uses s:dataprops.
++ func! BuildCombiningTable()
++ let start = -1
++ let end = -1
++ let ranges = []
++ for p in s:dataprops
++ if p[2] == 'Mn' || p[2] == 'Mc' || p[2] == 'Me'
++ let n = ('0x' . p[0]) + 0
++ if start >= 0 && end + 1 == n
++ " continue with same range.
++ let end = n
++ else
++ if start >= 0
++ " produce previous range
++ call add(ranges, printf("\t{0x%04x, 0x%04x},", start, end))
++ endif
++ let start = n
++ let end = n
++ endif
++ endif
++ endfor
++ if start >= 0
++ call add(ranges, printf("\t{0x%04x, 0x%04x},", start, end))
++ endif
++
++ " New buffer to put the result in.
++ new
++ file combining
++ call setline(1, " static struct interval combining[] =")
++ call setline(2, " {")
++ call append('$', ranges)
++ call setline('$', getline('$')[:-2]) " remove last comma
++ call setline(line('$') + 1, " };")
++ wincmd p
++ endfunc
++
++ " Build the ambiguous table in a new buffer.
++ " Uses s:widthprops and s:dataprops.
++ func! BuildAmbiguousTable()
++ let start = -1
++ let end = -1
++ let ranges = []
++ let dataidx = 0
++ for p in s:widthprops
++ if p[1][0] == 'A'
++ let n = ('0x' . p[0]) + 0
++ " Find this char in the data table.
++ while 1
++ let dn = ('0x' . s:dataprops[dataidx][0]) + 0
++ if dn >= n
++ break
++ endif
++ let dataidx += 1
++ endwhile
++ if dn != n
++ echoerr "Cannot find character " . n . " in data table"
++ endif
++ " Only use the char when it's not a composing char.
++ let dp = s:dataprops[dataidx]
++ if dp[2] != 'Mn' && dp[2] != 'Mc' && dp[2] != 'Me'
++ if start >= 0 && end + 1 == n
++ " continue with same range.
++ let end = n
++ else
++ if start >= 0
++ " produce previous range
++ call add(ranges, printf("\t{0x%04x, 0x%04x},", start, end))
++ endif
++ let start = n
++ if p[0] =~ '\.\.'
++ let end = ('0x' . substitute(p[0], '.*\.\.', '', '')) + 0
++ else
++ let end = n
++ endif
++ endif
++ endif
++ endif
++ endfor
++ if start >= 0
++ call add(ranges, printf("\t{0x%04x, 0x%04x},", start, end))
++ endif
++
++ " New buffer to put the result in.
++ new
++ file ambiguous
++ call setline(1, " static struct interval ambiguous[] =")
++ call setline(2, " {")
++ call append('$', ranges)
++ call setline('$', getline('$')[:-2]) " remove last comma
++ call setline(line('$') + 1, " };")
++ wincmd p
++ endfunc
++
++
++
++ " Edit the Unicode text file. Requires the netrw plugin.
++ edit http://unicode.org/Public/UNIDATA/UnicodeData.txt
++
++ " Parse each line, create a list of lists.
++ call ParseDataToProps()
++
++ " Build the toLower table.
++ call BuildCaseTable("Lower", 13)
++
++ " Build the toUpper table.
++ call BuildCaseTable("Upper", 12)
++
++ " Build the ranges of composing chars.
++ call BuildCombiningTable()
++
++ " Edit the case folding text file. Requires the netrw plugin.
++ edit http://www.unicode.org/Public/UNIDATA/CaseFolding.txt
++
++ " Parse each line, create a list of lists.
++ call ParseFoldProps()
++
++ " Build the foldCase table.
++ call BuildFoldTable()
++
++ " Edit the width text file. Requires the netrw plugin.
++ edit http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt
++
++ " Parse each line, create a list of lists.
++ call ParseWidthProps()
++
++ " Build the ambiguous table.
++ call BuildAmbiguousTable()
+*** ../vim-7.2.329/src/mbyte.c 2009-12-02 15:03:24.000000000 +0100
+--- src/mbyte.c 2010-01-12 19:35:49.000000000 +0100
+***************
+*** 26,32 ****
+ * Recognizing bytes is easy: 0xxx.xxxx is a single-byte
+ * char, 10xx.xxxx is a trailing byte, 11xx.xxxx is a leading
+ * byte of a multi-byte character.
+! * To make things complicated, up to two composing characters
+ * are allowed. These are drawn on top of the first char.
+ * For most editing the sequence of bytes with composing
+ * characters included is considered to be one character.
+--- 26,32 ----
+ * Recognizing bytes is easy: 0xxx.xxxx is a single-byte
+ * char, 10xx.xxxx is a trailing byte, 11xx.xxxx is a leading
+ * byte of a multi-byte character.
+! * To make things complicated, up to six composing characters
+ * are allowed. These are drawn on top of the first char.
+ * For most editing the sequence of bytes with composing
+ * characters included is considered to be one character.
+***************
+*** 1153,1160 ****
+
+ struct interval
+ {
+! unsigned short first;
+! unsigned short last;
+ };
+ static int intable __ARGS((struct interval *table, size_t size, int c));
+
+--- 1153,1160 ----
+
+ struct interval
+ {
+! long first;
+! long last;
+ };
+ static int intable __ARGS((struct interval *table, size_t size, int c));
+
+***************
+*** 1200,1261 ****
+ utf_char2cells(c)
+ int c;
+ {
+! /* sorted list of non-overlapping intervals of East Asian Ambiguous
+! * characters, generated with:
+! * "uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c" */
+! static struct interval ambiguous[] = {
+! {0x00A1, 0x00A1}, {0x00A4, 0x00A4}, {0x00A7, 0x00A8},
+! {0x00AA, 0x00AA}, {0x00AE, 0x00AE}, {0x00B0, 0x00B4},
+! {0x00B6, 0x00BA}, {0x00BC, 0x00BF}, {0x00C6, 0x00C6},
+! {0x00D0, 0x00D0}, {0x00D7, 0x00D8}, {0x00DE, 0x00E1},
+! {0x00E6, 0x00E6}, {0x00E8, 0x00EA}, {0x00EC, 0x00ED},
+! {0x00F0, 0x00F0}, {0x00F2, 0x00F3}, {0x00F7, 0x00FA},
+! {0x00FC, 0x00FC}, {0x00FE, 0x00FE}, {0x0101, 0x0101},
+! {0x0111, 0x0111}, {0x0113, 0x0113}, {0x011B, 0x011B},
+! {0x0126, 0x0127}, {0x012B, 0x012B}, {0x0131, 0x0133},
+! {0x0138, 0x0138}, {0x013F, 0x0142}, {0x0144, 0x0144},
+! {0x0148, 0x014B}, {0x014D, 0x014D}, {0x0152, 0x0153},
+! {0x0166, 0x0167}, {0x016B, 0x016B}, {0x01CE, 0x01CE},
+! {0x01D0, 0x01D0}, {0x01D2, 0x01D2}, {0x01D4, 0x01D4},
+! {0x01D6, 0x01D6}, {0x01D8, 0x01D8}, {0x01DA, 0x01DA},
+! {0x01DC, 0x01DC}, {0x0251, 0x0251}, {0x0261, 0x0261},
+! {0x02C4, 0x02C4}, {0x02C7, 0x02C7}, {0x02C9, 0x02CB},
+! {0x02CD, 0x02CD}, {0x02D0, 0x02D0}, {0x02D8, 0x02DB},
+! {0x02DD, 0x02DD}, {0x02DF, 0x02DF}, {0x0391, 0x03A1},
+! {0x03A3, 0x03A9}, {0x03B1, 0x03C1}, {0x03C3, 0x03C9},
+! {0x0401, 0x0401}, {0x0410, 0x044F}, {0x0451, 0x0451},
+! {0x2010, 0x2010}, {0x2013, 0x2016}, {0x2018, 0x2019},
+! {0x201C, 0x201D}, {0x2020, 0x2022}, {0x2024, 0x2027},
+! {0x2030, 0x2030}, {0x2032, 0x2033}, {0x2035, 0x2035},
+! {0x203B, 0x203B}, {0x203E, 0x203E}, {0x2074, 0x2074},
+! {0x207F, 0x207F}, {0x2081, 0x2084}, {0x20AC, 0x20AC},
+! {0x2103, 0x2103}, {0x2105, 0x2105}, {0x2109, 0x2109},
+! {0x2113, 0x2113}, {0x2116, 0x2116}, {0x2121, 0x2122},
+! {0x2126, 0x2126}, {0x212B, 0x212B}, {0x2153, 0x2154},
+! {0x215B, 0x215E}, {0x2160, 0x216B}, {0x2170, 0x2179},
+! {0x2190, 0x2199}, {0x21B8, 0x21B9}, {0x21D2, 0x21D2},
+! {0x21D4, 0x21D4}, {0x21E7, 0x21E7}, {0x2200, 0x2200},
+! {0x2202, 0x2203}, {0x2207, 0x2208}, {0x220B, 0x220B},
+! {0x220F, 0x220F}, {0x2211, 0x2211}, {0x2215, 0x2215},
+! {0x221A, 0x221A}, {0x221D, 0x2220}, {0x2223, 0x2223},
+! {0x2225, 0x2225}, {0x2227, 0x222C}, {0x222E, 0x222E},
+! {0x2234, 0x2237}, {0x223C, 0x223D}, {0x2248, 0x2248},
+! {0x224C, 0x224C}, {0x2252, 0x2252}, {0x2260, 0x2261},
+! {0x2264, 0x2267}, {0x226A, 0x226B}, {0x226E, 0x226F},
+! {0x2282, 0x2283}, {0x2286, 0x2287}, {0x2295, 0x2295},
+! {0x2299, 0x2299}, {0x22A5, 0x22A5}, {0x22BF, 0x22BF},
+! {0x2312, 0x2312}, {0x2460, 0x24E9}, {0x24EB, 0x254B},
+! {0x2550, 0x2573}, {0x2580, 0x258F}, {0x2592, 0x2595},
+! {0x25A0, 0x25A1}, {0x25A3, 0x25A9}, {0x25B2, 0x25B3},
+! {0x25B6, 0x25B7}, {0x25BC, 0x25BD}, {0x25C0, 0x25C1},
+! {0x25C6, 0x25C8}, {0x25CB, 0x25CB}, {0x25CE, 0x25D1},
+! {0x25E2, 0x25E5}, {0x25EF, 0x25EF}, {0x2605, 0x2606},
+! {0x2609, 0x2609}, {0x260E, 0x260F}, {0x2614, 0x2615},
+! {0x261C, 0x261C}, {0x261E, 0x261E}, {0x2640, 0x2640},
+! {0x2642, 0x2642}, {0x2660, 0x2661}, {0x2663, 0x2665},
+! {0x2667, 0x266A}, {0x266C, 0x266D}, {0x266F, 0x266F},
+! {0x273D, 0x273D}, {0x2776, 0x277F}, {0xE000, 0xF8FF},
+! {0xFFFD, 0xFFFD}, /* {0xF0000, 0xFFFFD}, {0x100000, 0x10FFFD} */
+ };
+
+ if (c >= 0x100)
+--- 1200,1390 ----
+ utf_char2cells(c)
+ int c;
+ {
+! /* Sorted list of non-overlapping intervals of East Asian Ambiguous
+! * characters, generated with ../runtime/tools/unicode.vim. */
+! static struct interval ambiguous[] =
+! {
+! {0x00a1, 0x00a1},
+! {0x00a4, 0x00a4},
+! {0x00a7, 0x00a8},
+! {0x00aa, 0x00aa},
+! {0x00ad, 0x00ae},
+! {0x00b0, 0x00b4},
+! {0x00b6, 0x00ba},
+! {0x00bc, 0x00bf},
+! {0x00c6, 0x00c6},
+! {0x00d0, 0x00d0},
+! {0x00d7, 0x00d8},
+! {0x00de, 0x00e1},
+! {0x00e6, 0x00e6},
+! {0x00e8, 0x00ea},
+! {0x00ec, 0x00ed},
+! {0x00f0, 0x00f0},
+! {0x00f2, 0x00f3},
+! {0x00f7, 0x00fa},
+! {0x00fc, 0x00fc},
+! {0x00fe, 0x00fe},
+! {0x0101, 0x0101},
+! {0x0111, 0x0111},
+! {0x0113, 0x0113},
+! {0x011b, 0x011b},
+! {0x0126, 0x0127},
+! {0x012b, 0x012b},
+! {0x0131, 0x0133},
+! {0x0138, 0x0138},
+! {0x013f, 0x0142},
+! {0x0144, 0x0144},
+! {0x0148, 0x014b},
+! {0x014d, 0x014d},
+! {0x0152, 0x0153},
+! {0x0166, 0x0167},
+! {0x016b, 0x016b},
+! {0x01ce, 0x01ce},
+! {0x01d0, 0x01d0},
+! {0x01d2, 0x01d2},
+! {0x01d4, 0x01d4},
+! {0x01d6, 0x01d6},
+! {0x01d8, 0x01d8},
+! {0x01da, 0x01da},
+! {0x01dc, 0x01dc},
+! {0x0251, 0x0251},
+! {0x0261, 0x0261},
+! {0x02c4, 0x02c4},
+! {0x02c7, 0x02c7},
+! {0x02c9, 0x02cb},
+! {0x02cd, 0x02cd},
+! {0x02d0, 0x02d0},
+! {0x02d8, 0x02db},
+! {0x02dd, 0x02dd},
+! {0x02df, 0x02df},
+! {0x0391, 0x03a1},
+! {0x03a3, 0x03a9},
+! {0x03b1, 0x03c1},
+! {0x03c3, 0x03c9},
+! {0x0401, 0x0401},
+! {0x0410, 0x044f},
+! {0x0451, 0x0451},
+! {0x2010, 0x2010},
+! {0x2013, 0x2016},
+! {0x2018, 0x2019},
+! {0x201c, 0x201d},
+! {0x2020, 0x2022},
+! {0x2024, 0x2027},
+! {0x2030, 0x2030},
+! {0x2032, 0x2033},
+! {0x2035, 0x2035},
+! {0x203b, 0x203b},
+! {0x203e, 0x203e},
+! {0x2074, 0x2074},
+! {0x207f, 0x207f},
+! {0x2081, 0x2084},
+! {0x20ac, 0x20ac},
+! {0x2103, 0x2103},
+! {0x2105, 0x2105},
+! {0x2109, 0x2109},
+! {0x2113, 0x2113},
+! {0x2116, 0x2116},
+! {0x2121, 0x2122},
+! {0x2126, 0x2126},
+! {0x212b, 0x212b},
+! {0x2153, 0x2154},
+! {0x215b, 0x215e},
+! {0x2160, 0x216b},
+! {0x2170, 0x2179},
+! {0x2189, 0x2189},
+! {0x2190, 0x2199},
+! {0x21b8, 0x21b9},
+! {0x21d2, 0x21d2},
+! {0x21d4, 0x21d4},
+! {0x21e7, 0x21e7},
+! {0x2200, 0x2200},
+! {0x2202, 0x2203},
+! {0x2207, 0x2208},
+! {0x220b, 0x220b},
+! {0x220f, 0x220f},
+! {0x2211, 0x2211},
+! {0x2215, 0x2215},
+! {0x221a, 0x221a},
+! {0x221d, 0x2220},
+! {0x2223, 0x2223},
+! {0x2225, 0x2225},
+! {0x2227, 0x222c},
+! {0x222e, 0x222e},
+! {0x2234, 0x2237},
+! {0x223c, 0x223d},
+! {0x2248, 0x2248},
+! {0x224c, 0x224c},
+! {0x2252, 0x2252},
+! {0x2260, 0x2261},
+! {0x2264, 0x2267},
+! {0x226a, 0x226b},
+! {0x226e, 0x226f},
+! {0x2282, 0x2283},
+! {0x2286, 0x2287},
+! {0x2295, 0x2295},
+! {0x2299, 0x2299},
+! {0x22a5, 0x22a5},
+! {0x22bf, 0x22bf},
+! {0x2312, 0x2312},
+! {0x2460, 0x24e9},
+! {0x24eb, 0x254b},
+! {0x2550, 0x2573},
+! {0x2580, 0x258f},
+! {0x2592, 0x2595},
+! {0x25a0, 0x25a1},
+! {0x25a3, 0x25a9},
+! {0x25b2, 0x25b3},
+! {0x25b6, 0x25b7},
+! {0x25bc, 0x25bd},
+! {0x25c0, 0x25c1},
+! {0x25c6, 0x25c8},
+! {0x25cb, 0x25cb},
+! {0x25ce, 0x25d1},
+! {0x25e2, 0x25e5},
+! {0x25ef, 0x25ef},
+! {0x2605, 0x2606},
+! {0x2609, 0x2609},
+! {0x260e, 0x260f},
+! {0x2614, 0x2615},
+! {0x261c, 0x261c},
+! {0x261e, 0x261e},
+! {0x2640, 0x2640},
+! {0x2642, 0x2642},
+! {0x2660, 0x2661},
+! {0x2663, 0x2665},
+! {0x2667, 0x266a},
+! {0x266c, 0x266d},
+! {0x266f, 0x266f},
+! {0x269e, 0x269f},
+! {0x26be, 0x26bf},
+! {0x26c4, 0x26cd},
+! {0x26cf, 0x26e1},
+! {0x26e3, 0x26e3},
+! {0x26e8, 0x26ff},
+! {0x273d, 0x273d},
+! {0x2757, 0x2757},
+! {0x2776, 0x277f},
+! {0x2b55, 0x2b59},
+! {0x3248, 0x324f},
+! {0xe000, 0xf8ff},
+! {0xfffd, 0xfffd},
+! {0x1f100, 0x1f10a},
+! {0x1f110, 0x1f12d},
+! {0x1f131, 0x1f131},
+! {0x1f13d, 0x1f13d},
+! {0x1f13f, 0x1f13f},
+! {0x1f142, 0x1f142},
+! {0x1f146, 0x1f146},
+! {0x1f14a, 0x1f14e},
+! {0x1f157, 0x1f157},
+! {0x1f15f, 0x1f15f},
+! {0x1f179, 0x1f179},
+! {0x1f17b, 0x1f17c},
+! {0x1f17f, 0x1f17f},
+! {0x1f18a, 0x1f18d},
+! {0x1f190, 0x1f190},
+! {0xf0000, 0xffffd},
+! {0x100000, 0x10fffd}
+ };
+
+ if (c >= 0x100)
+***************
+*** 1807,1813 ****
+ return 1;
+
+ /*
+! * Check for composing characters. We can handle only the first two, but
+ * skip all of them (otherwise the cursor would get stuck).
+ */
+ #ifdef FEAT_ARABIC
+--- 1936,1942 ----
+ return 1;
+
+ /*
+! * Check for composing characters. We can handle only the first six, but
+ * skip all of them (otherwise the cursor would get stuck).
+ */
+ #ifdef FEAT_ARABIC
+***************
+*** 1855,1861 ****
+ return 1;
+
+ /*
+! * Check for composing characters. We can handle only the first two, but
+ * skip all of them (otherwise the cursor would get stuck).
+ */
+ #ifdef FEAT_ARABIC
+--- 1984,1990 ----
+ return 1;
+
+ /*
+! * Check for composing characters. We can handle only the first six, but
+ * skip all of them (otherwise the cursor would get stuck).
+ */
+ #ifdef FEAT_ARABIC
+***************
+*** 1973,2010 ****
+ utf_iscomposing(c)
+ int c;
+ {
+! /* sorted list of non-overlapping intervals */
+ static struct interval combining[] =
+ {
+! {0x0300, 0x034f}, {0x0360, 0x036f}, {0x0483, 0x0486}, {0x0488, 0x0489},
+! {0x0591, 0x05a1}, {0x05a3, 0x05b9}, {0x05bb, 0x05bd}, {0x05bf, 0x05bf},
+! {0x05c1, 0x05c2}, {0x05c4, 0x05c4}, {0x0610, 0x0615}, {0x064b, 0x0658},
+! {0x0670, 0x0670}, {0x06d6, 0x06dc}, {0x06de, 0x06e4}, {0x06e7, 0x06e8},
+! {0x06ea, 0x06ed}, {0x0711, 0x0711}, {0x0730, 0x074a}, {0x07a6, 0x07b0},
+! {0x0901, 0x0903}, {0x093c, 0x093c}, {0x093e, 0x094d}, {0x0951, 0x0954},
+! {0x0962, 0x0963}, {0x0981, 0x0983}, {0x09bc, 0x09bc}, {0x09be, 0x09c4},
+! {0x09c7, 0x09c8}, {0x09cb, 0x09cd}, {0x09d7, 0x09d7}, {0x09e2, 0x09e3},
+! {0x0a01, 0x0a03}, {0x0a3c, 0x0a3c}, {0x0a3e, 0x0a42}, {0x0a47, 0x0a48},
+! {0x0a4b, 0x0a4d}, {0x0a70, 0x0a71}, {0x0a81, 0x0a83}, {0x0abc, 0x0abc},
+! {0x0abe, 0x0ac5}, {0x0ac7, 0x0ac9}, {0x0acb, 0x0acd}, {0x0ae2, 0x0ae3},
+! {0x0b01, 0x0b03}, {0x0b3c, 0x0b3c}, {0x0b3e, 0x0b43}, {0x0b47, 0x0b48},
+! {0x0b4b, 0x0b4d}, {0x0b56, 0x0b57}, {0x0b82, 0x0b82}, {0x0bbe, 0x0bc2},
+! {0x0bc6, 0x0bc8}, {0x0bca, 0x0bcd}, {0x0bd7, 0x0bd7}, {0x0c01, 0x0c03},
+! {0x0c3e, 0x0c44}, {0x0c46, 0x0c48}, {0x0c4a, 0x0c4d}, {0x0c55, 0x0c56},
+! {0x0c82, 0x0c83}, {0x0cbc, 0x0cbc}, {0x0cbe, 0x0cc4}, {0x0cc6, 0x0cc8},
+! {0x0cca, 0x0ccd}, {0x0cd5, 0x0cd6}, {0x0d02, 0x0d03}, {0x0d3e, 0x0d43},
+! {0x0d46, 0x0d48}, {0x0d4a, 0x0d4d}, {0x0d57, 0x0d57}, {0x0d82, 0x0d83},
+! {0x0dca, 0x0dca}, {0x0dcf, 0x0dd4}, {0x0dd6, 0x0dd6}, {0x0dd8, 0x0ddf},
+! {0x0df2, 0x0df3}, {0x0e31, 0x0e31}, {0x0e34, 0x0e3a}, {0x0e47, 0x0e4e},
+! {0x0eb1, 0x0eb1}, {0x0eb4, 0x0eb9}, {0x0ebb, 0x0ebc}, {0x0ec8, 0x0ecd},
+! {0x0f18, 0x0f19}, {0x0f35, 0x0f35}, {0x0f37, 0x0f37}, {0x0f39, 0x0f39},
+! {0x0f3e, 0x0f3f}, {0x0f71, 0x0f84}, {0x0f86, 0x0f87}, {0x0f90, 0x0f97},
+! {0x0f99, 0x0fbc}, {0x0fc6, 0x0fc6}, {0x102c, 0x1032}, {0x1036, 0x1039},
+! {0x1056, 0x1059}, {0x1712, 0x1714}, {0x1732, 0x1734}, {0x1752, 0x1753},
+! {0x1772, 0x1773}, {0x17b6, 0x17d3}, {0x17dd, 0x17dd}, {0x180b, 0x180d},
+! {0x18a9, 0x18a9}, {0x1920, 0x192b}, {0x1930, 0x193b}, {0x20d0, 0x20ea},
+! {0x302a, 0x302f}, {0x3099, 0x309a}, {0xfb1e, 0xfb1e}, {0xfe00, 0xfe0f},
+! {0xfe20, 0xfe23},
+ };
+
+ return intable(combining, sizeof(combining), c);
+--- 2102,2299 ----
+ utf_iscomposing(c)
+ int c;
+ {
+! /* Sorted list of non-overlapping intervals.
+! * Generated by ../runtime/tools/unicode.vim. */
+ static struct interval combining[] =
+ {
+! {0x0300, 0x036f},
+! {0x0483, 0x0489},
+! {0x0591, 0x05bd},
+! {0x05bf, 0x05bf},
+! {0x05c1, 0x05c2},
+! {0x05c4, 0x05c5},
+! {0x05c7, 0x05c7},
+! {0x0610, 0x061a},
+! {0x064b, 0x065e},
+! {0x0670, 0x0670},
+! {0x06d6, 0x06dc},
+! {0x06de, 0x06e4},
+! {0x06e7, 0x06e8},
+! {0x06ea, 0x06ed},
+! {0x0711, 0x0711},
+! {0x0730, 0x074a},
+! {0x07a6, 0x07b0},
+! {0x07eb, 0x07f3},
+! {0x0816, 0x0819},
+! {0x081b, 0x0823},
+! {0x0825, 0x0827},
+! {0x0829, 0x082d},
+! {0x0900, 0x0903},
+! {0x093c, 0x093c},
+! {0x093e, 0x094e},
+! {0x0951, 0x0955},
+! {0x0962, 0x0963},
+! {0x0981, 0x0983},
+! {0x09bc, 0x09bc},
+! {0x09be, 0x09c4},
+! {0x09c7, 0x09c8},
+! {0x09cb, 0x09cd},
+! {0x09d7, 0x09d7},
+! {0x09e2, 0x09e3},
+! {0x0a01, 0x0a03},
+! {0x0a3c, 0x0a3c},
+! {0x0a3e, 0x0a42},
+! {0x0a47, 0x0a48},
+! {0x0a4b, 0x0a4d},
+! {0x0a51, 0x0a51},
+! {0x0a70, 0x0a71},
+! {0x0a75, 0x0a75},
+! {0x0a81, 0x0a83},
+! {0x0abc, 0x0abc},
+! {0x0abe, 0x0ac5},
+! {0x0ac7, 0x0ac9},
+! {0x0acb, 0x0acd},
+! {0x0ae2, 0x0ae3},
+! {0x0b01, 0x0b03},
+! {0x0b3c, 0x0b3c},
+! {0x0b3e, 0x0b44},
+! {0x0b47, 0x0b48},
+! {0x0b4b, 0x0b4d},
+! {0x0b56, 0x0b57},
+! {0x0b62, 0x0b63},
+! {0x0b82, 0x0b82},
+! {0x0bbe, 0x0bc2},
+! {0x0bc6, 0x0bc8},
+! {0x0bca, 0x0bcd},
+! {0x0bd7, 0x0bd7},
+! {0x0c01, 0x0c03},
+! {0x0c3e, 0x0c44},
+! {0x0c46, 0x0c48},
+! {0x0c4a, 0x0c4d},
+! {0x0c55, 0x0c56},
+! {0x0c62, 0x0c63},
+! {0x0c82, 0x0c83},
+! {0x0cbc, 0x0cbc},
+! {0x0cbe, 0x0cc4},
+! {0x0cc6, 0x0cc8},
+! {0x0cca, 0x0ccd},
+! {0x0cd5, 0x0cd6},
+! {0x0ce2, 0x0ce3},
+! {0x0d02, 0x0d03},
+! {0x0d3e, 0x0d44},
+! {0x0d46, 0x0d48},
+! {0x0d4a, 0x0d4d},
+! {0x0d57, 0x0d57},
+! {0x0d62, 0x0d63},
+! {0x0d82, 0x0d83},
+! {0x0dca, 0x0dca},
+! {0x0dcf, 0x0dd4},
+! {0x0dd6, 0x0dd6},
+! {0x0dd8, 0x0ddf},
+! {0x0df2, 0x0df3},
+! {0x0e31, 0x0e31},
+! {0x0e34, 0x0e3a},
+! {0x0e47, 0x0e4e},
+! {0x0eb1, 0x0eb1},
+! {0x0eb4, 0x0eb9},
+! {0x0ebb, 0x0ebc},
+! {0x0ec8, 0x0ecd},
+! {0x0f18, 0x0f19},
+! {0x0f35, 0x0f35},
+! {0x0f37, 0x0f37},
+! {0x0f39, 0x0f39},
+! {0x0f3e, 0x0f3f},
+! {0x0f71, 0x0f84},
+! {0x0f86, 0x0f87},
+! {0x0f90, 0x0f97},
+! {0x0f99, 0x0fbc},
+! {0x0fc6, 0x0fc6},
+! {0x102b, 0x103e},
+! {0x1056, 0x1059},
+! {0x105e, 0x1060},
+! {0x1062, 0x1064},
+! {0x1067, 0x106d},
+! {0x1071, 0x1074},
+! {0x1082, 0x108d},
+! {0x108f, 0x108f},
+! {0x109a, 0x109d},
+! {0x135f, 0x135f},
+! {0x1712, 0x1714},
+! {0x1732, 0x1734},
+! {0x1752, 0x1753},
+! {0x1772, 0x1773},
+! {0x17b6, 0x17d3},
+! {0x17dd, 0x17dd},
+! {0x180b, 0x180d},
+! {0x18a9, 0x18a9},
+! {0x1920, 0x192b},
+! {0x1930, 0x193b},
+! {0x19b0, 0x19c0},
+! {0x19c8, 0x19c9},
+! {0x1a17, 0x1a1b},
+! {0x1a55, 0x1a5e},
+! {0x1a60, 0x1a7c},
+! {0x1a7f, 0x1a7f},
+! {0x1b00, 0x1b04},
+! {0x1b34, 0x1b44},
+! {0x1b6b, 0x1b73},
+! {0x1b80, 0x1b82},
+! {0x1ba1, 0x1baa},
+! {0x1c24, 0x1c37},
+! {0x1cd0, 0x1cd2},
+! {0x1cd4, 0x1ce8},
+! {0x1ced, 0x1ced},
+! {0x1cf2, 0x1cf2},
+! {0x1dc0, 0x1de6},
+! {0x1dfd, 0x1dff},
+! {0x20d0, 0x20f0},
+! {0x2cef, 0x2cf1},
+! {0x2de0, 0x2dff},
+! {0x302a, 0x302f},
+! {0x3099, 0x309a},
+! {0xa66f, 0xa672},
+! {0xa67c, 0xa67d},
+! {0xa6f0, 0xa6f1},
+! {0xa802, 0xa802},
+! {0xa806, 0xa806},
+! {0xa80b, 0xa80b},
+! {0xa823, 0xa827},
+! {0xa880, 0xa881},
+! {0xa8b4, 0xa8c4},
+! {0xa8e0, 0xa8f1},
+! {0xa926, 0xa92d},
+! {0xa947, 0xa953},
+! {0xa980, 0xa983},
+! {0xa9b3, 0xa9c0},
+! {0xaa29, 0xaa36},
+! {0xaa43, 0xaa43},
+! {0xaa4c, 0xaa4d},
+! {0xaa7b, 0xaa7b},
+! {0xaab0, 0xaab0},
+! {0xaab2, 0xaab4},
+! {0xaab7, 0xaab8},
+! {0xaabe, 0xaabf},
+! {0xaac1, 0xaac1},
+! {0xabe3, 0xabea},
+! {0xabec, 0xabed},
+! {0xfb1e, 0xfb1e},
+! {0xfe00, 0xfe0f},
+! {0xfe20, 0xfe26},
+! {0x101fd, 0x101fd},
+! {0x10a01, 0x10a03},
+! {0x10a05, 0x10a06},
+! {0x10a0c, 0x10a0f},
+! {0x10a38, 0x10a3a},
+! {0x10a3f, 0x10a3f},
+! {0x11080, 0x11082},
+! {0x110b0, 0x110ba},
+! {0x1d165, 0x1d169},
+! {0x1d16d, 0x1d172},
+! {0x1d17b, 0x1d182},
+! {0x1d185, 0x1d18b},
+! {0x1d1aa, 0x1d1ad},
+! {0x1d242, 0x1d244},
+! {0xe0100, 0xe01ef}
+ };
+
+ return intable(combining, sizeof(combining), c);
+***************
+*** 2152,2166 ****
+ * Code for Unicode case-dependent operations. Based on notes in
+ * http://www.unicode.org/Public/UNIDATA/CaseFolding.txt
+ * This code uses simple case folding, not full case folding.
+ */
+
+ /*
+! * The following table is built by foldExtract.pl < CaseFolding.txt .
+! * It must be in numeric order, because we use binary search on it.
+! * An entry such as {0x41,0x5a,1,32} means that UCS-4 characters in the range
+! * from 0x41 to 0x5a inclusive, stepping by 1, are folded by adding 32.
+ */
+-
+ typedef struct
+ {
+ int rangeStart;
+--- 2441,2456 ----
+ * Code for Unicode case-dependent operations. Based on notes in
+ * http://www.unicode.org/Public/UNIDATA/CaseFolding.txt
+ * This code uses simple case folding, not full case folding.
++ * Last updated for Unicode 5.2.
+ */
+
+ /*
+! * The following tables are built by ../runtime/tools/unicode.vim.
+! * They must be in numeric order, because we use binary search.
+! * An entry such as {0x41,0x5a,1,32} means that Unicode characters in the
+! * range from 0x41 to 0x5a inclusive, stepping by 1, are changed to
+! * folded/upper/lower by adding 32.
+ */
+ typedef struct
+ {
+ int rangeStart;
+***************
+*** 2171,2211 ****
+
+ static convertStruct foldCase[] =
+ {
+! {0x41,0x5a,1,32}, {0xc0,0xd6,1,32}, {0xd8,0xde,1,32},
+! {0x100,0x12e,2,1}, {0x130,0x130,-1,-199}, {0x132,0x136,2,1},
+! {0x139,0x147,2,1}, {0x14a,0x176,2,1}, {0x178,0x178,-1,-121},
+! {0x179,0x17d,2,1}, {0x181,0x181,-1,210}, {0x182,0x184,2,1},
+! {0x186,0x186,-1,206}, {0x187,0x187,-1,1}, {0x189,0x18a,1,205},
+! {0x18b,0x18b,-1,1}, {0x18e,0x18e,-1,79}, {0x18f,0x18f,-1,202},
+! {0x190,0x190,-1,203}, {0x191,0x191,-1,1}, {0x193,0x193,-1,205},
+! {0x194,0x194,-1,207}, {0x196,0x196,-1,211}, {0x197,0x197,-1,209},
+! {0x198,0x198,-1,1}, {0x19c,0x19c,-1,211}, {0x19d,0x19d,-1,213},
+! {0x19f,0x19f,-1,214}, {0x1a0,0x1a4,2,1}, {0x1a6,0x1a6,-1,218},
+! {0x1a7,0x1a7,-1,1}, {0x1a9,0x1a9,-1,218}, {0x1ac,0x1ac,-1,1},
+! {0x1ae,0x1ae,-1,218}, {0x1af,0x1af,-1,1}, {0x1b1,0x1b2,1,217},
+! {0x1b3,0x1b5,2,1}, {0x1b7,0x1b7,-1,219}, {0x1b8,0x1bc,4,1},
+! {0x1c4,0x1c4,-1,2}, {0x1c5,0x1c5,-1,1}, {0x1c7,0x1c7,-1,2},
+! {0x1c8,0x1c8,-1,1}, {0x1ca,0x1ca,-1,2}, {0x1cb,0x1db,2,1},
+! {0x1de,0x1ee,2,1}, {0x1f1,0x1f1,-1,2}, {0x1f2,0x1f4,2,1},
+! {0x1f6,0x1f6,-1,-97}, {0x1f7,0x1f7,-1,-56}, {0x1f8,0x21e,2,1},
+! {0x220,0x220,-1,-130}, {0x222,0x232,2,1}, {0x386,0x386,-1,38},
+! {0x388,0x38a,1,37}, {0x38c,0x38c,-1,64}, {0x38e,0x38f,1,63},
+! {0x391,0x3a1,1,32}, {0x3a3,0x3ab,1,32}, {0x3d8,0x3ee,2,1},
+! {0x3f4,0x3f4,-1,-60}, {0x3f7,0x3f7,-1,1}, {0x3f9,0x3f9,-1,-7},
+! {0x3fa,0x3fa,-1,1}, {0x400,0x40f,1,80}, {0x410,0x42f,1,32},
+! {0x460,0x480,2,1}, {0x48a,0x4be,2,1}, {0x4c1,0x4cd,2,1},
+! {0x4d0,0x4f4,2,1}, {0x4f8,0x500,8,1}, {0x502,0x50e,2,1},
+! {0x531,0x556,1,48}, {0x1e00,0x1e94,2,1}, {0x1ea0,0x1ef8,2,1},
+! {0x1f08,0x1f0f,1,-8}, {0x1f18,0x1f1d,1,-8}, {0x1f28,0x1f2f,1,-8},
+! {0x1f38,0x1f3f,1,-8}, {0x1f48,0x1f4d,1,-8}, {0x1f59,0x1f5f,2,-8},
+! {0x1f68,0x1f6f,1,-8}, {0x1f88,0x1f8f,1,-8}, {0x1f98,0x1f9f,1,-8},
+! {0x1fa8,0x1faf,1,-8}, {0x1fb8,0x1fb9,1,-8}, {0x1fba,0x1fbb,1,-74},
+! {0x1fbc,0x1fbc,-1,-9}, {0x1fc8,0x1fcb,1,-86}, {0x1fcc,0x1fcc,-1,-9},
+! {0x1fd8,0x1fd9,1,-8}, {0x1fda,0x1fdb,1,-100}, {0x1fe8,0x1fe9,1,-8},
+! {0x1fea,0x1feb,1,-112}, {0x1fec,0x1fec,-1,-7}, {0x1ff8,0x1ff9,1,-128},
+! {0x1ffa,0x1ffb,1,-126}, {0x1ffc,0x1ffc,-1,-9}, {0x2126,0x2126,-1,-7517},
+! {0x212a,0x212a,-1,-8383}, {0x212b,0x212b,-1,-8262},
+! {0x2160,0x216f,1,16}, {0x24b6,0x24cf,1,26}, {0xff21,0xff3a,1,32},
+ {0x10400,0x10427,1,40}
+ };
+
+--- 2461,2621 ----
+
+ static convertStruct foldCase[] =
+ {
+! {0x41,0x5a,1,32},
+! {0xb5,0xb5,-1,775},
+! {0xc0,0xd6,1,32},
+! {0xd8,0xde,1,32},
+! {0x100,0x12e,2,1},
+! {0x132,0x136,2,1},
+! {0x139,0x147,2,1},
+! {0x14a,0x176,2,1},
+! {0x178,0x178,-1,-121},
+! {0x179,0x17d,2,1},
+! {0x17f,0x17f,-1,-268},
+! {0x181,0x181,-1,210},
+! {0x182,0x184,2,1},
+! {0x186,0x186,-1,206},
+! {0x187,0x187,-1,1},
+! {0x189,0x18a,1,205},
+! {0x18b,0x18b,-1,1},
+! {0x18e,0x18e,-1,79},
+! {0x18f,0x18f,-1,202},
+! {0x190,0x190,-1,203},
+! {0x191,0x191,-1,1},
+! {0x193,0x193,-1,205},
+! {0x194,0x194,-1,207},
+! {0x196,0x196,-1,211},
+! {0x197,0x197,-1,209},
+! {0x198,0x198,-1,1},
+! {0x19c,0x19c,-1,211},
+! {0x19d,0x19d,-1,213},
+! {0x19f,0x19f,-1,214},
+! {0x1a0,0x1a4,2,1},
+! {0x1a6,0x1a6,-1,218},
+! {0x1a7,0x1a7,-1,1},
+! {0x1a9,0x1a9,-1,218},
+! {0x1ac,0x1ac,-1,1},
+! {0x1ae,0x1ae,-1,218},
+! {0x1af,0x1af,-1,1},
+! {0x1b1,0x1b2,1,217},
+! {0x1b3,0x1b5,2,1},
+! {0x1b7,0x1b7,-1,219},
+! {0x1b8,0x1bc,4,1},
+! {0x1c4,0x1c4,-1,2},
+! {0x1c5,0x1c5,-1,1},
+! {0x1c7,0x1c7,-1,2},
+! {0x1c8,0x1c8,-1,1},
+! {0x1ca,0x1ca,-1,2},
+! {0x1cb,0x1db,2,1},
+! {0x1de,0x1ee,2,1},
+! {0x1f1,0x1f1,-1,2},
+! {0x1f2,0x1f4,2,1},
+! {0x1f6,0x1f6,-1,-97},
+! {0x1f7,0x1f7,-1,-56},
+! {0x1f8,0x21e,2,1},
+! {0x220,0x220,-1,-130},
+! {0x222,0x232,2,1},
+! {0x23a,0x23a,-1,10795},
+! {0x23b,0x23b,-1,1},
+! {0x23d,0x23d,-1,-163},
+! {0x23e,0x23e,-1,10792},
+! {0x241,0x241,-1,1},
+! {0x243,0x243,-1,-195},
+! {0x244,0x244,-1,69},
+! {0x245,0x245,-1,71},
+! {0x246,0x24e,2,1},
+! {0x345,0x345,-1,116},
+! {0x370,0x372,2,1},
+! {0x376,0x376,-1,1},
+! {0x386,0x386,-1,38},
+! {0x388,0x38a,1,37},
+! {0x38c,0x38c,-1,64},
+! {0x38e,0x38f,1,63},
+! {0x391,0x3a1,1,32},
+! {0x3a3,0x3ab,1,32},
+! {0x3c2,0x3c2,-1,1},
+! {0x3cf,0x3cf,-1,8},
+! {0x3d0,0x3d0,-1,-30},
+! {0x3d1,0x3d1,-1,-25},
+! {0x3d5,0x3d5,-1,-15},
+! {0x3d6,0x3d6,-1,-22},
+! {0x3d8,0x3ee,2,1},
+! {0x3f0,0x3f0,-1,-54},
+! {0x3f1,0x3f1,-1,-48},
+! {0x3f4,0x3f4,-1,-60},
+! {0x3f5,0x3f5,-1,-64},
+! {0x3f7,0x3f7,-1,1},
+! {0x3f9,0x3f9,-1,-7},
+! {0x3fa,0x3fa,-1,1},
+! {0x3fd,0x3ff,1,-130},
+! {0x400,0x40f,1,80},
+! {0x410,0x42f,1,32},
+! {0x460,0x480,2,1},
+! {0x48a,0x4be,2,1},
+! {0x4c0,0x4c0,-1,15},
+! {0x4c1,0x4cd,2,1},
+! {0x4d0,0x524,2,1},
+! {0x531,0x556,1,48},
+! {0x10a0,0x10c5,1,7264},
+! {0x1e00,0x1e94,2,1},
+! {0x1e9b,0x1e9b,-1,-58},
+! {0x1e9e,0x1e9e,-1,-7615},
+! {0x1ea0,0x1efe,2,1},
+! {0x1f08,0x1f0f,1,-8},
+! {0x1f18,0x1f1d,1,-8},
+! {0x1f28,0x1f2f,1,-8},
+! {0x1f38,0x1f3f,1,-8},
+! {0x1f48,0x1f4d,1,-8},
+! {0x1f59,0x1f5f,2,-8},
+! {0x1f68,0x1f6f,1,-8},
+! {0x1f88,0x1f8f,1,-8},
+! {0x1f98,0x1f9f,1,-8},
+! {0x1fa8,0x1faf,1,-8},
+! {0x1fb8,0x1fb9,1,-8},
+! {0x1fba,0x1fbb,1,-74},
+! {0x1fbc,0x1fbc,-1,-9},
+! {0x1fbe,0x1fbe,-1,-7173},
+! {0x1fc8,0x1fcb,1,-86},
+! {0x1fcc,0x1fcc,-1,-9},
+! {0x1fd8,0x1fd9,1,-8},
+! {0x1fda,0x1fdb,1,-100},
+! {0x1fe8,0x1fe9,1,-8},
+! {0x1fea,0x1feb,1,-112},
+! {0x1fec,0x1fec,-1,-7},
+! {0x1ff8,0x1ff9,1,-128},
+! {0x1ffa,0x1ffb,1,-126},
+! {0x1ffc,0x1ffc,-1,-9},
+! {0x2126,0x2126,-1,-7517},
+! {0x212a,0x212a,-1,-8383},
+! {0x212b,0x212b,-1,-8262},
+! {0x2132,0x2132,-1,28},
+! {0x2160,0x216f,1,16},
+! {0x2183,0x2183,-1,1},
+! {0x24b6,0x24cf,1,26},
+! {0x2c00,0x2c2e,1,48},
+! {0x2c60,0x2c60,-1,1},
+! {0x2c62,0x2c62,-1,-10743},
+! {0x2c63,0x2c63,-1,-3814},
+! {0x2c64,0x2c64,-1,-10727},
+! {0x2c67,0x2c6b,2,1},
+! {0x2c6d,0x2c6d,-1,-10780},
+! {0x2c6e,0x2c6e,-1,-10749},
+! {0x2c6f,0x2c6f,-1,-10783},
+! {0x2c70,0x2c70,-1,-10782},
+! {0x2c72,0x2c75,3,1},
+! {0x2c7e,0x2c7f,1,-10815},
+! {0x2c80,0x2ce2,2,1},
+! {0x2ceb,0x2ced,2,1},
+! {0xa640,0xa65e,2,1},
+! {0xa662,0xa66c,2,1},
+! {0xa680,0xa696,2,1},
+! {0xa722,0xa72e,2,1},
+! {0xa732,0xa76e,2,1},
+! {0xa779,0xa77b,2,1},
+! {0xa77d,0xa77d,-1,-35332},
+! {0xa77e,0xa786,2,1},
+! {0xa78b,0xa78b,-1,1},
+! {0xff21,0xff3a,1,32},
+ {0x10400,0x10427,1,40}
+ };
+
+***************
+*** 2253,2337 ****
+ return utf_convert(a, foldCase, sizeof(foldCase));
+ }
+
+- /*
+- * The following tables are built by upperLowerExtract.pl < UnicodeData.txt .
+- * They must be in numeric order, because we use binary search on them.
+- * An entry such as {0x41,0x5a,1,32} means that UCS-4 characters in the range
+- * from 0x41 to 0x5a inclusive, stepping by 1, are switched to lower (for
+- * example) by adding 32.
+- */
+ static convertStruct toLower[] =
+ {
+! {0x41,0x5a,1,32}, {0xc0,0xd6,1,32}, {0xd8,0xde,1,32},
+! {0x100,0x12e,2,1}, {0x130,0x130,-1,-199}, {0x132,0x136,2,1},
+! {0x139,0x147,2,1}, {0x14a,0x176,2,1}, {0x178,0x178,-1,-121},
+! {0x179,0x17d,2,1}, {0x181,0x181,-1,210}, {0x182,0x184,2,1},
+! {0x186,0x186,-1,206}, {0x187,0x187,-1,1}, {0x189,0x18a,1,205},
+! {0x18b,0x18b,-1,1}, {0x18e,0x18e,-1,79}, {0x18f,0x18f,-1,202},
+! {0x190,0x190,-1,203}, {0x191,0x191,-1,1}, {0x193,0x193,-1,205},
+! {0x194,0x194,-1,207}, {0x196,0x196,-1,211}, {0x197,0x197,-1,209},
+! {0x198,0x198,-1,1}, {0x19c,0x19c,-1,211}, {0x19d,0x19d,-1,213},
+! {0x19f,0x19f,-1,214}, {0x1a0,0x1a4,2,1}, {0x1a6,0x1a6,-1,218},
+! {0x1a7,0x1a7,-1,1}, {0x1a9,0x1a9,-1,218}, {0x1ac,0x1ac,-1,1},
+! {0x1ae,0x1ae,-1,218}, {0x1af,0x1af,-1,1}, {0x1b1,0x1b2,1,217},
+! {0x1b3,0x1b5,2,1}, {0x1b7,0x1b7,-1,219}, {0x1b8,0x1bc,4,1},
+! {0x1c4,0x1ca,3,2}, {0x1cd,0x1db,2,1}, {0x1de,0x1ee,2,1},
+! {0x1f1,0x1f1,-1,2}, {0x1f4,0x1f4,-1,1}, {0x1f6,0x1f6,-1,-97},
+! {0x1f7,0x1f7,-1,-56}, {0x1f8,0x21e,2,1}, {0x220,0x220,-1,-130},
+! {0x222,0x232,2,1}, {0x386,0x386,-1,38}, {0x388,0x38a,1,37},
+! {0x38c,0x38c,-1,64}, {0x38e,0x38f,1,63}, {0x391,0x3a1,1,32},
+! {0x3a3,0x3ab,1,32}, {0x3d8,0x3ee,2,1}, {0x3f4,0x3f4,-1,-60},
+! {0x3f7,0x3f7,-1,1}, {0x3f9,0x3f9,-1,-7}, {0x3fa,0x3fa,-1,1},
+! {0x400,0x40f,1,80}, {0x410,0x42f,1,32}, {0x460,0x480,2,1},
+! {0x48a,0x4be,2,1}, {0x4c1,0x4cd,2,1}, {0x4d0,0x4f4,2,1},
+! {0x4f8,0x500,8,1}, {0x502,0x50e,2,1}, {0x531,0x556,1,48},
+! {0x1e00,0x1e94,2,1}, {0x1ea0,0x1ef8,2,1}, {0x1f08,0x1f0f,1,-8},
+! {0x1f18,0x1f1d,1,-8}, {0x1f28,0x1f2f,1,-8}, {0x1f38,0x1f3f,1,-8},
+! {0x1f48,0x1f4d,1,-8}, {0x1f59,0x1f5f,2,-8}, {0x1f68,0x1f6f,1,-8},
+! {0x1fb8,0x1fb9,1,-8}, {0x1fba,0x1fbb,1,-74}, {0x1fc8,0x1fcb,1,-86},
+! {0x1fd8,0x1fd9,1,-8}, {0x1fda,0x1fdb,1,-100}, {0x1fe8,0x1fe9,1,-8},
+! {0x1fea,0x1feb,1,-112}, {0x1fec,0x1fec,-1,-7}, {0x1ff8,0x1ff9,1,-128},
+! {0x1ffa,0x1ffb,1,-126}, {0x2126,0x2126,-1,-7517}, {0x212a,0x212a,-1,-8383},
+! {0x212b,0x212b,-1,-8262}, {0xff21,0xff3a,1,32}, {0x10400,0x10427,1,40}
+ };
+
+ static convertStruct toUpper[] =
+ {
+! {0x61,0x7a,1,-32}, {0xb5,0xb5,-1,743}, {0xe0,0xf6,1,-32},
+! {0xf8,0xfe,1,-32}, {0xff,0xff,-1,121}, {0x101,0x12f,2,-1},
+! {0x131,0x131,-1,-232}, {0x133,0x137,2,-1}, {0x13a,0x148,2,-1},
+! {0x14b,0x177,2,-1}, {0x17a,0x17e,2,-1}, {0x17f,0x17f,-1,-300},
+! {0x183,0x185,2,-1}, {0x188,0x18c,4,-1}, {0x192,0x192,-1,-1},
+! {0x195,0x195,-1,97}, {0x199,0x199,-1,-1}, {0x19e,0x19e,-1,130},
+! {0x1a1,0x1a5,2,-1}, {0x1a8,0x1ad,5,-1}, {0x1b0,0x1b4,4,-1},
+! {0x1b6,0x1b9,3,-1}, {0x1bd,0x1bd,-1,-1}, {0x1bf,0x1bf,-1,56},
+! {0x1c5,0x1c6,1,-1}, {0x1c8,0x1c9,1,-1}, {0x1cb,0x1cc,1,-1},
+! {0x1ce,0x1dc,2,-1}, {0x1dd,0x1dd,-1,-79}, {0x1df,0x1ef,2,-1},
+! {0x1f2,0x1f3,1,-1}, {0x1f5,0x1f9,4,-1}, {0x1fb,0x21f,2,-1},
+! {0x223,0x233,2,-1}, {0x253,0x253,-1,-210}, {0x254,0x254,-1,-206},
+! {0x256,0x257,1,-205}, {0x259,0x259,-1,-202}, {0x25b,0x25b,-1,-203},
+! {0x260,0x260,-1,-205}, {0x263,0x263,-1,-207}, {0x268,0x268,-1,-209},
+! {0x269,0x26f,6,-211}, {0x272,0x272,-1,-213}, {0x275,0x275,-1,-214},
+! {0x280,0x283,3,-218}, {0x288,0x288,-1,-218}, {0x28a,0x28b,1,-217},
+! {0x292,0x292,-1,-219}, {0x3ac,0x3ac,-1,-38}, {0x3ad,0x3af,1,-37},
+! {0x3b1,0x3c1,1,-32}, {0x3c2,0x3c2,-1,-31}, {0x3c3,0x3cb,1,-32},
+! {0x3cc,0x3cc,-1,-64}, {0x3cd,0x3ce,1,-63}, {0x3d0,0x3d0,-1,-62},
+! {0x3d1,0x3d1,-1,-57}, {0x3d5,0x3d5,-1,-47}, {0x3d6,0x3d6,-1,-54},
+! {0x3d9,0x3ef,2,-1}, {0x3f0,0x3f0,-1,-86}, {0x3f1,0x3f1,-1,-80},
+! {0x3f2,0x3f2,-1,7}, {0x3f5,0x3f5,-1,-96}, {0x3f8,0x3fb,3,-1},
+! {0x430,0x44f,1,-32}, {0x450,0x45f,1,-80}, {0x461,0x481,2,-1},
+! {0x48b,0x4bf,2,-1}, {0x4c2,0x4ce,2,-1}, {0x4d1,0x4f5,2,-1},
+! {0x4f9,0x501,8,-1}, {0x503,0x50f,2,-1}, {0x561,0x586,1,-48},
+! {0x1e01,0x1e95,2,-1}, {0x1e9b,0x1e9b,-1,-59}, {0x1ea1,0x1ef9,2,-1},
+! {0x1f00,0x1f07,1,8}, {0x1f10,0x1f15,1,8}, {0x1f20,0x1f27,1,8},
+! {0x1f30,0x1f37,1,8}, {0x1f40,0x1f45,1,8}, {0x1f51,0x1f57,2,8},
+! {0x1f60,0x1f67,1,8}, {0x1f70,0x1f71,1,74}, {0x1f72,0x1f75,1,86},
+! {0x1f76,0x1f77,1,100}, {0x1f78,0x1f79,1,128}, {0x1f7a,0x1f7b,1,112},
+! {0x1f7c,0x1f7d,1,126}, {0x1f80,0x1f87,1,8}, {0x1f90,0x1f97,1,8},
+! {0x1fa0,0x1fa7,1,8}, {0x1fb0,0x1fb1,1,8}, {0x1fb3,0x1fb3,-1,9},
+! {0x1fbe,0x1fbe,-1,-7205}, {0x1fc3,0x1fc3,-1,9}, {0x1fd0,0x1fd1,1,8},
+! {0x1fe0,0x1fe1,1,8}, {0x1fe5,0x1fe5,-1,7}, {0x1ff3,0x1ff3,-1,9},
+! {0xff41,0xff5a,1,-32}, {0x10428,0x1044f,1,-40}
+ };
+
+ /*
+--- 2663,2968 ----
+ return utf_convert(a, foldCase, sizeof(foldCase));
+ }
+
+ static convertStruct toLower[] =
+ {
+! {0x41,0x5a,1,32},
+! {0xc0,0xd6,1,32},
+! {0xd8,0xde,1,32},
+! {0x100,0x12e,2,1},
+! {0x130,0x130,-1,-199},
+! {0x132,0x136,2,1},
+! {0x139,0x147,2,1},
+! {0x14a,0x176,2,1},
+! {0x178,0x178,-1,-121},
+! {0x179,0x17d,2,1},
+! {0x181,0x181,-1,210},
+! {0x182,0x184,2,1},
+! {0x186,0x186,-1,206},
+! {0x187,0x187,-1,1},
+! {0x189,0x18a,1,205},
+! {0x18b,0x18b,-1,1},
+! {0x18e,0x18e,-1,79},
+! {0x18f,0x18f,-1,202},
+! {0x190,0x190,-1,203},
+! {0x191,0x191,-1,1},
+! {0x193,0x193,-1,205},
+! {0x194,0x194,-1,207},
+! {0x196,0x196,-1,211},
+! {0x197,0x197,-1,209},
+! {0x198,0x198,-1,1},
+! {0x19c,0x19c,-1,211},
+! {0x19d,0x19d,-1,213},
+! {0x19f,0x19f,-1,214},
+! {0x1a0,0x1a4,2,1},
+! {0x1a6,0x1a6,-1,218},
+! {0x1a7,0x1a7,-1,1},
+! {0x1a9,0x1a9,-1,218},
+! {0x1ac,0x1ac,-1,1},
+! {0x1ae,0x1ae,-1,218},
+! {0x1af,0x1af,-1,1},
+! {0x1b1,0x1b2,1,217},
+! {0x1b3,0x1b5,2,1},
+! {0x1b7,0x1b7,-1,219},
+! {0x1b8,0x1bc,4,1},
+! {0x1c4,0x1c4,-1,2},
+! {0x1c5,0x1c5,-1,1},
+! {0x1c7,0x1c7,-1,2},
+! {0x1c8,0x1c8,-1,1},
+! {0x1ca,0x1ca,-1,2},
+! {0x1cb,0x1db,2,1},
+! {0x1de,0x1ee,2,1},
+! {0x1f1,0x1f1,-1,2},
+! {0x1f2,0x1f4,2,1},
+! {0x1f6,0x1f6,-1,-97},
+! {0x1f7,0x1f7,-1,-56},
+! {0x1f8,0x21e,2,1},
+! {0x220,0x220,-1,-130},
+! {0x222,0x232,2,1},
+! {0x23a,0x23a,-1,10795},
+! {0x23b,0x23b,-1,1},
+! {0x23d,0x23d,-1,-163},
+! {0x23e,0x23e,-1,10792},
+! {0x241,0x241,-1,1},
+! {0x243,0x243,-1,-195},
+! {0x244,0x244,-1,69},
+! {0x245,0x245,-1,71},
+! {0x246,0x24e,2,1},
+! {0x370,0x372,2,1},
+! {0x376,0x376,-1,1},
+! {0x386,0x386,-1,38},
+! {0x388,0x38a,1,37},
+! {0x38c,0x38c,-1,64},
+! {0x38e,0x38f,1,63},
+! {0x391,0x3a1,1,32},
+! {0x3a3,0x3ab,1,32},
+! {0x3cf,0x3cf,-1,8},
+! {0x3d8,0x3ee,2,1},
+! {0x3f4,0x3f4,-1,-60},
+! {0x3f7,0x3f7,-1,1},
+! {0x3f9,0x3f9,-1,-7},
+! {0x3fa,0x3fa,-1,1},
+! {0x3fd,0x3ff,1,-130},
+! {0x400,0x40f,1,80},
+! {0x410,0x42f,1,32},
+! {0x460,0x480,2,1},
+! {0x48a,0x4be,2,1},
+! {0x4c0,0x4c0,-1,15},
+! {0x4c1,0x4cd,2,1},
+! {0x4d0,0x524,2,1},
+! {0x531,0x556,1,48},
+! {0x10a0,0x10c5,1,7264},
+! {0x1e00,0x1e94,2,1},
+! {0x1e9e,0x1e9e,-1,-7615},
+! {0x1ea0,0x1efe,2,1},
+! {0x1f08,0x1f0f,1,-8},
+! {0x1f18,0x1f1d,1,-8},
+! {0x1f28,0x1f2f,1,-8},
+! {0x1f38,0x1f3f,1,-8},
+! {0x1f48,0x1f4d,1,-8},
+! {0x1f59,0x1f5f,2,-8},
+! {0x1f68,0x1f6f,1,-8},
+! {0x1f88,0x1f8f,1,-8},
+! {0x1f98,0x1f9f,1,-8},
+! {0x1fa8,0x1faf,1,-8},
+! {0x1fb8,0x1fb9,1,-8},
+! {0x1fba,0x1fbb,1,-74},
+! {0x1fbc,0x1fbc,-1,-9},
+! {0x1fc8,0x1fcb,1,-86},
+! {0x1fcc,0x1fcc,-1,-9},
+! {0x1fd8,0x1fd9,1,-8},
+! {0x1fda,0x1fdb,1,-100},
+! {0x1fe8,0x1fe9,1,-8},
+! {0x1fea,0x1feb,1,-112},
+! {0x1fec,0x1fec,-1,-7},
+! {0x1ff8,0x1ff9,1,-128},
+! {0x1ffa,0x1ffb,1,-126},
+! {0x1ffc,0x1ffc,-1,-9},
+! {0x2126,0x2126,-1,-7517},
+! {0x212a,0x212a,-1,-8383},
+! {0x212b,0x212b,-1,-8262},
+! {0x2132,0x2132,-1,28},
+! {0x2160,0x216f,1,16},
+! {0x2183,0x2183,-1,1},
+! {0x24b6,0x24cf,1,26},
+! {0x2c00,0x2c2e,1,48},
+! {0x2c60,0x2c60,-1,1},
+! {0x2c62,0x2c62,-1,-10743},
+! {0x2c63,0x2c63,-1,-3814},
+! {0x2c64,0x2c64,-1,-10727},
+! {0x2c67,0x2c6b,2,1},
+! {0x2c6d,0x2c6d,-1,-10780},
+! {0x2c6e,0x2c6e,-1,-10749},
+! {0x2c6f,0x2c6f,-1,-10783},
+! {0x2c70,0x2c70,-1,-10782},
+! {0x2c72,0x2c75,3,1},
+! {0x2c7e,0x2c7f,1,-10815},
+! {0x2c80,0x2ce2,2,1},
+! {0x2ceb,0x2ced,2,1},
+! {0xa640,0xa65e,2,1},
+! {0xa662,0xa66c,2,1},
+! {0xa680,0xa696,2,1},
+! {0xa722,0xa72e,2,1},
+! {0xa732,0xa76e,2,1},
+! {0xa779,0xa77b,2,1},
+! {0xa77d,0xa77d,-1,-35332},
+! {0xa77e,0xa786,2,1},
+! {0xa78b,0xa78b,-1,1},
+! {0xff21,0xff3a,1,32},
+! {0x10400,0x10427,1,40}
+ };
+
+ static convertStruct toUpper[] =
+ {
+! {0x61,0x7a,1,-32},
+! {0xb5,0xb5,-1,743},
+! {0xe0,0xf6,1,-32},
+! {0xf8,0xfe,1,-32},
+! {0xff,0xff,-1,121},
+! {0x101,0x12f,2,-1},
+! {0x131,0x131,-1,-232},
+! {0x133,0x137,2,-1},
+! {0x13a,0x148,2,-1},
+! {0x14b,0x177,2,-1},
+! {0x17a,0x17e,2,-1},
+! {0x17f,0x17f,-1,-300},
+! {0x180,0x180,-1,195},
+! {0x183,0x185,2,-1},
+! {0x188,0x18c,4,-1},
+! {0x192,0x192,-1,-1},
+! {0x195,0x195,-1,97},
+! {0x199,0x199,-1,-1},
+! {0x19a,0x19a,-1,163},
+! {0x19e,0x19e,-1,130},
+! {0x1a1,0x1a5,2,-1},
+! {0x1a8,0x1ad,5,-1},
+! {0x1b0,0x1b4,4,-1},
+! {0x1b6,0x1b9,3,-1},
+! {0x1bd,0x1bd,-1,-1},
+! {0x1bf,0x1bf,-1,56},
+! {0x1c5,0x1c5,-1,-1},
+! {0x1c6,0x1c6,-1,-2},
+! {0x1c8,0x1c8,-1,-1},
+! {0x1c9,0x1c9,-1,-2},
+! {0x1cb,0x1cb,-1,-1},
+! {0x1cc,0x1cc,-1,-2},
+! {0x1ce,0x1dc,2,-1},
+! {0x1dd,0x1dd,-1,-79},
+! {0x1df,0x1ef,2,-1},
+! {0x1f2,0x1f2,-1,-1},
+! {0x1f3,0x1f3,-1,-2},
+! {0x1f5,0x1f9,4,-1},
+! {0x1fb,0x21f,2,-1},
+! {0x223,0x233,2,-1},
+! {0x23c,0x23c,-1,-1},
+! {0x23f,0x240,1,10815},
+! {0x242,0x247,5,-1},
+! {0x249,0x24f,2,-1},
+! {0x250,0x250,-1,10783},
+! {0x251,0x251,-1,10780},
+! {0x252,0x252,-1,10782},
+! {0x253,0x253,-1,-210},
+! {0x254,0x254,-1,-206},
+! {0x256,0x257,1,-205},
+! {0x259,0x259,-1,-202},
+! {0x25b,0x25b,-1,-203},
+! {0x260,0x260,-1,-205},
+! {0x263,0x263,-1,-207},
+! {0x268,0x268,-1,-209},
+! {0x269,0x269,-1,-211},
+! {0x26b,0x26b,-1,10743},
+! {0x26f,0x26f,-1,-211},
+! {0x271,0x271,-1,10749},
+! {0x272,0x272,-1,-213},
+! {0x275,0x275,-1,-214},
+! {0x27d,0x27d,-1,10727},
+! {0x280,0x283,3,-218},
+! {0x288,0x288,-1,-218},
+! {0x289,0x289,-1,-69},
+! {0x28a,0x28b,1,-217},
+! {0x28c,0x28c,-1,-71},
+! {0x292,0x292,-1,-219},
+! {0x345,0x345,-1,84},
+! {0x371,0x373,2,-1},
+! {0x377,0x377,-1,-1},
+! {0x37b,0x37d,1,130},
+! {0x3ac,0x3ac,-1,-38},
+! {0x3ad,0x3af,1,-37},
+! {0x3b1,0x3c1,1,-32},
+! {0x3c2,0x3c2,-1,-31},
+! {0x3c3,0x3cb,1,-32},
+! {0x3cc,0x3cc,-1,-64},
+! {0x3cd,0x3ce,1,-63},
+! {0x3d0,0x3d0,-1,-62},
+! {0x3d1,0x3d1,-1,-57},
+! {0x3d5,0x3d5,-1,-47},
+! {0x3d6,0x3d6,-1,-54},
+! {0x3d7,0x3d7,-1,-8},
+! {0x3d9,0x3ef,2,-1},
+! {0x3f0,0x3f0,-1,-86},
+! {0x3f1,0x3f1,-1,-80},
+! {0x3f2,0x3f2,-1,7},
+! {0x3f5,0x3f5,-1,-96},
+! {0x3f8,0x3fb,3,-1},
+! {0x430,0x44f,1,-32},
+! {0x450,0x45f,1,-80},
+! {0x461,0x481,2,-1},
+! {0x48b,0x4bf,2,-1},
+! {0x4c2,0x4ce,2,-1},
+! {0x4cf,0x4cf,-1,-15},
+! {0x4d1,0x525,2,-1},
+! {0x561,0x586,1,-48},
+! {0x1d79,0x1d79,-1,35332},
+! {0x1d7d,0x1d7d,-1,3814},
+! {0x1e01,0x1e95,2,-1},
+! {0x1e9b,0x1e9b,-1,-59},
+! {0x1ea1,0x1eff,2,-1},
+! {0x1f00,0x1f07,1,8},
+! {0x1f10,0x1f15,1,8},
+! {0x1f20,0x1f27,1,8},
+! {0x1f30,0x1f37,1,8},
+! {0x1f40,0x1f45,1,8},
+! {0x1f51,0x1f57,2,8},
+! {0x1f60,0x1f67,1,8},
+! {0x1f70,0x1f71,1,74},
+! {0x1f72,0x1f75,1,86},
+! {0x1f76,0x1f77,1,100},
+! {0x1f78,0x1f79,1,128},
+! {0x1f7a,0x1f7b,1,112},
+! {0x1f7c,0x1f7d,1,126},
+! {0x1f80,0x1f87,1,8},
+! {0x1f90,0x1f97,1,8},
+! {0x1fa0,0x1fa7,1,8},
+! {0x1fb0,0x1fb1,1,8},
+! {0x1fb3,0x1fb3,-1,9},
+! {0x1fbe,0x1fbe,-1,-7205},
+! {0x1fc3,0x1fc3,-1,9},
+! {0x1fd0,0x1fd1,1,8},
+! {0x1fe0,0x1fe1,1,8},
+! {0x1fe5,0x1fe5,-1,7},
+! {0x1ff3,0x1ff3,-1,9},
+! {0x214e,0x214e,-1,-28},
+! {0x2170,0x217f,1,-16},
+! {0x2184,0x2184,-1,-1},
+! {0x24d0,0x24e9,1,-26},
+! {0x2c30,0x2c5e,1,-48},
+! {0x2c61,0x2c61,-1,-1},
+! {0x2c65,0x2c65,-1,-10795},
+! {0x2c66,0x2c66,-1,-10792},
+! {0x2c68,0x2c6c,2,-1},
+! {0x2c73,0x2c76,3,-1},
+! {0x2c81,0x2ce3,2,-1},
+! {0x2cec,0x2cee,2,-1},
+! {0x2d00,0x2d25,1,-7264},
+! {0xa641,0xa65f,2,-1},
+! {0xa663,0xa66d,2,-1},
+! {0xa681,0xa697,2,-1},
+! {0xa723,0xa72f,2,-1},
+! {0xa733,0xa76f,2,-1},
+! {0xa77a,0xa77c,2,-1},
+! {0xa77f,0xa787,2,-1},
+! {0xa78c,0xa78c,-1,-1},
+! {0xff41,0xff5a,1,-32},
+! {0x10428,0x1044f,1,-40}
+ };
+
+ /*
+*** ../vim-7.2.329/src/version.c 2010-01-12 15:42:03.000000000 +0100
+--- src/version.c 2010-01-12 18:16:55.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 330,
+ /**/
+
+--
+From "know your smileys":
+ <|-) Chinese
+ <|-( Chinese and doesn't like these kind of jokes
+
+ /// 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/source/ap/vim/patches/7.2.331 b/source/ap/vim/patches/7.2.331
new file mode 100644
index 00000000..82f40a26
--- /dev/null
+++ b/source/ap/vim/patches/7.2.331
@@ -0,0 +1,47 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.331
+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.2.331
+Problem: Can't interrupt "echo list" for a very long list.
+Solution: Call line_breakcheck() in list_join().
+Files: src/eval.c
+
+
+*** ../vim-7.2.330/src/eval.c 2010-01-12 12:48:40.000000000 +0100
+--- src/eval.c 2010-01-12 15:59:28.000000000 +0100
+***************
+*** 6475,6480 ****
+--- 6475,6481 ----
+ vim_free(tofree);
+ if (s == NULL)
+ return FAIL;
++ line_breakcheck();
+ }
+ return OK;
+ }
+*** ../vim-7.2.330/src/version.c 2010-01-12 19:48:57.000000000 +0100
+--- src/version.c 2010-01-19 12:44:02.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 331,
+ /**/
+
+
+--
+hundred-and-one symptoms of being an internet addict:
+116. You are living with your boyfriend who networks your respective
+ computers so you can sit in separate rooms and email each other
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.2.332 b/source/ap/vim/patches/7.2.332
new file mode 100644
index 00000000..7956d1ed
--- /dev/null
+++ b/source/ap/vim/patches/7.2.332
@@ -0,0 +1,101 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.332
+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.2.332
+Problem: Crash when spell correcting triggers an autocommand that reloads
+ the buffer.
+Solution: Make a copy of the line to be modified. (Dominique Pelle)
+Files: src/spell.c
+
+
+*** ../vim-7.2.331/src/spell.c 2009-07-22 11:03:38.000000000 +0200
+--- src/spell.c 2010-01-19 12:44:42.000000000 +0100
+***************
+*** 10306,10312 ****
+ /* Figure out if the word should be capitalised. */
+ need_cap = check_need_cap(curwin->w_cursor.lnum, curwin->w_cursor.col);
+
+! line = ml_get_curline();
+
+ /* Get the list of suggestions. Limit to 'lines' - 2 or the number in
+ * 'spellsuggest', whatever is smaller. */
+--- 10306,10315 ----
+ /* Figure out if the word should be capitalised. */
+ need_cap = check_need_cap(curwin->w_cursor.lnum, curwin->w_cursor.col);
+
+! /* Make a copy of current line since autocommands may free the line. */
+! line = vim_strsave(ml_get_curline());
+! if (line == NULL)
+! goto skip;
+
+ /* Get the list of suggestions. Limit to 'lines' - 2 or the number in
+ * 'spellsuggest', whatever is smaller. */
+***************
+*** 10470,10475 ****
+--- 10473,10480 ----
+ curwin->w_cursor = prev_cursor;
+
+ spell_find_cleanup(&sug);
++ skip:
++ vim_free(line);
+ }
+
+ /*
+***************
+*** 10931,10937 ****
+ rescore_suggestions(su);
+
+ /*
+! * While going throught the soundfold tree "su_maxscore" is the score
+ * for the soundfold word, limits the changes that are being tried,
+ * and "su_sfmaxscore" the rescored score, which is set by
+ * cleanup_suggestions().
+--- 10936,10942 ----
+ rescore_suggestions(su);
+
+ /*
+! * While going through the soundfold tree "su_maxscore" is the score
+ * for the soundfold word, limits the changes that are being tried,
+ * and "su_sfmaxscore" the rescored score, which is set by
+ * cleanup_suggestions().
+***************
+*** 11415,11421 ****
+ char_u tword[MAXWLEN]; /* good word collected so far */
+ trystate_T stack[MAXWLEN];
+ char_u preword[MAXWLEN * 3]; /* word found with proper case;
+! * concatanation of prefix compound
+ * words and split word. NUL terminated
+ * when going deeper but not when coming
+ * back. */
+--- 11420,11426 ----
+ char_u tword[MAXWLEN]; /* good word collected so far */
+ trystate_T stack[MAXWLEN];
+ char_u preword[MAXWLEN * 3]; /* word found with proper case;
+! * concatenation of prefix compound
+ * words and split word. NUL terminated
+ * when going deeper but not when coming
+ * back. */
+*** ../vim-7.2.331/src/version.c 2010-01-19 12:46:51.000000000 +0100
+--- src/version.c 2010-01-19 13:05:32.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 332,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+117. You are more comfortable typing in html.
+
+ /// 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/source/ap/vim/patches/7.2.333 b/source/ap/vim/patches/7.2.333
new file mode 100644
index 00000000..02273b64
--- /dev/null
+++ b/source/ap/vim/patches/7.2.333
@@ -0,0 +1,371 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.333
+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.2.333
+Problem: Warnings from static code analysis.
+Solution: Small changes to various lines. (Dominique Pelle)
+Files: src/buffer.c, src/edit.c, src/ex_getln.c, src/fileio.c,
+ src/if_cscope.c, src/netbeans.c, src/ops.c, src/quickfix.c,
+ src/syntax.c, src/ui.c
+
+
+*** ../vim-7.2.332/src/buffer.c 2009-05-17 13:30:58.000000000 +0200
+--- src/buffer.c 2010-01-19 12:50:24.000000000 +0100
+***************
+*** 315,321 ****
+ {
+ #ifdef FEAT_AUTOCMD
+ int is_curbuf;
+! int nwindows = buf->b_nwindows;
+ #endif
+ int unload_buf = (action != 0);
+ int del_buf = (action == DOBUF_DEL || action == DOBUF_WIPE);
+--- 315,321 ----
+ {
+ #ifdef FEAT_AUTOCMD
+ int is_curbuf;
+! int nwindows;
+ #endif
+ int unload_buf = (action != 0);
+ int del_buf = (action == DOBUF_DEL || action == DOBUF_WIPE);
+*** ../vim-7.2.332/src/edit.c 2009-12-24 15:45:53.000000000 +0100
+--- src/edit.c 2010-01-19 12:53:18.000000000 +0100
+***************
+*** 4048,4054 ****
+ save_p_ic = p_ic;
+ p_ic = ignorecase(compl_pattern);
+
+! /* Find up to TAG_MANY matches. Avoids that an enourmous number
+ * of matches is found when compl_pattern is empty */
+ if (find_tags(compl_pattern, &num_matches, &matches,
+ TAG_REGEXP | TAG_NAMES | TAG_NOIC |
+--- 4048,4054 ----
+ save_p_ic = p_ic;
+ p_ic = ignorecase(compl_pattern);
+
+! /* Find up to TAG_MANY matches. Avoids that an enormous number
+ * of matches is found when compl_pattern is empty */
+ if (find_tags(compl_pattern, &num_matches, &matches,
+ TAG_REGEXP | TAG_NAMES | TAG_NOIC |
+***************
+*** 4219,4225 ****
+ || IObuff[len - 2] == '!'))))
+ IObuff[len++] = ' ';
+ }
+! /* copy as much as posible of the new word */
+ if (tmp_ptr - ptr >= IOSIZE - len)
+ tmp_ptr = ptr + IOSIZE - len - 1;
+ STRNCPY(IObuff + len, ptr, tmp_ptr - ptr);
+--- 4219,4225 ----
+ || IObuff[len - 2] == '!'))))
+ IObuff[len++] = ' ';
+ }
+! /* copy as much as possible of the new word */
+ if (tmp_ptr - ptr >= IOSIZE - len)
+ tmp_ptr = ptr + IOSIZE - len - 1;
+ STRNCPY(IObuff + len, ptr, tmp_ptr - ptr);
+***************
+*** 5827,5836 ****
+ #endif
+ && !has_format_option(FO_WRAP))
+
+- {
+- textwidth = 0;
+ break;
+- }
+ if ((startcol = curwin->w_cursor.col) == 0)
+ break;
+
+--- 5827,5833 ----
+*** ../vim-7.2.332/src/ex_getln.c 2009-12-02 17:15:04.000000000 +0100
+--- src/ex_getln.c 2010-01-19 12:54:47.000000000 +0100
+***************
+*** 2193,2199 ****
+ {
+ if (ga_grow(&line_ga, 40) == FAIL)
+ break;
+- pend = (char_u *)line_ga.ga_data + line_ga.ga_len;
+
+ /* Get one character at a time. Don't use inchar(), it can't handle
+ * special characters. */
+--- 2193,2198 ----
+***************
+*** 3314,3320 ****
+ WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
+ |options, type);
+ vim_free(p1);
+! /* longest match: make sure it is not shorter (happens with :help */
+ if (p2 != NULL && type == WILD_LONGEST)
+ {
+ for (j = 0; j < xp->xp_pattern_len; ++j)
+--- 3313,3319 ----
+ WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
+ |options, type);
+ vim_free(p1);
+! /* longest match: make sure it is not shorter, happens with :help */
+ if (p2 != NULL && type == WILD_LONGEST)
+ {
+ for (j = 0; j < xp->xp_pattern_len; ++j)
+*** ../vim-7.2.332/src/fileio.c 2009-12-31 14:52:48.000000000 +0100
+--- src/fileio.c 2010-01-19 12:56:59.000000000 +0100
+***************
+*** 7072,7079 ****
+ */
+ for (i = 0; i < (int)(sizeof(tempdirs) / sizeof(char *)); ++i)
+ {
+- size_t itmplen;
+ # ifndef HAVE_MKDTEMP
+ long nr;
+ long off;
+ # endif
+--- 7072,7079 ----
+ */
+ for (i = 0; i < (int)(sizeof(tempdirs) / sizeof(char *)); ++i)
+ {
+ # ifndef HAVE_MKDTEMP
++ size_t itmplen;
+ long nr;
+ long off;
+ # endif
+***************
+*** 7091,7097 ****
+ else
+ # endif
+ add_pathsep(itmp);
+- itmplen = STRLEN(itmp);
+
+ # ifdef HAVE_MKDTEMP
+ /* Leave room for filename */
+--- 7091,7096 ----
+***************
+*** 7104,7109 ****
+--- 7103,7109 ----
+ * otherwise it doesn't matter. The use of mkdir() avoids any
+ * security problems because of the predictable number. */
+ nr = (mch_get_pid() + (long)time(NULL)) % 1000000L;
++ itmplen = STRLEN(itmp);
+
+ /* Try up to 10000 different values until we find a name that
+ * doesn't exist. */
+*** ../vim-7.2.332/src/if_cscope.c 2009-07-09 21:22:36.000000000 +0200
+--- src/if_cscope.c 2010-01-19 12:57:58.000000000 +0100
+***************
+*** 2069,2075 ****
+ continue;
+ (void)strcpy(tbuf, matches[idx]);
+
+! if ((fname = strtok(tbuf, (const char *)"\t")) == NULL)
+ continue;
+ if ((fname = strtok(NULL, (const char *)"\t")) == NULL)
+ continue;
+--- 2069,2075 ----
+ continue;
+ (void)strcpy(tbuf, matches[idx]);
+
+! if (strtok(tbuf, (const char *)"\t") == NULL)
+ continue;
+ if ((fname = strtok(NULL, (const char *)"\t")) == NULL)
+ continue;
+*** ../vim-7.2.332/src/netbeans.c 2009-09-11 14:19:41.000000000 +0200
+--- src/netbeans.c 2010-01-19 13:57:11.000000000 +0100
+***************
+*** 873,879 ****
+ {
+ #ifdef NBDEBUG
+ /*
+! * This happens because the ExtEd can send a cammand or 2 after
+ * doing a stopDocumentListen command. It doesn't harm anything
+ * so I'm disabling it except for debugging.
+ */
+--- 883,889 ----
+ {
+ #ifdef NBDEBUG
+ /*
+! * This happens because the ExtEd can send a command or 2 after
+ * doing a stopDocumentListen command. It doesn't harm anything
+ * so I'm disabling it except for debugging.
+ */
+***************
+*** 1174,1180 ****
+ break;
+ }
+ }
+! *q++ = '\0';
+
+ return buf;
+ }
+--- 1184,1190 ----
+ break;
+ }
+ }
+! *q = '\0';
+
+ return buf;
+ }
+***************
+*** 3070,3076 ****
+ }
+
+ /*
+! * Send netbeans an unmodufied command.
+ */
+ void
+ netbeans_unmodified(buf_T *bufp UNUSED)
+--- 3080,3086 ----
+ }
+
+ /*
+! * Send netbeans an unmodified command.
+ */
+ void
+ netbeans_unmodified(buf_T *bufp UNUSED)
+***************
+*** 3366,3372 ****
+
+
+ /*
+! * Add a sign of the reqested type at the requested location.
+ *
+ * Reverse engineering:
+ * Apparently an annotation is defined the first time it is used in a buffer.
+--- 3380,3386 ----
+
+
+ /*
+! * Add a sign of the requested type at the requested location.
+ *
+ * Reverse engineering:
+ * Apparently an annotation is defined the first time it is used in a buffer.
+*** ../vim-7.2.332/src/ops.c 2009-11-25 12:38:49.000000000 +0100
+--- src/ops.c 2010-01-19 13:04:46.000000000 +0100
+***************
+*** 5591,5603 ****
+ */
+ if (has_mbyte)
+ {
+- char_u *conv_str = str;
+ vimconv_T vc;
+
+ vc.vc_type = CONV_NONE;
+ if (convert_setup(&vc, p_enc, (char_u *)"latin1") == OK)
+ {
+! int intlen = len;
+
+ conv_str = string_convert(&vc, str, &intlen);
+ len = intlen;
+--- 5598,5610 ----
+ */
+ if (has_mbyte)
+ {
+ vimconv_T vc;
+
+ vc.vc_type = CONV_NONE;
+ if (convert_setup(&vc, p_enc, (char_u *)"latin1") == OK)
+ {
+! int intlen = len;
+! char_u *conv_str;
+
+ conv_str = string_convert(&vc, str, &intlen);
+ len = intlen;
+*** ../vim-7.2.332/src/quickfix.c 2009-06-24 17:31:27.000000000 +0200
+--- src/quickfix.c 2010-01-19 13:12:29.000000000 +0100
+***************
+*** 1899,1905 ****
+ int i;
+ int idx1 = 1;
+ int idx2 = -1;
+- int need_return = TRUE;
+ char_u *arg = eap->arg;
+ int all = eap->forceit; /* if not :cl!, only show
+ recognised errors */
+--- 1899,1904 ----
+***************
+*** 1939,1951 ****
+ {
+ if ((qfp->qf_valid || all) && idx1 <= i && i <= idx2)
+ {
+! if (need_return)
+! {
+! msg_putchar('\n');
+! if (got_int)
+! break;
+! need_return = FALSE;
+! }
+
+ fname = NULL;
+ if (qfp->qf_fnum != 0
+--- 1938,1946 ----
+ {
+ if ((qfp->qf_valid || all) && idx1 <= i && i <= idx2)
+ {
+! msg_putchar('\n');
+! if (got_int)
+! break;
+
+ fname = NULL;
+ if (qfp->qf_fnum != 0
+***************
+*** 1988,1994 ****
+ IObuff, IOSIZE);
+ msg_prt_line(IObuff, FALSE);
+ out_flush(); /* show one line at a time */
+- need_return = TRUE;
+ }
+
+ qfp = qfp->qf_next;
+--- 1983,1988 ----
+*** ../vim-7.2.332/src/syntax.c 2009-12-16 18:13:04.000000000 +0100
+--- src/syntax.c 2010-01-19 13:12:56.000000000 +0100
+***************
+*** 4167,4173 ****
+ if (!HASHITEM_EMPTY(hi))
+ {
+ --todo;
+- kp = HI2KE(hi);
+ for (kp = HI2KE(hi); kp != NULL; kp = kp_next)
+ {
+ kp_next = kp->ke_next;
+--- 4167,4172 ----
+*** ../vim-7.2.332/src/ui.c 2009-09-11 16:48:06.000000000 +0200
+--- src/ui.c 2010-01-19 13:14:04.000000000 +0100
+***************
+*** 2383,2389 ****
+ * 'enc' anyway. */
+ if (has_mbyte)
+ {
+! char_u *conv_buf = buffer;
+ vimconv_T vc;
+
+ vc.vc_type = CONV_NONE;
+--- 2383,2389 ----
+ * 'enc' anyway. */
+ if (has_mbyte)
+ {
+! char_u *conv_buf;
+ vimconv_T vc;
+
+ vc.vc_type = CONV_NONE;
+*** ../vim-7.2.332/src/version.c 2010-01-19 13:06:42.000000000 +0100
+--- src/version.c 2010-01-19 14:55:50.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 333,
+ /**/
+
+--
+An actual excerpt from a classified section of a city newspaper:
+"Illiterate? Write today for free help!"
+
+ /// 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/source/ap/vim/patches/7.2.334 b/source/ap/vim/patches/7.2.334
new file mode 100644
index 00000000..1b88bbd6
--- /dev/null
+++ b/source/ap/vim/patches/7.2.334
@@ -0,0 +1,347 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.334
+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.2.334
+Problem: Postponing keys in Netbeans interface does not work properly.
+Solution: Store the key string instead of the number. Avoid an infinite
+ loop. (Mostly by Xavier de Gaye)
+Files: src/netbeans.c, src/proto/netbeans.pro
+
+
+*** ../vim-7.2.333/src/netbeans.c 2010-01-19 14:59:14.000000000 +0100
+--- src/netbeans.c 2010-01-19 15:12:17.000000000 +0100
+***************
+*** 70,76 ****
+ static pos_T *off2pos __ARGS((buf_T *, long));
+ static pos_T *get_off_or_lnum __ARGS((buf_T *buf, char_u **argp));
+ static long get_buf_size __ARGS((buf_T *));
+! static void netbeans_keystring __ARGS((int key, char *keystr));
+ static void special_keys __ARGS((char_u *args));
+
+ static void netbeans_connect __ARGS((void));
+--- 70,77 ----
+ static pos_T *off2pos __ARGS((buf_T *, long));
+ static pos_T *get_off_or_lnum __ARGS((buf_T *buf, char_u **argp));
+ static long get_buf_size __ARGS((buf_T *));
+! static int netbeans_keystring __ARGS((char_u *keystr));
+! static void postpone_keycommand __ARGS((char_u *keystr));
+ static void special_keys __ARGS((char_u *args));
+
+ static void netbeans_connect __ARGS((void));
+***************
+*** 502,508 ****
+
+ struct keyqueue
+ {
+! int key;
+ struct keyqueue *next;
+ struct keyqueue *prev;
+ };
+--- 503,509 ----
+
+ struct keyqueue
+ {
+! char_u *keystr;
+ struct keyqueue *next;
+ struct keyqueue *prev;
+ };
+***************
+*** 514,526 ****
+
+ /*
+ * Queue up key commands sent from netbeans.
+ */
+ static void
+! postpone_keycommand(int key)
+ {
+ keyQ_T *node;
+
+ node = (keyQ_T *)alloc(sizeof(keyQ_T));
+
+ if (keyHead.next == NULL) /* initialize circular queue */
+ {
+--- 515,531 ----
+
+ /*
+ * Queue up key commands sent from netbeans.
++ * We store the string, because it may depend on the global mod_mask and
++ * :nbkey doesn't have a key number.
+ */
+ static void
+! postpone_keycommand(char_u *keystr)
+ {
+ keyQ_T *node;
+
+ node = (keyQ_T *)alloc(sizeof(keyQ_T));
++ if (node == NULL)
++ return; /* out of memory, drop the key */
+
+ if (keyHead.next == NULL) /* initialize circular queue */
+ {
+***************
+*** 534,540 ****
+ keyHead.prev->next = node;
+ keyHead.prev = node;
+
+! node->key = key;
+ }
+
+ /*
+--- 539,545 ----
+ keyHead.prev->next = node;
+ keyHead.prev = node;
+
+! node->keystr = vim_strsave(keystr);
+ }
+
+ /*
+***************
+*** 543,557 ****
+ static void
+ handle_key_queue(void)
+ {
+! while (keyHead.next && keyHead.next != &keyHead)
+ {
+ /* first, unlink the node */
+ keyQ_T *node = keyHead.next;
+ keyHead.next = node->next;
+ node->next->prev = node->prev;
+
+! /* now, send the keycommand */
+! netbeans_keycommand(node->key);
+
+ /* Finally, dispose of the node */
+ vim_free(node);
+--- 548,567 ----
+ static void
+ handle_key_queue(void)
+ {
+! int postponed = FALSE;
+!
+! while (!postponed && keyHead.next && keyHead.next != &keyHead)
+ {
+ /* first, unlink the node */
+ keyQ_T *node = keyHead.next;
+ keyHead.next = node->next;
+ node->next->prev = node->prev;
+
+! /* Now, send the keycommand. This may cause it to be postponed again
+! * and change keyHead. */
+! if (node->keystr != NULL)
+! postponed = !netbeans_keystring(node->keystr);
+! vim_free(node->keystr);
+
+ /* Finally, dispose of the node */
+ vim_free(node);
+***************
+*** 2495,2501 ****
+ }
+ else
+ {
+! nbdebug((" Buffer has no changes!\n"));
+ }
+ /* =====================================================================*/
+ }
+--- 2505,2511 ----
+ }
+ else
+ {
+! nbdebug((" Buffer has no changes!\n"));
+ }
+ /* =====================================================================*/
+ }
+***************
+*** 2658,2664 ****
+ ex_nbkey(eap)
+ exarg_T *eap;
+ {
+! netbeans_keystring(0, (char *)eap->arg);
+ }
+
+
+--- 2668,2674 ----
+ ex_nbkey(eap)
+ exarg_T *eap;
+ {
+! (void)netbeans_keystring(eap->arg);
+ }
+
+
+***************
+*** 2680,2686 ****
+ }
+
+ /*
+! * Convert key to netbeans name.
+ */
+ static void
+ netbeans_keyname(int key, char *buf)
+--- 2690,2696 ----
+ }
+
+ /*
+! * Convert key to netbeans name. This uses the global "mod_mask".
+ */
+ static void
+ netbeans_keyname(int key, char *buf)
+***************
+*** 3127,3149 ****
+ /*
+ * Send a keypress event back to netbeans. This usually simulates some
+ * kind of function key press. This function operates on a key code.
+ */
+! void
+ netbeans_keycommand(int key)
+ {
+ char keyName[60];
+
+ netbeans_keyname(key, keyName);
+! netbeans_keystring(key, keyName);
+ }
+
+
+ /*
+ * Send a keypress event back to netbeans. This usually simulates some
+ * kind of function key press. This function operates on a key string.
+ */
+! static void
+! netbeans_keystring(int key, char *keyName)
+ {
+ char buf[2*MAXPATHL];
+ int bufno = nb_getbufno(curbuf);
+--- 3137,3163 ----
+ /*
+ * Send a keypress event back to netbeans. This usually simulates some
+ * kind of function key press. This function operates on a key code.
++ * Return TRUE when the key was sent, FALSE when the command has been
++ * postponed.
+ */
+! int
+ netbeans_keycommand(int key)
+ {
+ char keyName[60];
+
+ netbeans_keyname(key, keyName);
+! return netbeans_keystring((char_u *)keyName);
+ }
+
+
+ /*
+ * Send a keypress event back to netbeans. This usually simulates some
+ * kind of function key press. This function operates on a key string.
++ * Return TRUE when the key was sent, FALSE when the command has been
++ * postponed.
+ */
+! static int
+! netbeans_keystring(char_u *keyName)
+ {
+ char buf[2*MAXPATHL];
+ int bufno = nb_getbufno(curbuf);
+***************
+*** 3151,3157 ****
+ char_u *q;
+
+ if (!haveConnection)
+! return;
+
+
+ if (bufno == -1)
+--- 3165,3171 ----
+ char_u *q;
+
+ if (!haveConnection)
+! return TRUE;
+
+
+ if (bufno == -1)
+***************
+*** 3160,3166 ****
+ q = curbuf->b_ffname == NULL ? (char_u *)""
+ : nb_quote(curbuf->b_ffname);
+ if (q == NULL)
+! return;
+ vim_snprintf(buf, sizeof(buf), "0:fileOpened=%d \"%s\" %s %s\n", 0,
+ q,
+ "T", /* open in NetBeans */
+--- 3174,3180 ----
+ q = curbuf->b_ffname == NULL ? (char_u *)""
+ : nb_quote(curbuf->b_ffname);
+ if (q == NULL)
+! return TRUE;
+ vim_snprintf(buf, sizeof(buf), "0:fileOpened=%d \"%s\" %s %s\n", 0,
+ q,
+ "T", /* open in NetBeans */
+***************
+*** 3170,3178 ****
+ nbdebug(("EVT: %s", buf));
+ nb_send(buf, "netbeans_keycommand");
+
+! if (key > 0)
+! postpone_keycommand(key);
+! return;
+ }
+
+ /* sync the cursor position */
+--- 3184,3191 ----
+ nbdebug(("EVT: %s", buf));
+ nb_send(buf, "netbeans_keycommand");
+
+! postpone_keycommand(keyName);
+! return FALSE;
+ }
+
+ /* sync the cursor position */
+***************
+*** 3198,3203 ****
+--- 3211,3217 ----
+ off, (long)curwin->w_cursor.lnum, (long)curwin->w_cursor.col);
+ nbdebug(("EVT: %s", buf));
+ nb_send(buf, "netbeans_keycommand");
++ return TRUE;
+ }
+
+
+*** ../vim-7.2.333/src/proto/netbeans.pro 2009-01-06 16:13:42.000000000 +0100
+--- src/proto/netbeans.pro 2010-01-19 13:31:01.000000000 +0100
+***************
+*** 16,22 ****
+ void netbeans_removed __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, long len));
+ void netbeans_unmodified __ARGS((buf_T *bufp));
+ void netbeans_button_release __ARGS((int button));
+! void netbeans_keycommand __ARGS((int key));
+ void netbeans_save_buffer __ARGS((buf_T *bufp));
+ void netbeans_deleted_all_lines __ARGS((buf_T *bufp));
+ int netbeans_is_guarded __ARGS((linenr_T top, linenr_T bot));
+--- 16,22 ----
+ void netbeans_removed __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, long len));
+ void netbeans_unmodified __ARGS((buf_T *bufp));
+ void netbeans_button_release __ARGS((int button));
+! int netbeans_keycommand __ARGS((int key));
+ void netbeans_save_buffer __ARGS((buf_T *bufp));
+ void netbeans_deleted_all_lines __ARGS((buf_T *bufp));
+ int netbeans_is_guarded __ARGS((linenr_T top, linenr_T bot));
+*** ../vim-7.2.333/src/version.c 2010-01-19 14:59:14.000000000 +0100
+--- src/version.c 2010-01-19 15:08:44.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 334,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+119. You are reading a book and look for the scroll bar to get to
+ the next page.
+
+ /// 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/source/ap/vim/patches/7.2.335 b/source/ap/vim/patches/7.2.335
new file mode 100644
index 00000000..df7f641c
--- /dev/null
+++ b/source/ap/vim/patches/7.2.335
@@ -0,0 +1,103 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.335
+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.2.335
+Problem: The CTRL-] command escapes too many characters.
+Solution: Use a different list of characters to be escaped. (Sergey Khorev)
+Files: src/normal.c
+
+
+*** ../vim-7.2.334/src/normal.c 2010-01-12 15:42:03.000000000 +0100
+--- src/normal.c 2010-01-19 15:20:11.000000000 +0100
+***************
+*** 5406,5411 ****
+--- 5406,5412 ----
+ int n = 0; /* init for GCC */
+ int cmdchar;
+ int g_cmd; /* "g" command */
++ int tag_cmd = FALSE;
+ char_u *aux_ptr;
+ int isman;
+ int isman_s;
+***************
+*** 5515,5520 ****
+--- 5516,5522 ----
+ break;
+
+ case ']':
++ tag_cmd = TRUE;
+ #ifdef FEAT_CSCOPE
+ if (p_cst)
+ STRCPY(buf, "cstag ");
+***************
+*** 5526,5535 ****
+ default:
+ if (curbuf->b_help)
+ STRCPY(buf, "he! ");
+- else if (g_cmd)
+- STRCPY(buf, "tj ");
+ else
+! sprintf((char *)buf, "%ldta ", cap->count0);
+ }
+
+ /*
+--- 5528,5541 ----
+ default:
+ if (curbuf->b_help)
+ STRCPY(buf, "he! ");
+ else
+! {
+! tag_cmd = TRUE;
+! if (g_cmd)
+! STRCPY(buf, "tj ");
+! else
+! sprintf((char *)buf, "%ldta ", cap->count0);
+! }
+ }
+
+ /*
+***************
+*** 5562,5569 ****
+ 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);
+--- 5568,5577 ----
+ aux_ptr = (char_u *)(p_magic ? "/.*~[^$\\" : "/^$\\");
+ else if (cmdchar == '#')
+ aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
+! else if (tag_cmd)
+ /* Don't escape spaces and Tabs in a tag with a backslash */
++ aux_ptr = (char_u *)"\\|\"\n[";
++ else
+ aux_ptr = (char_u *)"\\|\"\n*?[";
+
+ p = buf + STRLEN(buf);
+*** ../vim-7.2.334/src/version.c 2010-01-19 15:12:33.000000000 +0100
+--- src/version.c 2010-01-19 15:22:44.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 335,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+120. You ask a friend, "What's that big shiny thing?" He says, "It's the sun."
+
+ /// 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/source/ap/vim/patches/7.2.336 b/source/ap/vim/patches/7.2.336
new file mode 100644
index 00000000..a6765922
--- /dev/null
+++ b/source/ap/vim/patches/7.2.336
@@ -0,0 +1,841 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.336
+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.2.336
+Problem: MzScheme interface can't evaluate an expression.
+Solution: Add mzeval(). (Sergey Khorev)
+Files: runtime/doc/eval.txt, runtime/doc/if_mzsch.txt,
+ runtime/doc/usr_41.txt, src/eval.c, src/if_mzsch.c,
+ src/proto/eval.pro, src/proto/if_mzsch.pro,
+ src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
+ src/testdir/Makefile, src/testdir/main.aap, src/testdir/test1.in,
+ src/testdir/test70.in, src/testdir/test70.ok
+
+
+*** ../vim-7.2.335/runtime/doc/eval.txt 2009-11-17 12:20:30.000000000 +0100
+--- runtime/doc/eval.txt 2010-01-19 15:30:50.000000000 +0100
+***************
+*** 1815,1825 ****
+ List match and submatches of {pat} in {expr}
+ matchstr( {expr}, {pat}[, {start}[, {count}]])
+ String {count}'th match of {pat} in {expr}
+! max({list}) Number maximum value of items in {list}
+! min({list}) Number minimum value of items in {list}
+! mkdir({name} [, {path} [, {prot}]])
+ Number create directory {name}
+ mode( [expr]) String current editing mode
+ nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
+ nr2char( {expr}) String single char with ASCII value {expr}
+ pathshorten( {expr}) String shorten directory names in a path
+--- 1821,1832 ----
+ List match and submatches of {pat} in {expr}
+ matchstr( {expr}, {pat}[, {start}[, {count}]])
+ String {count}'th match of {pat} in {expr}
+! max( {list}) Number maximum value of items in {list}
+! min( {list}) Number minimum value of items in {list}
+! mkdir( {name} [, {path} [, {prot}]])
+ Number create directory {name}
+ mode( [expr]) String current editing mode
++ mzeval( {expr}) any evaluate |MzScheme| expression
+ nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
+ nr2char( {expr}) String single char with ASCII value {expr}
+ pathshorten( {expr}) String shorten directory names in a path
+***************
+*** 4090,4095 ****
+--- 4103,4125 ----
+ "c" or "n".
+ Also see |visualmode()|.
+
++ mzeval({expr}) *mzeval()*
++ Evaluate MzScheme expression {expr} and return its result
++ convert to Vim data structures.
++ Numbers and strings are returned as they are.
++ Pairs (including lists and improper lists) and vectors are
++ returned as Vim |Lists|.
++ Hash tables are represented as Vim |Dictionary| type with keys
++ converted to strings.
++ All other types are converted to string with display function.
++ Examples: >
++ :mz (define l (list 1 2 3))
++ :mz (define h (make-hash)) (hash-set! h "list" l)
++ :echo mzeval("l")
++ :echo mzeval("h")
++ <
++ {only available when compiled with the |+mzscheme| feature}
++
+ nextnonblank({lnum}) *nextnonblank()*
+ Return the line number of the first line at or below {lnum}
+ that is not blank. Example: >
+*** ../vim-7.2.335/runtime/doc/if_mzsch.txt 2009-06-24 17:51:01.000000000 +0200
+--- runtime/doc/if_mzsch.txt 2010-01-19 15:33:00.000000000 +0100
+***************
+*** 1,4 ****
+! *if_mzsch.txt* For Vim version 7.2. Last change: 2009 Jun 24
+
+
+ VIM REFERENCE MANUAL by Sergey Khorev
+--- 1,4 ----
+! *if_mzsch.txt* For Vim version 7.2. Last change: 2010 Jan 19
+
+
+ VIM REFERENCE MANUAL by Sergey Khorev
+***************
+*** 9,16 ****
+ 1. Commands |mzscheme-commands|
+ 2. Examples |mzscheme-examples|
+ 3. Threads |mzscheme-threads|
+! 4. The Vim access procedures |mzscheme-vim|
+! 5. Dynamic loading |mzscheme-dynamic|
+
+ {Vi does not have any of these commands}
+
+--- 9,17 ----
+ 1. Commands |mzscheme-commands|
+ 2. Examples |mzscheme-examples|
+ 3. Threads |mzscheme-threads|
+! 4. Vim access from MzScheme |mzscheme-vim|
+! 5. mzeval() Vim function |mzscheme-mzeval|
+! 6. Dynamic loading |mzscheme-dynamic|
+
+ {Vi does not have any of these commands}
+
+***************
+*** 142,148 ****
+ GUI version.
+
+ ==============================================================================
+! 5. VIM Functions *mzscheme-vim*
+
+ *mzscheme-vimext*
+ The 'vimext' module provides access to procedures defined in the MzScheme
+--- 143,149 ----
+ GUI version.
+
+ ==============================================================================
+! 4. Vim access from MzScheme *mzscheme-vim*
+
+ *mzscheme-vimext*
+ The 'vimext' module provides access to procedures defined in the MzScheme
+***************
+*** 231,237 ****
+ (set-cursor (line . col) [window]) Set cursor position.
+
+ ==============================================================================
+! 5. Dynamic loading *mzscheme-dynamic* *E815*
+
+ On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
+ output then includes |+mzscheme/dyn|.
+--- 232,244 ----
+ (set-cursor (line . col) [window]) Set cursor position.
+
+ ==============================================================================
+! 5. mzeval() Vim function *mzscheme-mzeval*
+!
+! To facilitate bi-directional interface, you can use |mzeval| function to
+! evaluate MzScheme expressions and pass their values to VimL.
+!
+! ==============================================================================
+! 6. Dynamic loading *mzscheme-dynamic* *E815*
+
+ On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
+ output then includes |+mzscheme/dyn|.
+*** ../vim-7.2.335/runtime/doc/usr_41.txt 2008-08-09 19:36:54.000000000 +0200
+--- runtime/doc/usr_41.txt 2010-01-19 15:29:01.000000000 +0100
+***************
+*** 868,873 ****
+--- 868,875 ----
+ taglist() get list of matching tags
+ tagfiles() get a list of tags files
+
++ mzeval() evaluate |MzScheme| expression
++
+ ==============================================================================
+ *41.7* Defining a function
+
+*** ../vim-7.2.335/src/eval.c 2010-01-19 12:46:51.000000000 +0100
+--- src/eval.c 2010-01-19 15:48:12.000000000 +0100
+***************
+*** 433,439 ****
+ static long list_find_nr __ARGS((list_T *l, long idx, int *errorp));
+ static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
+ static void list_append __ARGS((list_T *l, listitem_T *item));
+- static int list_append_tv __ARGS((list_T *l, typval_T *tv));
+ static int list_append_number __ARGS((list_T *l, varnumber_T n));
+ static int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item));
+ static int list_extend __ARGS((list_T *l1, list_T *l2, listitem_T *bef));
+--- 433,438 ----
+***************
+*** 448,459 ****
+ static void set_ref_in_item __ARGS((typval_T *tv, int copyID));
+ static void dict_unref __ARGS((dict_T *d));
+ static void dict_free __ARGS((dict_T *d, int recurse));
+- static dictitem_T *dictitem_alloc __ARGS((char_u *key));
+ static dictitem_T *dictitem_copy __ARGS((dictitem_T *org));
+ static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item));
+- static void dictitem_free __ARGS((dictitem_T *item));
+ static dict_T *dict_copy __ARGS((dict_T *orig, int deep, int copyID));
+- static int dict_add __ARGS((dict_T *d, dictitem_T *item));
+ static long dict_len __ARGS((dict_T *d));
+ static dictitem_T *dict_find __ARGS((dict_T *d, char_u *key, int len));
+ static char_u *dict2string __ARGS((typval_T *tv, int copyID));
+--- 447,455 ----
+***************
+*** 628,633 ****
+--- 624,632 ----
+ static void f_mkdir __ARGS((typval_T *argvars, typval_T *rettv));
+ #endif
+ static void f_mode __ARGS((typval_T *argvars, typval_T *rettv));
++ #ifdef FEAT_MZSCHEME
++ static void f_mzeval __ARGS((typval_T *argvars, typval_T *rettv));
++ #endif
+ static void f_nextnonblank __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_nr2char __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_pathshorten __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 764,770 ****
+ static int var_check_ro __ARGS((int flags, char_u *name));
+ static int var_check_fixed __ARGS((int flags, char_u *name));
+ static int tv_check_lock __ARGS((int lock, char_u *name));
+- static void copy_tv __ARGS((typval_T *from, typval_T *to));
+ static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID));
+ static char_u *find_option_end __ARGS((char_u **arg, int *opt_flags));
+ static char_u *trans_function_name __ARGS((char_u **pp, int skip, int flags, funcdict_T *fd));
+--- 763,768 ----
+***************
+*** 6155,6161 ****
+ * Append typval_T "tv" to the end of list "l".
+ * Return FAIL when out of memory.
+ */
+! static int
+ list_append_tv(l, tv)
+ list_T *l;
+ typval_T *tv;
+--- 6153,6159 ----
+ * Append typval_T "tv" to the end of list "l".
+ * Return FAIL when out of memory.
+ */
+! int
+ list_append_tv(l, tv)
+ list_T *l;
+ typval_T *tv;
+***************
+*** 6812,6818 ****
+ * Note that the value of the item "di_tv" still needs to be initialized!
+ * Returns NULL when out of memory.
+ */
+! static dictitem_T *
+ dictitem_alloc(key)
+ char_u *key;
+ {
+--- 6810,6816 ----
+ * Note that the value of the item "di_tv" still needs to be initialized!
+ * Returns NULL when out of memory.
+ */
+! dictitem_T *
+ dictitem_alloc(key)
+ char_u *key;
+ {
+***************
+*** 6868,6874 ****
+ /*
+ * Free a dict item. Also clears the value.
+ */
+! static void
+ dictitem_free(item)
+ dictitem_T *item;
+ {
+--- 6866,6872 ----
+ /*
+ * Free a dict item. Also clears the value.
+ */
+! void
+ dictitem_free(item)
+ dictitem_T *item;
+ {
+***************
+*** 6948,6954 ****
+ * Add item "item" to Dictionary "d".
+ * Returns FAIL when out of memory and when key already existed.
+ */
+! static int
+ dict_add(d, item)
+ dict_T *d;
+ dictitem_T *item;
+--- 6946,6952 ----
+ * Add item "item" to Dictionary "d".
+ * Returns FAIL when out of memory and when key already existed.
+ */
+! int
+ dict_add(d, item)
+ dict_T *d;
+ dictitem_T *item;
+***************
+*** 7699,7704 ****
+--- 7697,7705 ----
+ {"mkdir", 1, 3, f_mkdir},
+ #endif
+ {"mode", 0, 1, f_mode},
++ #ifdef FEAT_MZSCHEME
++ {"mzeval", 1, 1, f_mzeval},
++ #endif
+ {"nextnonblank", 1, 1, f_nextnonblank},
+ {"nr2char", 1, 1, f_nr2char},
+ {"pathshorten", 1, 1, f_pathshorten},
+***************
+*** 13591,13596 ****
+--- 13592,13614 ----
+ rettv->v_type = VAR_STRING;
+ }
+
++ #ifdef FEAT_MZSCHEME
++ /*
++ * "mzeval()" function
++ */
++ static void
++ f_mzeval(argvars, rettv)
++ typval_T *argvars;
++ typval_T *rettv;
++ {
++ char_u *str;
++ char_u buf[NUMBUFLEN];
++
++ str = get_tv_string_buf(&argvars[0], buf);
++ do_mzeval(str, rettv);
++ }
++ #endif
++
+ /*
+ * "nextnonblank()" function
+ */
+***************
+*** 19274,19280 ****
+ * It is OK for "from" and "to" to point to the same item. This is used to
+ * make a copy later.
+ */
+! static void
+ copy_tv(from, to)
+ typval_T *from;
+ typval_T *to;
+--- 19292,19298 ----
+ * It is OK for "from" and "to" to point to the same item. This is used to
+ * make a copy later.
+ */
+! void
+ copy_tv(from, to)
+ typval_T *from;
+ typval_T *to;
+*** ../vim-7.2.335/src/if_mzsch.c 2009-12-16 19:02:05.000000000 +0100
+--- src/if_mzsch.c 2010-01-19 15:43:05.000000000 +0100
+***************
+*** 170,175 ****
+--- 170,177 ----
+ #ifdef FEAT_EVAL
+ static Scheme_Object *vim_to_mzscheme(typval_T *vim_value, int depth,
+ Scheme_Hash_Table *visited);
++ static int mzscheme_to_vim(Scheme_Object *obj, typval_T *tv, int depth,
++ Scheme_Hash_Table *visited);
+ #endif
+
+ #ifdef MZ_PRECISE_GC
+***************
+*** 2733,2738 ****
+--- 2735,2959 ----
+ MZ_GC_UNREG();
+ return result;
+ }
++
++ static int
++ mzscheme_to_vim(Scheme_Object *obj, typval_T *tv, int depth,
++ Scheme_Hash_Table *visited)
++ {
++ int status = OK;
++ typval_T *found;
++ MZ_GC_CHECK();
++ if (depth > 100) /* limit the deepest recursion level */
++ {
++ tv->v_type = VAR_NUMBER;
++ tv->vval.v_number = 0;
++ return FAIL;
++ }
++
++ found = (typval_T *)scheme_hash_get(visited, obj);
++ if (found != NULL)
++ copy_tv(found, tv);
++ else if (SCHEME_VOIDP(obj))
++ {
++ tv->v_type = VAR_NUMBER;
++ tv->vval.v_number = 0;
++ }
++ else if (SCHEME_INTP(obj))
++ {
++ tv->v_type = VAR_NUMBER;
++ tv->vval.v_number = SCHEME_INT_VAL(obj);
++ }
++ else if (SCHEME_BOOLP(obj))
++ {
++ tv->v_type = VAR_NUMBER;
++ tv->vval.v_number = SCHEME_TRUEP(obj);
++ }
++ # ifdef FEAT_FLOAT
++ else if (SCHEME_DBLP(obj))
++ {
++ tv->v_type = VAR_FLOAT;
++ tv->vval.v_float = SCHEME_DBL_VAL(obj);
++ }
++ # endif
++ else if (SCHEME_STRINGP(obj))
++ {
++ tv->v_type = VAR_STRING;
++ tv->vval.v_string = vim_strsave((char_u *)SCHEME_STR_VAL(obj));
++ }
++ else if (SCHEME_VECTORP(obj) || SCHEME_NULLP(obj)
++ || SCHEME_PAIRP(obj) || SCHEME_MUTABLE_PAIRP(obj))
++ {
++ list_T *list = list_alloc();
++ if (list == NULL)
++ status = FAIL;
++ else
++ {
++ int i;
++ Scheme_Object *curr = NULL;
++ Scheme_Object *cval = NULL;
++ /* temporary var to hold current element of vectors and pairs */
++ typval_T *v;
++
++ MZ_GC_DECL_REG(2);
++ MZ_GC_VAR_IN_REG(0, curr);
++ MZ_GC_VAR_IN_REG(1, cval);
++ MZ_GC_REG();
++
++ tv->v_type = VAR_LIST;
++ tv->vval.v_list = list;
++ ++list->lv_refcount;
++
++ v = (typval_T *)alloc(sizeof(typval_T));
++ if (v == NULL)
++ status = FAIL;
++ else
++ {
++ /* add the value in advance to allow handling of self-referencial
++ * data structures */
++ typval_T *visited_tv = (typval_T *)alloc(sizeof(typval_T));
++ copy_tv(tv, visited_tv);
++ scheme_hash_set(visited, obj, (Scheme_Object *)visited_tv);
++
++ if (SCHEME_VECTORP(obj))
++ {
++ for (i = 0; i < SCHEME_VEC_SIZE(obj); ++i)
++ {
++ cval = SCHEME_VEC_ELS(obj)[i];
++ status = mzscheme_to_vim(cval, v, depth + 1, visited);
++ if (status == FAIL)
++ break;
++ status = list_append_tv(list, v);
++ clear_tv(v);
++ if (status == FAIL)
++ break;
++ }
++ }
++ else if (SCHEME_PAIRP(obj) || SCHEME_MUTABLE_PAIRP(obj))
++ {
++ for (curr = obj;
++ SCHEME_PAIRP(curr) || SCHEME_MUTABLE_PAIRP(curr);
++ curr = SCHEME_CDR(curr))
++ {
++ cval = SCHEME_CAR(curr);
++ status = mzscheme_to_vim(cval, v, depth + 1, visited);
++ if (status == FAIL)
++ break;
++ status = list_append_tv(list, v);
++ clear_tv(v);
++ if (status == FAIL)
++ break;
++ }
++ /* impoper list not terminated with null
++ * need to handle the last element */
++ if (status == OK && !SCHEME_NULLP(curr))
++ {
++ status = mzscheme_to_vim(cval, v, depth + 1, visited);
++ if (status == OK)
++ {
++ status = list_append_tv(list, v);
++ clear_tv(v);
++ }
++ }
++ }
++ /* nothing to do for scheme_null */
++ vim_free(v);
++ }
++ MZ_GC_UNREG();
++ }
++ }
++ else if (SCHEME_HASHTP(obj))
++ {
++ int i;
++ dict_T *dict;
++ Scheme_Object *key = NULL;
++ Scheme_Object *val = NULL;
++
++ MZ_GC_DECL_REG(2);
++ MZ_GC_VAR_IN_REG(0, key);
++ MZ_GC_VAR_IN_REG(1, val);
++ MZ_GC_REG();
++
++ dict = dict_alloc();
++ if (dict == NULL)
++ status = FAIL;
++ else
++ {
++ typval_T *visited_tv = (typval_T *)alloc(sizeof(typval_T));
++
++ tv->v_type = VAR_DICT;
++ tv->vval.v_dict = dict;
++ ++dict->dv_refcount;
++
++ copy_tv(tv, visited_tv);
++ scheme_hash_set(visited, obj, (Scheme_Object *)visited_tv);
++
++ for (i = 0; i < ((Scheme_Hash_Table *)obj)->size; ++i)
++ {
++ if (((Scheme_Hash_Table *) obj)->vals[i] != NULL)
++ {
++ /* generate item for `diplay'ed Scheme key */
++ dictitem_T *item = dictitem_alloc((char_u *)string_to_line(
++ ((Scheme_Hash_Table *) obj)->keys[i]));
++ /* convert Scheme val to Vim and add it to the dict */
++ if (mzscheme_to_vim(((Scheme_Hash_Table *) obj)->vals[i],
++ &item->di_tv, depth + 1, visited) == FAIL
++ || dict_add(dict, item) == FAIL)
++ {
++ dictitem_free(item);
++ status = FAIL;
++ break;
++ }
++ }
++
++ }
++ }
++ MZ_GC_UNREG();
++ }
++ else
++ {
++ /* `display' any other value to string */
++ tv->v_type = VAR_STRING;
++ tv->vval.v_string = (char_u *)string_to_line(obj);
++ }
++ return status;
++ }
++
++ void
++ do_mzeval(char_u *str, typval_T *rettv)
++ {
++ int i;
++ Scheme_Object *ret = NULL;
++ Scheme_Hash_Table *visited = NULL;
++
++ MZ_GC_DECL_REG(2);
++ MZ_GC_VAR_IN_REG(0, ret);
++ MZ_GC_VAR_IN_REG(0, visited);
++ MZ_GC_REG();
++
++ if (mzscheme_init())
++ {
++ MZ_GC_UNREG();
++ return;
++ }
++
++ MZ_GC_CHECK();
++ visited = scheme_make_hash_table(SCHEME_hash_ptr);
++ MZ_GC_CHECK();
++
++ if (eval_with_exn_handling(str, do_eval, &ret) == OK)
++ mzscheme_to_vim(ret, rettv, 1, visited);
++
++ for (i = 0; i < visited->size; ++i)
++ {
++ /* free up remembered objects */
++ if (visited->vals[i] != NULL)
++ {
++ free_tv((typval_T *)visited->vals[i]);
++ }
++ }
++
++ MZ_GC_UNREG();
++ }
+ #endif
+
+ /*
+*** ../vim-7.2.335/src/proto/eval.pro 2009-09-30 15:15:33.000000000 +0200
+--- src/proto/eval.pro 2010-01-19 15:45:39.000000000 +0100
+***************
+*** 47,56 ****
+--- 47,60 ----
+ void list_free __ARGS((list_T *l, int recurse));
+ dictitem_T *dict_lookup __ARGS((hashitem_T *hi));
+ char_u *list_find_str __ARGS((list_T *l, long idx));
++ int list_append_tv __ARGS((list_T *l, typval_T *tv));
+ int list_append_dict __ARGS((list_T *list, dict_T *dict));
+ int list_append_string __ARGS((list_T *l, char_u *str, int len));
+ int garbage_collect __ARGS((void));
+ dict_T *dict_alloc __ARGS((void));
++ dictitem_T *dictitem_alloc __ARGS((char_u *key));
++ void dictitem_free __ARGS((dictitem_T *item));
++ int dict_add __ARGS((dict_T *d, dictitem_T *item));
+ int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str));
+ char_u *get_dict_string __ARGS((dict_T *d, char_u *key, int save));
+ long get_dict_number __ARGS((dict_T *d, char_u *key));
+***************
+*** 77,82 ****
+--- 81,87 ----
+ void new_script_vars __ARGS((scid_T id));
+ void init_var_dict __ARGS((dict_T *dict, dictitem_T *dict_var));
+ void vars_clear __ARGS((hashtab_T *ht));
++ void copy_tv __ARGS((typval_T *from, typval_T *to));
+ void ex_echo __ARGS((exarg_T *eap));
+ void ex_echohl __ARGS((exarg_T *eap));
+ void ex_execute __ARGS((exarg_T *eap));
+*** ../vim-7.2.335/src/proto/if_mzsch.pro 2009-12-16 19:02:05.000000000 +0100
+--- src/proto/if_mzsch.pro 2010-01-19 15:29:01.000000000 +0100
+***************
+*** 15,18 ****
+--- 15,19 ----
+ void *mzvim_eval_string __ARGS((char_u *str));
+ int mzthreads_allowed __ARGS((void));
+ void mzscheme_main __ARGS((void));
++ void do_mzeval __ARGS((char_u *str, typval_T *rettv));
+ /* vim: set ft=c : */
+*** ../vim-7.2.335/src/testdir/Make_dos.mak 2009-11-17 17:57:10.000000000 +0100
+--- src/testdir/Make_dos.mak 2010-01-19 15:43:48.000000000 +0100
+***************
+*** 29,35 ****
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out
+
+! SCRIPTS32 = test50.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 29,35 ----
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out
+
+! SCRIPTS32 = test50.out test70.out
+
+ SCRIPTS_GUI = test16.out
+
+*** ../vim-7.2.335/src/testdir/Make_ming.mak 2009-11-17 17:57:10.000000000 +0100
+--- src/testdir/Make_ming.mak 2010-01-19 15:29:01.000000000 +0100
+***************
+*** 48,54 ****
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out
+
+! SCRIPTS32 = test50.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 48,54 ----
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out
+
+! SCRIPTS32 = test50.out test70.out
+
+ SCRIPTS_GUI = test16.out
+
+***************
+*** 78,83 ****
+--- 78,84 ----
+ -$(DEL) small.vim
+ -$(DEL) tiny.vim
+ -$(DEL) mbyte.vim
++ -$(DEL) mzscheme.vim
+ -$(DEL) X*
+ -$(DEL) viminfo
+
+*** ../vim-7.2.335/src/testdir/Makefile 2009-11-17 17:40:34.000000000 +0100
+--- src/testdir/Makefile 2010-01-19 15:29:01.000000000 +0100
+***************
+*** 23,29 ****
+ test54.out test55.out test56.out test57.out test58.out \
+ test59.out test60.out test61.out test62.out test63.out \
+ test64.out test65.out test66.out test67.out test68.out \
+! test69.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 23,29 ----
+ test54.out test55.out test56.out test57.out test58.out \
+ test59.out test60.out test61.out test62.out test63.out \
+ test64.out test65.out test66.out test67.out test68.out \
+! test69.out test70.out
+
+ SCRIPTS_GUI = test16.out
+
+***************
+*** 44,53 ****
+ $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
+
+ clean:
+! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim test.ok X* valgrind.pid* viminfo
+
+ test1.out: test1.in
+! -rm -f $*.failed tiny.vim small.vim mbyte.vim test.ok X* viminfo
+ $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
+ @/bin/sh -c "if diff test.out $*.ok; \
+ then mv -f test.out $*.out; \
+--- 44,53 ----
+ $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
+
+ clean:
+! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.pid* viminfo
+
+ test1.out: test1.in
+! -rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* viminfo
+ $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
+ @/bin/sh -c "if diff test.out $*.ok; \
+ then mv -f test.out $*.out; \
+*** ../vim-7.2.335/src/testdir/main.aap 2004-06-13 21:05:31.000000000 +0200
+--- src/testdir/main.aap 2010-01-19 15:29:01.000000000 +0100
+***************
+*** 32,42 ****
+ $Scripts $ScriptsGUI: $VimProg
+
+ clean:
+! :del {r}{force} *.out test.log tiny.vim small.vim mbyte.vim test.ok X*
+
+ # test1 is special, it checks for features
+ test1.out: test1.in
+! :del {force} test1.failed tiny.vim small.vim mbyte.vim
+ :sys {i} $VimProg -u unix.vim -U NONE --noplugin -s dotest.in test1.in
+ @if os.system("diff test.out test1.ok") != 0:
+ :error test1 FAILED - Something basic is wrong
+--- 32,42 ----
+ $Scripts $ScriptsGUI: $VimProg
+
+ clean:
+! :del {r}{force} *.out test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X*
+
+ # test1 is special, it checks for features
+ test1.out: test1.in
+! :del {force} test1.failed tiny.vim small.vim mbyte.vim mzscheme.vim
+ :sys {i} $VimProg -u unix.vim -U NONE --noplugin -s dotest.in test1.in
+ @if os.system("diff test.out test1.ok") != 0:
+ :error test1 FAILED - Something basic is wrong
+*** ../vim-7.2.335/src/testdir/test1.in 2004-06-13 20:19:23.000000000 +0200
+--- src/testdir/test1.in 2010-01-19 15:38:44.000000000 +0100
+***************
+*** 13,18 ****
+--- 13,19 ----
+
+ If Vim was not compiled with the +multi_byte feature, the mbyte.vim script will be set like small.vim above. mbyte.vim is sourced by tests that require the
+ +multi_byte feature.
++ Similar logic is applied to the +mzscheme feature, using mzscheme.vim.
+
+ STARTTEST
+ :" Write a single line to test.out to check if testing works at all.
+***************
+*** 25,32 ****
+--- 26,36 ----
+ w! test.out
+ qa!
+ :w! mbyte.vim
++ :w! mzscheme.vim
+ :" If +multi_byte feature supported, make mbyte.vim empty.
+ :if has("multi_byte") | sp another | w! mbyte.vim | q | endif
++ :" If +mzscheme feature supported, make mzscheme.vim empty.
++ :if has("mzscheme") | sp another | w! mzscheme.vim | q | endif
+ :" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
+ :" Otherwise write small.vim to skip the test.
+ :if 1 | q! | endif
+*** ../vim-7.2.335/src/testdir/test70.in 2010-01-19 15:47:24.000000000 +0100
+--- src/testdir/test70.in 2010-01-19 15:29:01.000000000 +0100
+***************
+*** 0 ****
+--- 1,53 ----
++ Smoke test for MzScheme interface and mzeval() function
++
++ STARTTEST
++ :so mzscheme.vim
++ :set nocompatible viminfo+=nviminfo
++ :function! MzRequire()
++ :redir => l:mzversion
++ :mz (version)
++ :redir END
++ :if strpart(l:mzversion, 1, 1) < "4"
++ :" MzScheme versions < 4.x:
++ :mz (require (prefix vim- vimext))
++ :else
++ :" newer versions:
++ :mz (require (prefix-in vim- 'vimext))
++ :mz (require r5rs)
++ :endif
++ :endfunction
++ :silent call MzRequire()
++ :mz (define l '("item0" "dictionary with list OK" "item2"))
++ :mz (define h (make-hash))
++ :mz (hash-set! h "list" l)
++ /^1
++ :" change buffer contents
++ :mz (vim-set-buff-line (vim-eval "line('.')") "1 changed line 1")
++ :" scalar test
++ :let tmp_string = mzeval('"string"')
++ :let tmp_1000 = mzeval('1000')
++ :if tmp_string . tmp_1000 == "string1000"
++ :let scalar_res = "OK"
++ :else
++ :let scalar_res = "FAILED"
++ :endif
++ :call append(search("^1"), "scalar test " . scalar_res)
++ :" dictionary containing a list
++ :let tmp = mzeval("h")["list"][1]
++ :/^2/put =tmp
++ :" circular list (at the same time test lists containing lists)
++ :mz (set-car! (cddr l) l)
++ :let l2 = mzeval("h")["list"]
++ :if l2[2] == l2
++ :let res = "OK"
++ :else
++ :let res = "FAILED"
++ :endif
++ :call setline(search("^3"), "circular test " . res)
++ :?^1?,$w! test.out
++ :qa!
++ ENDTEST
++
++ 1 line 1
++ 2 line 2
++ 3 line 3
+*** ../vim-7.2.335/src/testdir/test70.ok 2010-01-19 15:47:24.000000000 +0100
+--- src/testdir/test70.ok 2010-01-19 15:29:01.000000000 +0100
+***************
+*** 0 ****
+--- 1,5 ----
++ 1 changed line 1
++ scalar test OK
++ 2 line 2
++ dictionary with list OK
++ circular test OK
+*** ../vim-7.2.335/src/version.c 2010-01-19 15:23:38.000000000 +0100
+--- src/version.c 2010-01-19 15:46:44.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 336,
+ /**/
+
+--
+"Computers in the future may weigh no more than 1.5 tons."
+ Popular Mechanics, 1949
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.2.337 b/source/ap/vim/patches/7.2.337
new file mode 100644
index 00000000..e7452854
--- /dev/null
+++ b/source/ap/vim/patches/7.2.337
@@ -0,0 +1,112 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.337
+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.2.337
+Problem: The :compiler command doesn't function properly when invoked in a
+ function.
+Solution: Add "g:" before "current_compiler". (Yukihiro Nakadaira)
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.2.336/src/ex_cmds2.c 2009-05-16 21:16:12.000000000 +0200
+--- src/ex_cmds2.c 2010-01-19 16:02:53.000000000 +0100
+***************
+*** 2496,2509 ****
+ * To remain backwards compatible "current_compiler" is always
+ * used. A user's compiler plugin may set it, the distributed
+ * plugin will then skip the settings. Afterwards set
+! * "b:current_compiler" and restore "current_compiler". */
+! old_cur_comp = get_var_value((char_u *)"current_compiler");
+ if (old_cur_comp != NULL)
+ old_cur_comp = vim_strsave(old_cur_comp);
+ do_cmdline_cmd((char_u *)
+ "command -nargs=* CompilerSet setlocal <args>");
+ }
+! do_unlet((char_u *)"current_compiler", TRUE);
+ do_unlet((char_u *)"b:current_compiler", TRUE);
+
+ sprintf((char *)buf, "compiler/%s.vim", eap->arg);
+--- 2496,2510 ----
+ * To remain backwards compatible "current_compiler" is always
+ * used. A user's compiler plugin may set it, the distributed
+ * plugin will then skip the settings. Afterwards set
+! * "b:current_compiler" and restore "current_compiler".
+! * Explicitly prepend "g:" to make it work in a function. */
+! old_cur_comp = get_var_value((char_u *)"g:current_compiler");
+ if (old_cur_comp != NULL)
+ old_cur_comp = vim_strsave(old_cur_comp);
+ do_cmdline_cmd((char_u *)
+ "command -nargs=* CompilerSet setlocal <args>");
+ }
+! do_unlet((char_u *)"g:current_compiler", TRUE);
+ do_unlet((char_u *)"b:current_compiler", TRUE);
+
+ sprintf((char *)buf, "compiler/%s.vim", eap->arg);
+***************
+*** 2514,2520 ****
+ do_cmdline_cmd((char_u *)":delcommand CompilerSet");
+
+ /* Set "b:current_compiler" from "current_compiler". */
+! p = get_var_value((char_u *)"current_compiler");
+ if (p != NULL)
+ set_internal_string_var((char_u *)"b:current_compiler", p);
+
+--- 2515,2521 ----
+ do_cmdline_cmd((char_u *)":delcommand CompilerSet");
+
+ /* Set "b:current_compiler" from "current_compiler". */
+! p = get_var_value((char_u *)"g:current_compiler");
+ if (p != NULL)
+ set_internal_string_var((char_u *)"b:current_compiler", p);
+
+***************
+*** 2523,2534 ****
+ {
+ if (old_cur_comp != NULL)
+ {
+! set_internal_string_var((char_u *)"current_compiler",
+ old_cur_comp);
+ vim_free(old_cur_comp);
+ }
+ else
+! do_unlet((char_u *)"current_compiler", TRUE);
+ }
+ }
+ }
+--- 2524,2535 ----
+ {
+ if (old_cur_comp != NULL)
+ {
+! set_internal_string_var((char_u *)"g:current_compiler",
+ old_cur_comp);
+ vim_free(old_cur_comp);
+ }
+ else
+! do_unlet((char_u *)"g:current_compiler", TRUE);
+ }
+ }
+ }
+*** ../vim-7.2.336/src/version.c 2010-01-19 15:51:29.000000000 +0100
+--- src/version.c 2010-01-19 16:11:20.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 337,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+121. You ask for e-mail adresses instead of telephone numbers.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.2.338 b/source/ap/vim/patches/7.2.338
new file mode 100644
index 00000000..ac0223f2
--- /dev/null
+++ b/source/ap/vim/patches/7.2.338
@@ -0,0 +1,129 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.338
+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.2.338 (after 7.2.300)
+Problem: Part of FD_CLOEXEC change is missing.
+Solution: Include source file skipped because of typo.
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.2.337/src/ex_cmds2.c 2010-01-19 16:12:53.000000000 +0100
+--- src/ex_cmds2.c 2010-01-19 16:02:53.000000000 +0100
+***************
+*** 2802,2821 ****
+
+ static char_u *get_one_sourceline __ARGS((struct source_cookie *sp));
+
+! #if defined(WIN32) && defined(FEAT_CSCOPE)
+ static FILE *fopen_noinh_readbin __ARGS((char *filename));
+
+ /*
+ * Special function to open a file without handle inheritance.
+ */
+ static FILE *
+ fopen_noinh_readbin(filename)
+ char *filename;
+ {
+! int fd_tmp = mch_open(filename, O_RDONLY | O_BINARY | O_NOINHERIT, 0);
+
+ if (fd_tmp == -1)
+ return NULL;
+ return fdopen(fd_tmp, READBIN);
+ }
+ #endif
+--- 2802,2836 ----
+
+ static char_u *get_one_sourceline __ARGS((struct source_cookie *sp));
+
+! #if (defined(WIN32) && defined(FEAT_CSCOPE)) || defined(HAVE_FD_CLOEXEC)
+! # define USE_FOPEN_NOINH
+ static FILE *fopen_noinh_readbin __ARGS((char *filename));
+
+ /*
+ * Special function to open a file without handle inheritance.
++ * When possible the handle is closed on exec().
+ */
+ static FILE *
+ fopen_noinh_readbin(filename)
+ char *filename;
+ {
+! int fd_tmp = mch_open(filename, O_RDONLY
+! # ifdef WIN32
+! O_BINARY | O_NOINHERIT
+! # endif
+! , 0);
+
+ if (fd_tmp == -1)
+ return NULL;
++
++ # ifdef HAVE_FD_CLOEXEC
++ {
++ int fdflags = fcntl(fd_tmp, F_GETFD);
++ if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0)
++ fcntl(fd_tmp, F_SETFD, fdflags | FD_CLOEXEC);
++ }
++ # endif
++
+ return fdopen(fd_tmp, READBIN);
+ }
+ #endif
+***************
+*** 2895,2901 ****
+ apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
+ #endif
+
+! #if defined(WIN32) && defined(FEAT_CSCOPE)
+ cookie.fp = fopen_noinh_readbin((char *)fname_exp);
+ #else
+ cookie.fp = mch_fopen((char *)fname_exp, READBIN);
+--- 2910,2916 ----
+ apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
+ #endif
+
+! #ifdef USE_FOPEN_NOINH
+ cookie.fp = fopen_noinh_readbin((char *)fname_exp);
+ #else
+ cookie.fp = mch_fopen((char *)fname_exp, READBIN);
+***************
+*** 2916,2922 ****
+ *p = '.';
+ else
+ *p = '_';
+! #if defined(WIN32) && defined(FEAT_CSCOPE)
+ cookie.fp = fopen_noinh_readbin((char *)fname_exp);
+ #else
+ cookie.fp = mch_fopen((char *)fname_exp, READBIN);
+--- 2931,2937 ----
+ *p = '.';
+ else
+ *p = '_';
+! #ifdef USE_FOPEN_NOINH
+ cookie.fp = fopen_noinh_readbin((char *)fname_exp);
+ #else
+ cookie.fp = mch_fopen((char *)fname_exp, READBIN);
+*** ../vim-7.2.337/src/version.c 2010-01-19 16:12:53.000000000 +0100
+--- src/version.c 2010-01-19 16:20:08.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 338,
+ /**/
+
+--
+~
+~
+~
+".signature" 4 lines, 50 characters written
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.2.339 b/source/ap/vim/patches/7.2.339
new file mode 100644
index 00000000..77aa94db
--- /dev/null
+++ b/source/ap/vim/patches/7.2.339
@@ -0,0 +1,78 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.339
+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.2.339 (after 7.2.269)
+Problem: Part of --startuptime patch is missing.
+Solution: Add check for time_fd.
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.2.338/src/ex_cmds2.c 2010-01-19 16:21:55.000000000 +0100
+--- src/ex_cmds2.c 2010-01-19 16:02:53.000000000 +0100
+***************
+*** 3036,3042 ****
+ #endif
+
+ #ifdef STARTUPTIME
+! time_push(&tv_rel, &tv_start);
+ #endif
+
+ #ifdef FEAT_EVAL
+--- 3036,3043 ----
+ #endif
+
+ #ifdef STARTUPTIME
+! if (time_fd != NULL)
+! time_push(&tv_rel, &tv_start);
+ #endif
+
+ #ifdef FEAT_EVAL
+***************
+*** 3162,3170 ****
+ verbose_leave();
+ }
+ #ifdef STARTUPTIME
+! vim_snprintf((char *)IObuff, IOSIZE, "sourcing %s", fname);
+! time_msg((char *)IObuff, &tv_start);
+! time_pop(&tv_rel);
+ #endif
+
+ #ifdef FEAT_EVAL
+--- 3163,3174 ----
+ verbose_leave();
+ }
+ #ifdef STARTUPTIME
+! if (time_fd != NULL)
+! {
+! vim_snprintf((char *)IObuff, IOSIZE, "sourcing %s", fname);
+! time_msg((char *)IObuff, &tv_start);
+! time_pop(&tv_rel);
+! }
+ #endif
+
+ #ifdef FEAT_EVAL
+*** ../vim-7.2.338/src/version.c 2010-01-19 16:21:55.000000000 +0100
+--- src/version.c 2010-01-19 16:25:39.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 339,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+122. You ask if the Netaholics Anonymous t-shirt you ordered can be
+ sent to you via e-mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.2.340 b/source/ap/vim/patches/7.2.340
new file mode 100644
index 00000000..b0f4babb
--- /dev/null
+++ b/source/ap/vim/patches/7.2.340
@@ -0,0 +1,54 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.340
+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.2.340
+Problem: Gcc warning for condition that can never be true. (James Vega)
+Solution: Use start_lvl instead flp->lvl.
+Files: src/fold.c
+
+
+*** ../vim-7.2.339/src/fold.c 2009-11-03 18:04:26.000000000 +0100
+--- src/fold.c 2010-01-19 16:45:13.000000000 +0100
+***************
+*** 3239,3246 ****
+ flp->lvl = n;
+ flp->lvl_next = n - 1;
+ /* never start a fold with an end marker */
+! if (flp->lvl_next > flp->lvl)
+! flp->lvl_next = flp->lvl;
+ }
+ }
+ else
+--- 3239,3246 ----
+ flp->lvl = n;
+ flp->lvl_next = n - 1;
+ /* never start a fold with an end marker */
+! if (flp->lvl_next > start_lvl)
+! flp->lvl_next = start_lvl;
+ }
+ }
+ else
+*** ../vim-7.2.339/src/version.c 2010-01-19 16:31:10.000000000 +0100
+--- src/version.c 2010-01-19 17:23:40.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 340,
+ /**/
+
+--
+Would you care for a drink? I mean, if it were, like,
+disabled and you had to look after it?
+
+ /// 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/source/ap/vim/patches/7.2.341 b/source/ap/vim/patches/7.2.341
new file mode 100644
index 00000000..67d5e81d
--- /dev/null
+++ b/source/ap/vim/patches/7.2.341
@@ -0,0 +1,69 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.341
+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.2.341
+Problem: Popup menu wraps to next line when double-wide character doesn't
+ fit. (Jiang Ma)
+Solution: Display a ">" instead. (Dominique Pelle)
+Files: src/screen.c
+
+
+*** ../vim-7.2.340/src/screen.c 2009-11-25 13:03:29.000000000 +0100
+--- src/screen.c 2010-01-19 17:34:21.000000000 +0100
+***************
+*** 6434,6439 ****
+--- 6434,6446 ----
+ else
+ prev_c = u8c;
+ # endif
++ if (col + mbyte_cells > screen_Columns)
++ {
++ /* Only 1 cell left, but character requires 2 cells:
++ * display a '>' in the last column to avoid wrapping. */
++ c = '>';
++ mbyte_cells = 1;
++ }
+ }
+ }
+ #endif
+***************
+*** 9210,9216 ****
+ int force;
+ {
+ /*
+! * Don't delete it right now, when not redrawing or insided a mapping.
+ */
+ if (!redrawing() || (!force && char_avail() && !KeyTyped))
+ redraw_cmdline = TRUE; /* delete mode later */
+--- 9217,9223 ----
+ int force;
+ {
+ /*
+! * Don't delete it right now, when not redrawing or inside a mapping.
+ */
+ if (!redrawing() || (!force && char_avail() && !KeyTyped))
+ redraw_cmdline = TRUE; /* delete mode later */
+*** ../vim-7.2.340/src/version.c 2010-01-19 17:24:20.000000000 +0100
+--- src/version.c 2010-01-19 17:39:56.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 341,
+ /**/
+
+--
+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/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.2.342 b/source/ap/vim/patches/7.2.342
new file mode 100644
index 00000000..72bf253e
--- /dev/null
+++ b/source/ap/vim/patches/7.2.342
@@ -0,0 +1,95 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.342
+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.2.342
+Problem: Popup menu displayed wrong in 'rightleft' mode when there are
+ multi-byte characters.
+Solution: Adjust the column computations. (Dominique Pelle)
+Files: src/popupmnu.c
+
+
+*** ../vim-7.2.341/src/popupmnu.c 2008-11-15 14:10:23.000000000 +0100
+--- src/popupmnu.c 2010-01-19 17:57:05.000000000 +0100
+***************
+*** 345,365 ****
+ if (st != NULL)
+ {
+ char_u *rt = reverse_text(st);
+- char_u *rt_saved = rt;
+- int len, j;
+
+ if (rt != NULL)
+ {
+! len = (int)STRLEN(rt);
+! if (len > pum_width)
+ {
+! for (j = pum_width; j < len; ++j)
+ mb_ptr_adv(rt);
+! len = pum_width;
+ }
+! screen_puts_len(rt, len, row,
+! col - len + 1, attr);
+! vim_free(rt_saved);
+ }
+ vim_free(st);
+ }
+--- 345,380 ----
+ if (st != NULL)
+ {
+ char_u *rt = reverse_text(st);
+
+ if (rt != NULL)
+ {
+! char_u *rt_start = rt;
+! int size;
+!
+! size = vim_strsize(rt);
+! if (size > pum_width)
+ {
+! do
+! {
+! size -= has_mbyte
+! ? (*mb_ptr2cells)(rt) : 1;
+ mb_ptr_adv(rt);
+! } while (size > pum_width);
+!
+! if (size < pum_width)
+! {
+! /* Most left character requires
+! * 2-cells but only 1 cell is
+! * available on screen. Put a
+! * '<' on the left of the pum
+! * item */
+! *(--rt) = '<';
+! size++;
+! }
+ }
+! screen_puts_len(rt, (int)STRLEN(rt),
+! row, col - size + 1, attr);
+! vim_free(rt_start);
+ }
+ vim_free(st);
+ }
+*** ../vim-7.2.341/src/version.c 2010-01-19 17:40:39.000000000 +0100
+--- src/version.c 2010-01-19 18:03:22.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 342,
+ /**/
+
+--
+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/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.2.343 b/source/ap/vim/patches/7.2.343
new file mode 100644
index 00000000..22031519
--- /dev/null
+++ b/source/ap/vim/patches/7.2.343
@@ -0,0 +1,51 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.343
+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.2.343 (after 7.2.338)
+Problem: Can't compile on Win32.
+Solution: Insert the missing '|'.
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.2.342/src/ex_cmds2.c 2010-01-19 16:31:10.000000000 +0100
+--- src/ex_cmds2.c 2010-01-19 23:22:40.000000000 +0100
+***************
+*** 2816,2822 ****
+ {
+ int fd_tmp = mch_open(filename, O_RDONLY
+ # ifdef WIN32
+! O_BINARY | O_NOINHERIT
+ # endif
+ , 0);
+
+--- 2816,2822 ----
+ {
+ int fd_tmp = mch_open(filename, O_RDONLY
+ # ifdef WIN32
+! | O_BINARY | O_NOINHERIT
+ # endif
+ , 0);
+
+*** ../vim-7.2.342/src/version.c 2010-01-19 18:05:05.000000000 +0100
+--- src/version.c 2010-01-19 23:24:05.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 343,
+ /**/
+
+--
+I'm writing a book. I've got the page numbers done.
+
+ /// 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/source/ap/vim/patches/7.2.344 b/source/ap/vim/patches/7.2.344
new file mode 100644
index 00000000..788bbc41
--- /dev/null
+++ b/source/ap/vim/patches/7.2.344
@@ -0,0 +1,60 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.344
+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.2.344 (after 7.2.343)
+Problem: Can't compile on some systems
+Solution: Move the #ifdef outside of the mch_open macro. (Patrick Texier)
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.2.343/src/ex_cmds2.c 2010-01-19 23:25:18.000000000 +0100
+--- src/ex_cmds2.c 2010-01-20 21:38:19.000000000 +0100
+***************
+*** 2814,2824 ****
+ fopen_noinh_readbin(filename)
+ char *filename;
+ {
+- int fd_tmp = mch_open(filename, O_RDONLY
+ # ifdef WIN32
+! | O_BINARY | O_NOINHERIT
+ # endif
+- , 0);
+
+ if (fd_tmp == -1)
+ return NULL;
+--- 2814,2824 ----
+ fopen_noinh_readbin(filename)
+ char *filename;
+ {
+ # ifdef WIN32
+! int fd_tmp = mch_open(filename, O_RDONLY | O_BINARY | O_NOINHERIT, 0);
+! # else
+! int fd_tmp = mch_open(filename, O_RDONLY, 0);
+ # endif
+
+ if (fd_tmp == -1)
+ return NULL;
+*** ../vim-7.2.343/src/version.c 2010-01-19 23:25:18.000000000 +0100
+--- src/version.c 2010-01-20 21:38:23.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 344,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+128. You can access the Net -- via your portable and cellular phone.
+
+ /// 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/source/ap/vim/patches/7.2.345 b/source/ap/vim/patches/7.2.345
new file mode 100644
index 00000000..a3b7acf7
--- /dev/null
+++ b/source/ap/vim/patches/7.2.345
@@ -0,0 +1,47 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.345
+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.2.345
+Problem: Tab line is not updated when the value of 'bt' is changed.
+Solution: Call redraw_titles(). (Lech Lorens)
+Files: src/option.c
+
+
+*** ../vim-7.2.344/src/option.c 2009-09-11 15:20:22.000000000 +0200
+--- src/option.c 2010-01-27 15:52:45.000000000 +0100
+***************
+*** 6410,6415 ****
+--- 6410,6418 ----
+ }
+ # endif
+ curbuf->b_help = (curbuf->b_p_bt[0] == 'h');
++ # ifdef FEAT_TITLE
++ redraw_titles();
++ # endif
+ }
+ }
+ #endif
+*** ../vim-7.2.344/src/version.c 2010-01-20 21:41:40.000000000 +0100
+--- src/version.c 2010-01-27 15:57:06.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 345,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+154. You fondle your mouse.
+
+ /// 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/source/ap/vim/patches/7.2.346 b/source/ap/vim/patches/7.2.346
new file mode 100644
index 00000000..479aac63
--- /dev/null
+++ b/source/ap/vim/patches/7.2.346
@@ -0,0 +1,110 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.346
+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.2.346
+Problem: Repeating a command with @: causes a mapping to be applied twice.
+Solution: Do not remap characters inserted in the typeahead buffer. (Kana
+ Natsuno)
+Files: src/ops.c
+
+
+*** ../vim-7.2.345/src/ops.c 2010-01-19 14:59:14.000000000 +0100
+--- src/ops.c 2010-01-19 13:04:46.000000000 +0100
+***************
+*** 1301,1310 ****
+ }
+ }
+
+ static int
+ put_in_typebuf(s, esc, colon, silent)
+ char_u *s;
+! int esc; /* Escape CSI characters */
+ int colon; /* add ':' before the line */
+ int silent;
+ {
+--- 1301,1316 ----
+ }
+ }
+
++ /*
++ * Insert register contents "s" into the typeahead buffer, so that it will be
++ * executed again.
++ * When "esc" is TRUE it is to be taken literally: Escape CSI characters and
++ * no remapping.
++ */
+ static int
+ put_in_typebuf(s, esc, colon, silent)
+ char_u *s;
+! int esc;
+ int colon; /* add ':' before the line */
+ int silent;
+ {
+***************
+*** 1312,1318 ****
+
+ put_reedit_in_typebuf(silent);
+ if (colon)
+! retval = ins_typebuf((char_u *)"\n", REMAP_YES, 0, TRUE, silent);
+ if (retval == OK)
+ {
+ char_u *p;
+--- 1318,1324 ----
+
+ put_reedit_in_typebuf(silent);
+ if (colon)
+! retval = ins_typebuf((char_u *)"\n", REMAP_NONE, 0, TRUE, silent);
+ if (retval == OK)
+ {
+ char_u *p;
+***************
+*** 1324,1335 ****
+ if (p == NULL)
+ retval = FAIL;
+ else
+! retval = ins_typebuf(p, REMAP_YES, 0, TRUE, silent);
+ if (esc)
+ vim_free(p);
+ }
+ if (colon && retval == OK)
+! retval = ins_typebuf((char_u *)":", REMAP_YES, 0, TRUE, silent);
+ return retval;
+ }
+
+--- 1330,1342 ----
+ if (p == NULL)
+ retval = FAIL;
+ else
+! retval = ins_typebuf(p, esc ? REMAP_NONE : REMAP_YES,
+! 0, TRUE, silent);
+ if (esc)
+ vim_free(p);
+ }
+ if (colon && retval == OK)
+! retval = ins_typebuf((char_u *)":", REMAP_NONE, 0, TRUE, silent);
+ return retval;
+ }
+
+*** ../vim-7.2.345/src/version.c 2010-01-27 15:57:17.000000000 +0100
+--- src/version.c 2010-01-27 16:25:55.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 346,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+155. You forget to eat because you're too busy surfing the net.
+
+ /// 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/source/ap/vim/patches/7.2.347 b/source/ap/vim/patches/7.2.347
new file mode 100644
index 00000000..e5fa17d4
--- /dev/null
+++ b/source/ap/vim/patches/7.2.347
@@ -0,0 +1,138 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.347
+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.2.347
+Problem: Crash when executing <expr> mapping redefines that same mapping.
+Solution: Save the values used before evaluating the expression.
+Files: src/getchar.c
+
+
+*** ../vim-7.2.346/src/getchar.c 2009-11-11 16:23:37.000000000 +0100
+--- src/getchar.c 2010-01-27 17:30:42.000000000 +0100
+***************
+*** 2389,2394 ****
+--- 2389,2405 ----
+ /* complete match */
+ if (keylen >= 0 && keylen <= typebuf.tb_len)
+ {
++ #ifdef FEAT_EVAL
++ int save_m_expr;
++ int save_m_noremap;
++ int save_m_silent;
++ char_u *save_m_keys;
++ char_u *save_m_str;
++ #else
++ # define save_m_noremap mp->m_noremap
++ # define save_m_silent mp->m_silent
++ #endif
++
+ /* write chars to script file(s) */
+ if (keylen > typebuf.tb_maplen)
+ gotchars(typebuf.tb_buf + typebuf.tb_off
+***************
+*** 2431,2436 ****
+--- 2442,2457 ----
+ #endif
+
+ #ifdef FEAT_EVAL
++ /* Copy the values from *mp that are used, because
++ * evaluating the expression may invoke a function
++ * that redefines the mapping, thereby making *mp
++ * invalid. */
++ save_m_expr = mp->m_expr;
++ save_m_noremap = mp->m_noremap;
++ save_m_silent = mp->m_silent;
++ save_m_keys = NULL; /* only saved when needed */
++ save_m_str = NULL; /* only saved when needed */
++
+ /*
+ * Handle ":map <expr>": evaluate the {rhs} as an
+ * expression. Save and restore the typeahead so that
+***************
+*** 2446,2452 ****
+ if (tabuf.typebuf_valid)
+ {
+ vgetc_busy = 0;
+! s = eval_map_expr(mp->m_str, NUL);
+ vgetc_busy = save_vgetc_busy;
+ }
+ else
+--- 2467,2475 ----
+ if (tabuf.typebuf_valid)
+ {
+ vgetc_busy = 0;
+! save_m_keys = vim_strsave(mp->m_keys);
+! save_m_str = vim_strsave(mp->m_str);
+! s = eval_map_expr(save_m_str, NUL);
+ vgetc_busy = save_vgetc_busy;
+ }
+ else
+***************
+*** 2470,2486 ****
+ else
+ {
+ i = ins_typebuf(s,
+! mp->m_noremap != REMAP_YES
+! ? mp->m_noremap
+! : STRNCMP(s, mp->m_keys,
+ (size_t)keylen) != 0
+ ? REMAP_YES : REMAP_SKIP,
+! 0, TRUE, cmd_silent || mp->m_silent);
+ #ifdef FEAT_EVAL
+! if (mp->m_expr)
+ vim_free(s);
+ #endif
+ }
+ if (i == FAIL)
+ {
+ c = -1;
+--- 2493,2517 ----
+ else
+ {
+ i = ins_typebuf(s,
+! save_m_noremap != REMAP_YES
+! ? save_m_noremap
+! : STRNCMP(s,
+! #ifdef FEAT_EVAL
+! save_m_keys != NULL ? save_m_keys :
+! #endif
+! mp->m_keys,
+ (size_t)keylen) != 0
+ ? REMAP_YES : REMAP_SKIP,
+! 0, TRUE, cmd_silent || save_m_silent);
+ #ifdef FEAT_EVAL
+! if (save_m_expr)
+ vim_free(s);
+ #endif
+ }
++ #ifdef FEAT_EVAL
++ vim_free(save_m_keys);
++ vim_free(save_m_str);
++ #endif
+ if (i == FAIL)
+ {
+ c = -1;
+*** ../vim-7.2.346/src/version.c 2010-01-27 16:31:00.000000000 +0100
+--- src/version.c 2010-01-27 17:27:32.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 347,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+156. You forget your friend's name but not her e-mail address.
+
+ /// 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/source/ap/vim/patches/7.2.348 b/source/ap/vim/patches/7.2.348
new file mode 100644
index 00000000..5f4ffbd0
--- /dev/null
+++ b/source/ap/vim/patches/7.2.348
@@ -0,0 +1,254 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.348 (after 7.2.330)
+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.2.348 (after 7.2.330)
+Problem: Unicode double-width characters are not up-to date.
+Solution: Produce the double-width table like the others.
+Files: runtime/tools/unicode.vim, src/mbyte.c
+
+
+*** ../vim-7.2.347/runtime/tools/unicode.vim 2010-01-12 19:48:57.000000000 +0100
+--- runtime/tools/unicode.vim 2010-01-27 17:57:17.000000000 +0100
+***************
+*** 187,202 ****
+ wincmd p
+ endfunc
+
+! " Build the ambiguous table in a new buffer.
+ " Uses s:widthprops and s:dataprops.
+! func! BuildAmbiguousTable()
+ let start = -1
+ let end = -1
+ let ranges = []
+ let dataidx = 0
+ for p in s:widthprops
+! if p[1][0] == 'A'
+! let n = ('0x' . p[0]) + 0
+ " Find this char in the data table.
+ while 1
+ let dn = ('0x' . s:dataprops[dataidx][0]) + 0
+--- 187,213 ----
+ wincmd p
+ endfunc
+
+! " Build the double width or ambiguous width table in a new buffer.
+ " Uses s:widthprops and s:dataprops.
+! func! BuildWidthTable(pattern, tableName)
+ let start = -1
+ let end = -1
+ let ranges = []
+ let dataidx = 0
+ for p in s:widthprops
+! if p[1][0] =~ a:pattern
+! if p[0] =~ '\.\.'
+! " It is a range. we don't check for composing char then.
+! let rng = split(p[0], '\.\.')
+! if len(rng) != 2
+! echoerr "Cannot parse range: '" . p[0] . "' in width table"
+! endif
+! let n = ('0x' . rng[0]) + 0
+! let n_last = ('0x' . rng[1]) + 0
+! else
+! let n = ('0x' . p[0]) + 0
+! let n_last = n
+! endif
+ " Find this char in the data table.
+ while 1
+ let dn = ('0x' . s:dataprops[dataidx][0]) + 0
+***************
+*** 205,231 ****
+ endif
+ let dataidx += 1
+ endwhile
+! if dn != n
+ echoerr "Cannot find character " . n . " in data table"
+ endif
+ " Only use the char when it's not a composing char.
+ let dp = s:dataprops[dataidx]
+! if dp[2] != 'Mn' && dp[2] != 'Mc' && dp[2] != 'Me'
+ if start >= 0 && end + 1 == n
+ " continue with same range.
+- let end = n
+ else
+ if start >= 0
+ " produce previous range
+ call add(ranges, printf("\t{0x%04x, 0x%04x},", start, end))
+ endif
+ let start = n
+- if p[0] =~ '\.\.'
+- let end = ('0x' . substitute(p[0], '.*\.\.', '', '')) + 0
+- else
+- let end = n
+- endif
+ endif
+ endif
+ endif
+ endfor
+--- 216,238 ----
+ endif
+ let dataidx += 1
+ endwhile
+! if dn != n && n_last == n
+ echoerr "Cannot find character " . n . " in data table"
+ endif
+ " Only use the char when it's not a composing char.
++ " But use all chars from a range.
+ let dp = s:dataprops[dataidx]
+! if n_last > n || (dp[2] != 'Mn' && dp[2] != 'Mc' && dp[2] != 'Me')
+ if start >= 0 && end + 1 == n
+ " continue with same range.
+ else
+ if start >= 0
+ " produce previous range
+ call add(ranges, printf("\t{0x%04x, 0x%04x},", start, end))
+ endif
+ let start = n
+ endif
++ let end = n_last
+ endif
+ endif
+ endfor
+***************
+*** 235,242 ****
+
+ " New buffer to put the result in.
+ new
+! file ambiguous
+! call setline(1, " static struct interval ambiguous[] =")
+ call setline(2, " {")
+ call append('$', ranges)
+ call setline('$', getline('$')[:-2]) " remove last comma
+--- 242,249 ----
+
+ " New buffer to put the result in.
+ new
+! exe "file " . a:tableName
+! call setline(1, " static struct interval " . a:tableName . "[] =")
+ call setline(2, " {")
+ call append('$', ranges)
+ call setline('$', getline('$')[:-2]) " remove last comma
+***************
+*** 276,280 ****
+ " Parse each line, create a list of lists.
+ call ParseWidthProps()
+
+! " Build the ambiguous table.
+! call BuildAmbiguousTable()
+--- 283,290 ----
+ " Parse each line, create a list of lists.
+ call ParseWidthProps()
+
+! " Build the double width table.
+! call BuildWidthTable('[WF]', 'doublewidth')
+!
+! " Build the ambiguous width table.
+! call BuildWidthTable('A', 'ambiguous')
+*** ../vim-7.2.347/src/mbyte.c 2010-01-12 19:48:57.000000000 +0100
+--- src/mbyte.c 2010-01-27 18:06:35.000000000 +0100
+***************
+*** 1200,1205 ****
+--- 1200,1248 ----
+ utf_char2cells(c)
+ int c;
+ {
++ /* Sorted list of non-overlapping intervals of East Asian double width
++ * characters, generated with ../runtime/tools/unicode.vim. */
++ static struct interval doublewidth[] =
++ {
++ {0x1100, 0x115f},
++ {0x11a3, 0x11a7},
++ {0x11fa, 0x11ff},
++ {0x2329, 0x232a},
++ {0x2e80, 0x2e99},
++ {0x2e9b, 0x2ef3},
++ {0x2f00, 0x2fd5},
++ {0x2ff0, 0x2ffb},
++ {0x3000, 0x3029},
++ {0x3030, 0x303e},
++ {0x3041, 0x3096},
++ {0x309b, 0x30ff},
++ {0x3105, 0x312d},
++ {0x3131, 0x318e},
++ {0x3190, 0x31b7},
++ {0x31c0, 0x31e3},
++ {0x31f0, 0x321e},
++ {0x3220, 0x3247},
++ {0x3250, 0x32fe},
++ {0x3300, 0x4dbf},
++ {0x4e00, 0xa48c},
++ {0xa490, 0xa4c6},
++ {0xa960, 0xa97c},
++ {0xac00, 0xd7a3},
++ {0xd7b0, 0xd7c6},
++ {0xd7cb, 0xd7fb},
++ {0xf900, 0xfaff},
++ {0xfe10, 0xfe19},
++ {0xfe30, 0xfe52},
++ {0xfe54, 0xfe66},
++ {0xfe68, 0xfe6b},
++ {0xff01, 0xff60},
++ {0xffe0, 0xffe6},
++ {0x1f200, 0x1f200},
++ {0x1f210, 0x1f231},
++ {0x1f240, 0x1f248},
++ {0x20000, 0x2fffd},
++ {0x30000, 0x3fffd}
++ };
+ /* Sorted list of non-overlapping intervals of East Asian Ambiguous
+ * characters, generated with ../runtime/tools/unicode.vim. */
+ static struct interval ambiguous[] =
+***************
+*** 1403,1422 ****
+ #else
+ if (!utf_printable(c))
+ return 6; /* unprintable, displays <xxxx> */
+! if (c >= 0x1100
+! && (c <= 0x115f /* Hangul Jamo */
+! || c == 0x2329
+! || c == 0x232a
+! || (c >= 0x2e80 && c <= 0xa4cf
+! && c != 0x303f) /* CJK ... Yi */
+! || (c >= 0xac00 && c <= 0xd7a3) /* Hangul Syllables */
+! || (c >= 0xf900 && c <= 0xfaff) /* CJK Compatibility
+! Ideographs */
+! || (c >= 0xfe30 && c <= 0xfe6f) /* CJK Compatibility Forms */
+! || (c >= 0xff00 && c <= 0xff60) /* Fullwidth Forms */
+! || (c >= 0xffe0 && c <= 0xffe6)
+! || (c >= 0x20000 && c <= 0x2fffd)
+! || (c >= 0x30000 && c <= 0x3fffd)))
+ return 2;
+ #endif
+ }
+--- 1446,1452 ----
+ #else
+ if (!utf_printable(c))
+ return 6; /* unprintable, displays <xxxx> */
+! if (intable(doublewidth, sizeof(doublewidth), c))
+ return 2;
+ #endif
+ }
+*** ../vim-7.2.347/src/version.c 2010-01-27 17:31:38.000000000 +0100
+--- src/version.c 2010-01-27 18:25:50.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 348,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+157. You fum through a magazine, you first check to see if it has a web
+ address.
+
+ /// 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/source/ap/vim/patches/7.2.349 b/source/ap/vim/patches/7.2.349
new file mode 100644
index 00000000..7d0be020
--- /dev/null
+++ b/source/ap/vim/patches/7.2.349
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.349
+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.2.349
+Problem: CTRL-W gf doesn't put the new tab in the same place as "tab split"
+ and "gf". (Tony Mechelynck)
+Solution: Store the tab number in cmdmod.tab.
+Files: src/window.c
+
+
+*** ../vim-7.2.348/src/window.c 2009-06-24 17:31:27.000000000 +0200
+--- src/window.c 2010-01-27 20:23:22.000000000 +0100
+***************
+*** 626,632 ****
+ #ifdef FEAT_SEARCHPATH
+ case 'f': /* CTRL-W gf: "gf" in a new tab page */
+ case 'F': /* CTRL-W gF: "gF" in a new tab page */
+! cmdmod.tab = TRUE;
+ nchar = xchar;
+ goto wingotofile;
+ #endif
+--- 626,632 ----
+ #ifdef FEAT_SEARCHPATH
+ case 'f': /* CTRL-W gf: "gf" in a new tab page */
+ case 'F': /* CTRL-W gF: "gF" in a new tab page */
+! cmdmod.tab = tabpage_index(curtab) + 1;
+ nchar = xchar;
+ goto wingotofile;
+ #endif
+*** ../vim-7.2.348/src/version.c 2010-01-27 18:29:21.000000000 +0100
+--- src/version.c 2010-01-27 20:25:43.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 349,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+159. You get excited whenever discussing your hard drive.
+
+ /// 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/source/ap/vim/patches/7.2.350 b/source/ap/vim/patches/7.2.350
new file mode 100644
index 00000000..7715eb30
--- /dev/null
+++ b/source/ap/vim/patches/7.2.350
@@ -0,0 +1,86 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.350
+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.2.350
+Problem: Win32: When changing font the window may jump from the secondary
+ to the primary screen. (Michael Wookey)
+Solution: When the screen position was negative don't correct it to zero.
+Files: src/gui.c
+
+
+*** ../vim-7.2.349/src/gui.c 2009-09-23 18:14:13.000000000 +0200
+--- src/gui.c 2010-01-27 21:02:32.000000000 +0100
+***************
+*** 1390,1395 ****
+--- 1390,1396 ----
+ int un_maximize = mustset;
+ int did_adjust = 0;
+ #endif
++ int x = -1, y = -1;
+
+ if (!gui.shell_created)
+ return;
+***************
+*** 1406,1411 ****
+--- 1407,1416 ----
+
+ base_width = gui_get_base_width();
+ base_height = gui_get_base_height();
++ if (fit_to_display)
++ /* Remember the original window position. */
++ gui_mch_get_winpos(&x, &y);
++
+ #ifdef USE_SUN_WORKSHOP
+ if (!mustset && usingSunWorkShop
+ && workshop_get_width_height(&width, &height))
+***************
+*** 1473,1483 ****
+
+ gui_mch_set_shellsize(width, height, min_width, min_height,
+ base_width, base_height, direction);
+- if (fit_to_display)
+- {
+- int x, y;
+
+! /* Some window managers put the Vim window left of/above the screen. */
+ gui_mch_update();
+ if (gui_mch_get_winpos(&x, &y) == OK && (x < 0 || y < 0))
+ gui_mch_set_winpos(x < 0 ? 0 : x, y < 0 ? 0 : y);
+--- 1478,1489 ----
+
+ gui_mch_set_shellsize(width, height, min_width, min_height,
+ base_width, base_height, direction);
+
+! if (fit_to_display && x >= 0 && y >= 0)
+! {
+! /* Some window managers put the Vim window left of/above the screen.
+! * Only change the position if it wasn't already negative before
+! * (happens on MS-Windows with a secondary monitor). */
+ gui_mch_update();
+ if (gui_mch_get_winpos(&x, &y) == OK && (x < 0 || y < 0))
+ gui_mch_set_winpos(x < 0 ? 0 : x, y < 0 ? 0 : y);
+*** ../vim-7.2.349/src/version.c 2010-01-27 20:26:41.000000000 +0100
+--- src/version.c 2010-01-27 21:03:41.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 350,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+160. You get in the elevator and double-click the button for the floor
+ you want.
+
+ /// 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/source/ap/vim/patches/7.2.351 b/source/ap/vim/patches/7.2.351
new file mode 100644
index 00000000..55b28f6a
--- /dev/null
+++ b/source/ap/vim/patches/7.2.351
@@ -0,0 +1,78 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.351 (after 7.2.347)
+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.2.351 (after 7.2.347)
+Problem: Can't build with some compilers.
+Solution: Move the #ifdef outside of a macro. Cleanup the code.
+Files: src/getchar.c
+
+
+*** ../vim-7.2.350/src/getchar.c 2010-01-27 17:31:38.000000000 +0100
+--- src/getchar.c 2010-01-28 22:42:22.000000000 +0100
+***************
+*** 2492,2508 ****
+ i = FAIL;
+ else
+ {
+! i = ins_typebuf(s,
+! save_m_noremap != REMAP_YES
+! ? save_m_noremap
+! : STRNCMP(s,
+ #ifdef FEAT_EVAL
+! save_m_keys != NULL ? save_m_keys :
+ #endif
+! mp->m_keys,
+! (size_t)keylen) != 0
+! ? REMAP_YES : REMAP_SKIP,
+! 0, TRUE, cmd_silent || save_m_silent);
+ #ifdef FEAT_EVAL
+ if (save_m_expr)
+ vim_free(s);
+--- 2492,2515 ----
+ i = FAIL;
+ else
+ {
+! int noremap;
+!
+! if (save_m_noremap != REMAP_YES)
+! noremap = save_m_noremap;
+! else if (
+ #ifdef FEAT_EVAL
+! STRNCMP(s, save_m_keys != NULL
+! ? save_m_keys : mp->m_keys,
+! (size_t)keylen)
+! #else
+! STRNCMP(s, mp->m_keys, (size_t)keylen)
+ #endif
+! != 0)
+! noremap = REMAP_YES;
+! else
+! noremap = REMAP_SKIP;
+! i = ins_typebuf(s, noremap,
+! 0, TRUE, cmd_silent || save_m_silent);
+ #ifdef FEAT_EVAL
+ if (save_m_expr)
+ vim_free(s);
+*** ../vim-7.2.350/src/version.c 2010-01-27 21:04:58.000000000 +0100
+--- src/version.c 2010-01-28 22:50:53.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 351,
+ /**/
+
+--
+"Hit any key to continue" it said, but nothing happened after F sharp.
+
+ /// 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/source/ap/vim/patches/7.2.352 b/source/ap/vim/patches/7.2.352
new file mode 100644
index 00000000..d2e22f2d
--- /dev/null
+++ b/source/ap/vim/patches/7.2.352
@@ -0,0 +1,62 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.352
+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.2.352
+Problem: Win64: Vim doesn't work when cross-compiled with MingW libraries.
+Solution: Always return TRUE for the WM_NCCREATE message. (Andy Kittner)
+Files: src/gui_w48.c
+
+
+*** ../vim-7.2.351/src/gui_w48.c 2009-01-28 21:22:20.000000000 +0100
+--- src/gui_w48.c 2010-02-03 12:07:11.000000000 +0100
+***************
+*** 1084,1092 ****
+ case WM_NOTIFY: Handle_WM_Notify(hwnd, (LPNMHDR)lParam);
+ return TRUE;
+ #endif
+
+! default:
+! return MyWindowProc(hwnd, uMsg, wParam, lParam);
+ }
+ }
+
+--- 1084,1098 ----
+ case WM_NOTIFY: Handle_WM_Notify(hwnd, (LPNMHDR)lParam);
+ return TRUE;
+ #endif
++ /* Workaround for the problem that MyWindowProc() returns FALSE on 64
++ * bit windows when cross-compiled using Mingw libraries. (Andy
++ * Kittner) */
++ case WM_NCCREATE:
++ MyWindowProc(hwnd, uMsg, wParam, lParam);
++ return TRUE;
+
+! default:
+! return MyWindowProc(hwnd, uMsg, wParam, lParam);
+ }
+ }
+
+*** ../vim-7.2.351/src/version.c 2010-01-28 22:58:10.000000000 +0100
+--- src/version.c 2010-02-03 12:16:30.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 352,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+185. You order fast food over the Internet
+
+ /// 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/source/ap/vim/patches/7.2.353 b/source/ap/vim/patches/7.2.353
new file mode 100644
index 00000000..06f9f171
--- /dev/null
+++ b/source/ap/vim/patches/7.2.353
@@ -0,0 +1,173 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.353
+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.2.353
+Problem: No command line completion for ":profile".
+Solution: Complete the subcommand and file name.
+Files: src/ex_docmd.c, src/ex_cmds2.c, src/ex_getln.c,
+ src/proto/ex_cmds2.pro, src/vim.h
+
+
+*** ../vim-7.2.352/src/ex_docmd.c 2009-11-03 12:38:50.000000000 +0100
+--- src/ex_docmd.c 2010-02-03 14:40:14.000000000 +0100
+***************
+*** 3804,3809 ****
+--- 3804,3814 ----
+ xp->xp_context = EXPAND_NOTHING;
+ break;
+ #endif
++ #if defined(FEAT_PROFILE)
++ case CMD_profile:
++ set_context_in_profile_cmd(xp, arg);
++ break;
++ #endif
+
+ #endif /* FEAT_CMDL_COMPL */
+
+*** ../vim-7.2.352/src/ex_cmds2.c 2010-01-20 21:41:40.000000000 +0100
+--- src/ex_cmds2.c 2010-02-03 14:50:08.000000000 +0100
+***************
+*** 1115,1120 ****
+--- 1115,1193 ----
+ }
+ }
+
++ /* Command line expansion for :profile. */
++ static enum
++ {
++ PEXP_SUBCMD, /* expand :profile sub-commands */
++ PEXP_FUNC, /* expand :profile func {funcname} */
++ } pexpand_what;
++
++ static char *pexpand_cmds[] = {
++ "start",
++ #define PROFCMD_START 0
++ "pause",
++ #define PROFCMD_PAUSE 1
++ "continue",
++ #define PROFCMD_CONTINUE 2
++ "func",
++ #define PROFCMD_FUNC 3
++ "file",
++ #define PROFCMD_FILE 4
++ NULL
++ #define PROFCMD_LAST 5
++ };
++
++ /*
++ * Function given to ExpandGeneric() to obtain the profile command
++ * specific expansion.
++ */
++ char_u *
++ get_profile_name(xp, idx)
++ expand_T *xp UNUSED;
++ int idx;
++ {
++ switch (pexpand_what)
++ {
++ case PEXP_SUBCMD:
++ return (char_u *)pexpand_cmds[idx];
++ /* case PEXP_FUNC: TODO */
++ default:
++ return NULL;
++ }
++ }
++
++ /*
++ * Handle command line completion for :profile command.
++ */
++ void
++ set_context_in_profile_cmd(xp, arg)
++ expand_T *xp;
++ char_u *arg;
++ {
++ char_u *end_subcmd;
++ int len;
++
++ /* Default: expand subcommands. */
++ xp->xp_context = EXPAND_PROFILE;
++ pexpand_what = PEXP_SUBCMD;
++ xp->xp_pattern = arg;
++
++ end_subcmd = skiptowhite(arg);
++ if (*end_subcmd == NUL)
++ return;
++
++ len = end_subcmd - arg;
++ if (len == 5 && STRNCMP(arg, "start", 5) == 0)
++ {
++ xp->xp_context = EXPAND_FILES;
++ xp->xp_pattern = skipwhite(end_subcmd);
++ return;
++ }
++
++ /* TODO: expand function names after "func" */
++ xp->xp_context = EXPAND_NOTHING;
++ }
++
+ /*
+ * Dump the profiling info.
+ */
+*** ../vim-7.2.352/src/ex_getln.c 2010-01-19 14:59:14.000000000 +0100
+--- src/ex_getln.c 2010-02-03 14:38:43.000000000 +0100
+***************
+*** 4522,4527 ****
+--- 4522,4530 ----
+ #ifdef FEAT_SIGNS
+ {EXPAND_SIGN, get_sign_name, TRUE},
+ #endif
++ #ifdef FEAT_PROFILE
++ {EXPAND_PROFILE, get_profile_name, TRUE},
++ #endif
+ #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+ && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+ {EXPAND_LANGUAGE, get_lang_arg, TRUE},
+*** ../vim-7.2.352/src/proto/ex_cmds2.pro 2008-01-06 20:07:25.000000000 +0100
+--- src/proto/ex_cmds2.pro 2010-02-03 14:43:12.000000000 +0100
+***************
+*** 24,29 ****
+--- 24,31 ----
+ int profile_equal __ARGS((proftime_T *tm1, proftime_T *tm2));
+ int profile_cmp __ARGS((proftime_T *tm1, proftime_T *tm2));
+ void ex_profile __ARGS((exarg_T *eap));
++ char_u *get_profile_name __ARGS((expand_T *xp, int idx));
++ void set_context_in_profile_cmd __ARGS((expand_T *xp, char_u *arg));
+ void profile_dump __ARGS((void));
+ void script_prof_save __ARGS((proftime_T *tm));
+ void script_prof_restore __ARGS((proftime_T *tm));
+*** ../vim-7.2.352/src/vim.h 2009-06-16 11:08:13.000000000 +0200
+--- src/vim.h 2010-02-03 14:40:42.000000000 +0100
+***************
+*** 718,723 ****
+--- 718,724 ----
+ #define EXPAND_SHELLCMD 32
+ #define EXPAND_CSCOPE 33
+ #define EXPAND_SIGN 34
++ #define EXPAND_PROFILE 35
+
+ /* Values for exmode_active (0 is no exmode) */
+ #define EXMODE_NORMAL 1
+*** ../vim-7.2.352/src/version.c 2010-02-03 12:23:16.000000000 +0100
+--- src/version.c 2010-02-03 15:07:26.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 353,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+188. You purchase a laptop so you can surf while sitting on the can.
+
+ /// 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/source/ap/vim/patches/7.2.354 b/source/ap/vim/patches/7.2.354
new file mode 100644
index 00000000..b4f50664
--- /dev/null
+++ b/source/ap/vim/patches/7.2.354
@@ -0,0 +1,78 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.354
+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.2.354
+Problem: Japanese single-width double-byte characters not handled correctly.
+Solution: Put 0x8e in ScreenLines[] and the second byte in ScreenLines2[].
+ (partly by Kikuchan)
+Files: src/screen.c
+
+
+*** ../vim-7.2.353/src/screen.c 2010-01-19 17:40:39.000000000 +0100
+--- src/screen.c 2010-02-03 15:47:19.000000000 +0100
+***************
+*** 2335,2347 ****
+ if (cells > 1)
+ ScreenLines[idx + 1] = 0;
+ }
+! else if (cells > 1) /* double-byte character */
+! {
+! if (enc_dbcs == DBCS_JPNU && *p == 0x8e)
+! ScreenLines2[idx] = p[1];
+! else
+! ScreenLines[idx + 1] = p[1];
+! }
+ col += cells;
+ idx += cells;
+ p += c_len;
+--- 2335,2346 ----
+ if (cells > 1)
+ ScreenLines[idx + 1] = 0;
+ }
+! else if (enc_dbcs == DBCS_JPNU && *p == 0x8e)
+! /* double-byte single width character */
+! ScreenLines2[idx] = p[1];
+! else if (cells > 1)
+! /* double-width character */
+! ScreenLines[idx + 1] = p[1];
+ col += cells;
+ idx += cells;
+ p += c_len;
+***************
+*** 4631,4637 ****
+--- 4630,4640 ----
+ ScreenLines[off] = c;
+ #ifdef FEAT_MBYTE
+ if (enc_dbcs == DBCS_JPNU)
++ {
++ if ((mb_c & 0xff00) == 0x8e00)
++ ScreenLines[off] = 0x8e;
+ ScreenLines2[off] = mb_c & 0xff;
++ }
+ else if (enc_utf8)
+ {
+ if (mb_utf8)
+*** ../vim-7.2.353/src/version.c 2010-02-03 15:14:15.000000000 +0100
+--- src/version.c 2010-02-03 15:43:43.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 354,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+189. You put your e-mail address in the upper left-hand corner of envelopes.
+
+ /// 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/source/ap/vim/patches/7.2.355 b/source/ap/vim/patches/7.2.355
new file mode 100644
index 00000000..b23d44ae
--- /dev/null
+++ b/source/ap/vim/patches/7.2.355
@@ -0,0 +1,88 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.355
+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.2.355
+Problem: Computing the cursor column in validate_cursor_col() is wrong when
+ line numbers are used and 'n' is not in 'cpoptions', causing the
+ popup menu to be positioned wrong.
+Solution: Correctly use the offset. (partly by Dominique Pelle)
+Files: src/move.c
+
+
+*** ../vim-7.2.354/src/move.c 2009-11-03 16:22:59.000000000 +0100
+--- src/move.c 2010-02-03 17:15:16.000000000 +0100
+***************
+*** 889,894 ****
+--- 889,895 ----
+ {
+ colnr_T off;
+ colnr_T col;
++ int width;
+
+ validate_virtcol();
+ if (!(curwin->w_valid & VALID_WCOL))
+***************
+*** 896,910 ****
+ col = curwin->w_virtcol;
+ off = curwin_col_off();
+ col += off;
+
+ /* long line wrapping, adjust curwin->w_wrow */
+ if (curwin->w_p_wrap
+ && col >= (colnr_T)W_WIDTH(curwin)
+! && W_WIDTH(curwin) - off + curwin_col_off2() > 0)
+! {
+! col -= W_WIDTH(curwin);
+! col = col % (W_WIDTH(curwin) - off + curwin_col_off2());
+! }
+ if (col > (int)curwin->w_leftcol)
+ col -= curwin->w_leftcol;
+ else
+--- 897,910 ----
+ col = curwin->w_virtcol;
+ off = curwin_col_off();
+ col += off;
++ width = W_WIDTH(curwin) - off + curwin_col_off2();
+
+ /* long line wrapping, adjust curwin->w_wrow */
+ if (curwin->w_p_wrap
+ && col >= (colnr_T)W_WIDTH(curwin)
+! && width > 0)
+! /* use same formula as what is used in curs_columns() */
+! col -= ((col - W_WIDTH(curwin)) / width + 1) * width;
+ if (col > (int)curwin->w_leftcol)
+ col -= curwin->w_leftcol;
+ else
+***************
+*** 1041,1046 ****
+--- 1041,1047 ----
+ /* long line wrapping, adjust curwin->w_wrow */
+ if (curwin->w_wcol >= W_WIDTH(curwin))
+ {
++ /* this same formula is used in validate_cursor_col() */
+ n = (curwin->w_wcol - W_WIDTH(curwin)) / width + 1;
+ curwin->w_wcol -= n * width;
+ curwin->w_wrow += n;
+*** ../vim-7.2.354/src/version.c 2010-02-03 15:47:59.000000000 +0100
+--- src/version.c 2010-02-03 17:40:39.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 355,
+ /**/
+
+--
+I'm in shape. Round IS a shape.
+
+ /// 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/source/ap/vim/patches/7.2.356 b/source/ap/vim/patches/7.2.356
new file mode 100644
index 00000000..51b646cd
--- /dev/null
+++ b/source/ap/vim/patches/7.2.356
@@ -0,0 +1,69 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.356
+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.2.356
+Problem: When 'foldmethod' is changed not all folds are closed as expected.
+Solution: In foldUpdate() correct the start position and reset fd_flags when
+ w_foldinvalid is set. (Lech Lorens)
+Files: src/fold.c
+
+
+*** ../vim-7.2.355/src/fold.c 2010-01-19 17:24:20.000000000 +0100
+--- src/fold.c 2010-02-03 18:08:11.000000000 +0100
+***************
+*** 849,859 ****
+ fold_T *fp;
+
+ /* Mark all folds from top to bot as maybe-small. */
+! (void)foldFind(&curwin->w_folds, curwin->w_cursor.lnum, &fp);
+ while (fp < (fold_T *)curwin->w_folds.ga_data + curwin->w_folds.ga_len
+ && fp->fd_top < bot)
+ {
+ fp->fd_small = MAYBE;
+ ++fp;
+ }
+
+--- 849,865 ----
+ fold_T *fp;
+
+ /* Mark all folds from top to bot as maybe-small. */
+! (void)foldFind(&curwin->w_folds, top, &fp);
+ while (fp < (fold_T *)curwin->w_folds.ga_data + curwin->w_folds.ga_len
+ && fp->fd_top < bot)
+ {
+ fp->fd_small = MAYBE;
++
++ /* Not sure if this is the right place to reset fd_flags (suggested by
++ * Lech Lorens). */
++ if (wp->w_foldinvalid)
++ fp->fd_flags = FD_LEVEL;
++
+ ++fp;
+ }
+
+*** ../vim-7.2.355/src/version.c 2010-02-03 17:42:59.000000000 +0100
+--- src/version.c 2010-02-03 18:12:34.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 356,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+190. You quickly hand over your wallet, leather jacket, and car keys
+ during a mugging, then proceed to beat the crap out of your
+ assailant when he asks for your laptop.
+
+ /// 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/source/ap/vim/patches/7.2.357 b/source/ap/vim/patches/7.2.357
new file mode 100644
index 00000000..e1998a8f
--- /dev/null
+++ b/source/ap/vim/patches/7.2.357
@@ -0,0 +1,49 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.357
+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.2.357
+Problem: When changing 'fileformat' from/to "mac" and there is a CR in the
+ text the display is wrong.
+Solution: Redraw the text when 'fileformat' is changed. (Ben Schmidt)
+Files: src/option.c
+
+
+*** ../vim-7.2.356/src/option.c 2010-01-27 15:57:17.000000000 +0100
+--- src/option.c 2010-02-11 16:57:19.000000000 +0100
+***************
+*** 5867,5872 ****
+--- 5867,5876 ----
+ #endif
+ /* update flag in swap file */
+ ml_setflags(curbuf);
++ /* Redraw needed when switching to/from "mac": a CR in the text
++ * will be displayed differently. */
++ if (get_fileformat(curbuf) == EOL_MAC || *oldval == 'm')
++ redraw_curbuf_later(NOT_VALID);
+ }
+ }
+
+*** ../vim-7.2.356/src/version.c 2010-02-03 18:14:41.000000000 +0100
+--- src/version.c 2010-02-11 17:01:36.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 357,
+ /**/
+
+--
+From the classified section of a city newspaper:
+Dog for sale: eats anything and is fond of children.
+
+ /// 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/source/ap/vim/patches/7.2.358 b/source/ap/vim/patches/7.2.358
new file mode 100644
index 00000000..524049d6
--- /dev/null
+++ b/source/ap/vim/patches/7.2.358
@@ -0,0 +1,78 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.358
+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.2.358
+Problem: Compiler warnings on VMS. (Zoltan Arpadffy)
+Solution: Pass array itself instead its address. Return a value.
+Files: src/gui_gtk_x11.c, src/os_unix.c
+
+
+*** ../vim-7.2.357/src/gui_gtk_x11.c 2009-11-03 18:13:36.000000000 +0100
+--- src/gui_gtk_x11.c 2010-02-11 18:00:28.000000000 +0100
+***************
+*** 6190,6196 ****
+ int pcc[MAX_MCO];
+
+ /* TODO: use the composing characters */
+! c = utfc_ptr2char_len(p, &pcc, len - (p - s));
+ if (c >= 0x10000) /* show chars > 0xffff as ? */
+ c = 0xbf;
+ buf[textlen].byte1 = c >> 8;
+--- 6190,6196 ----
+ int pcc[MAX_MCO];
+
+ /* TODO: use the composing characters */
+! c = utfc_ptr2char_len(p, pcc, len - (p - s));
+ if (c >= 0x10000) /* show chars > 0xffff as ? */
+ c = 0xbf;
+ buf[textlen].byte1 = c >> 8;
+*** ../vim-7.2.357/src/os_unix.c 2009-07-22 13:27:50.000000000 +0200
+--- src/os_unix.c 2010-02-11 18:10:20.000000000 +0100
+***************
+*** 1471,1476 ****
+--- 1471,1479 ----
+ {
+ /* This function should not return, it causes exit(). Longjump instead. */
+ LONGJMP(lc_jump_env, 1);
++ # ifdef VMS
++ return 0; /* avoid the compiler complains about missing return value */
++ # endif
+ }
+ # endif
+
+***************
+*** 1490,1495 ****
+--- 1493,1501 ----
+
+ /* This function should not return, it causes exit(). Longjump instead. */
+ LONGJMP(x_jump_env, 1);
++ # ifdef VMS
++ return 0; /* avoid the compiler complains about missing return value */
++ # endif
+ }
+ #endif
+
+*** ../vim-7.2.357/src/version.c 2010-02-11 17:02:04.000000000 +0100
+--- src/version.c 2010-02-11 18:10:45.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 358,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+221. Your wife melts your keyboard in the oven.
+
+ /// 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/source/ap/vim/patches/7.2.359 b/source/ap/vim/patches/7.2.359
new file mode 100644
index 00000000..eb7ade2a
--- /dev/null
+++ b/source/ap/vim/patches/7.2.359
@@ -0,0 +1,68 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.359
+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.2.359
+Problem: Crash when using the Netbeans join command.
+Solution: Make sure the ml_flush_line() function is not used recursively.
+ (Xavier de Gaye)
+Files: src/memline.c
+
+
+*** ../vim-7.2.358/src/memline.c 2009-11-17 17:13:03.000000000 +0100
+--- src/memline.c 2010-02-11 18:47:48.000000000 +0100
+***************
+*** 3087,3098 ****
+--- 3087,3105 ----
+ int start;
+ int count;
+ int i;
++ static int entered = FALSE;
+
+ if (buf->b_ml.ml_line_lnum == 0 || buf->b_ml.ml_mfp == NULL)
+ return; /* nothing to do */
+
+ if (buf->b_ml.ml_flags & ML_LINE_DIRTY)
+ {
++ /* This code doesn't work recursively, but Netbeans may call back here
++ * when obtaining the cursor position. */
++ if (entered)
++ return;
++ entered = TRUE;
++
+ lnum = buf->b_ml.ml_line_lnum;
+ new_line = buf->b_ml.ml_line_ptr;
+
+***************
+*** 3160,3165 ****
+--- 3167,3174 ----
+ }
+ }
+ vim_free(new_line);
++
++ entered = FALSE;
+ }
+
+ buf->b_ml.ml_line_lnum = 0;
+*** ../vim-7.2.358/src/version.c 2010-02-11 18:19:32.000000000 +0100
+--- src/version.c 2010-02-11 18:53:55.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 359,
+ /**/
+
+--
+Your fault: core dumped
+
+ /// 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/source/ap/vim/patches/7.2.360 b/source/ap/vim/patches/7.2.360
new file mode 100644
index 00000000..7cf46205
--- /dev/null
+++ b/source/ap/vim/patches/7.2.360
@@ -0,0 +1,96 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.360
+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.2.360
+Problem: Ruby on MS-Windows: can't use sockets.
+Solution: Call NtInitialize() during initialization. (Ariya Mizutani)
+Files: src/if_ruby.c
+
+
+*** ../vim-7.2.359/src/if_ruby.c 2009-05-22 18:20:23.000000000 +0200
+--- src/if_ruby.c 2010-02-17 15:04:00.000000000 +0100
+***************
+*** 48,53 ****
+--- 48,58 ----
+ # endif
+ #endif
+
++ /* suggested by Ariya Mizutani */
++ #if (_MSC_VER == 1200)
++ # undef _WIN32_WINNT
++ #endif
++
+ #include <ruby.h>
+
+ #undef EXTERN
+***************
+*** 132,137 ****
+--- 137,143 ----
+ #define ruby_errinfo (*dll_ruby_errinfo)
+ #define ruby_init dll_ruby_init
+ #define ruby_init_loadpath dll_ruby_init_loadpath
++ #define NtInitialize dll_NtInitialize
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ # define rb_w32_snprintf dll_rb_w32_snprintf
+ #endif
+***************
+*** 186,191 ****
+--- 192,198 ----
+ static VALUE *dll_ruby_errinfo;
+ static void (*dll_ruby_init) (void);
+ static void (*dll_ruby_init_loadpath) (void);
++ static void (*dll_NtInitialize) (int*, char***);
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
+ #endif
+***************
+*** 248,253 ****
+--- 255,261 ----
+ {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
+ {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
+ {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
++ {"NtInitialize", (RUBY_PROC*)&dll_NtInitialize},
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
+ #endif
+***************
+*** 414,419 ****
+--- 422,433 ----
+ if (ruby_enabled(TRUE))
+ {
+ #endif
++ #ifdef _WIN32
++ /* suggested by Ariya Mizutani */
++ int argc = 1;
++ char *argv[] = {"gvim.exe"};
++ NtInitialize(&argc, &argv);
++ #endif
+ ruby_init();
+ ruby_init_loadpath();
+ ruby_io_init();
+*** ../vim-7.2.359/src/version.c 2010-02-11 18:54:38.000000000 +0100
+--- src/version.c 2010-02-17 15:10:22.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 360,
+ /**/
+
+--
+"After a few years of marriage a man can look right at a woman
+without seeing her and a woman can see right through a man
+without looking at him."
+ - Helen Rowland
+
+ /// 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/source/ap/vim/patches/7.2.361 b/source/ap/vim/patches/7.2.361
new file mode 100644
index 00000000..ddc58579
--- /dev/null
+++ b/source/ap/vim/patches/7.2.361
@@ -0,0 +1,763 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.361
+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.2.361
+Problem: Ruby 1.9 is not supported.
+Solution: Add Ruby 1.9 support. (Msaki Suketa)
+Files: src/Makefile, src/auto/configure, src/configure.in, src/if_ruby.c
+
+
+*** ../vim-7.2.360/src/Makefile 2010-02-17 15:12:22.000000000 +0100
+--- src/Makefile 2010-02-17 16:21:01.000000000 +0100
+***************
+*** 395,401 ****
+
+ # RUBY
+ # Uncomment this when you want to include the Ruby interface.
+! #CONF_OPT_RUBY = --enable-rubyinterp
+
+ # MZSCHEME
+ # Uncomment this when you want to include the MzScheme interface.
+--- 395,403 ----
+
+ # RUBY
+ # Uncomment this when you want to include the Ruby interface.
+! # Note: you need the development package (e.g., ruby1.9.1-dev on Ubuntu).
+! # CONF_OPT_RUBY = --enable-rubyinterp
+! # CONF_OPT_RUBY = --enable-rubyinterp --with-ruby-command=ruby1.9.1
+
+ # MZSCHEME
+ # Uncomment this when you want to include the MzScheme interface.
+*** ../vim-7.2.360/src/auto/configure 2009-12-16 17:14:08.000000000 +0100
+--- src/auto/configure 2010-02-17 16:08:59.000000000 +0100
+***************
+*** 793,798 ****
+--- 793,799 ----
+ enable_tclinterp
+ with_tclsh
+ enable_rubyinterp
++ with_ruby_command
+ enable_cscope
+ enable_workshop
+ enable_netbeans
+***************
+*** 1503,1508 ****
+--- 1504,1510 ----
+ --with-plthome=PLTHOME Use PLTHOME.
+ --with-python-config-dir=PATH Python's config directory
+ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)
++ --with-ruby-command=RUBY name of the Ruby command (default: ruby)
+ --with-x use the X Window System
+ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)
+ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)
+***************
+*** 5703,5711 ****
+ { $as_echo "$as_me:$LINENO: result: $enable_rubyinterp" >&5
+ $as_echo "$enable_rubyinterp" >&6; }
+ if test "$enable_rubyinterp" = "yes"; then
+
+! # Extract the first word of "ruby", so it can be a program name with args.
+! set dummy ruby; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_path_vi_cv_path_ruby+set}" = set; then
+--- 5705,5725 ----
+ { $as_echo "$as_me:$LINENO: result: $enable_rubyinterp" >&5
+ $as_echo "$enable_rubyinterp" >&6; }
+ if test "$enable_rubyinterp" = "yes"; then
++ { $as_echo "$as_me:$LINENO: checking --with-ruby-command argument" >&5
++ $as_echo_n "checking --with-ruby-command argument... " >&6; }
+
+! # Check whether --with-ruby-command was given.
+! if test "${with_ruby_command+set}" = set; then
+! withval=$with_ruby_command; RUBY_CMD="$withval"; { $as_echo "$as_me:$LINENO: result: $RUBY_CMD" >&5
+! $as_echo "$RUBY_CMD" >&6; }
+! else
+! RUBY_CMD="ruby"; { $as_echo "$as_me:$LINENO: result: defaulting to $RUBY_CMD" >&5
+! $as_echo "defaulting to $RUBY_CMD" >&6; }
+! fi
+!
+!
+! # Extract the first word of "$RUBY_CMD", so it can be a program name with args.
+! set dummy $RUBY_CMD; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_path_vi_cv_path_ruby+set}" = set; then
+***************
+*** 5752,5762 ****
+ $as_echo "OK" >&6; }
+ { $as_echo "$as_me:$LINENO: checking Ruby header files" >&5
+ $as_echo_n "checking Ruby header files... " >&6; }
+! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG["archdir"] || $hdrdir' 2>/dev/null`
+ if test "X$rubyhdrdir" != "X"; then
+ { $as_echo "$as_me:$LINENO: result: $rubyhdrdir" >&5
+ $as_echo "$rubyhdrdir" >&6; }
+ RUBY_CFLAGS="-I$rubyhdrdir"
+ rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["LIBS"]'`
+ if test "X$rubylibs" != "X"; then
+ RUBY_LIBS="$rubylibs"
+--- 5766,5782 ----
+ $as_echo "OK" >&6; }
+ { $as_echo "$as_me:$LINENO: checking Ruby header files" >&5
+ $as_echo_n "checking Ruby header files... " >&6; }
+! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG["rubyhdrdir"] || Config::CONFIG["archdir"] || $hdrdir' 2>/dev/null`
+ if test "X$rubyhdrdir" != "X"; then
+ { $as_echo "$as_me:$LINENO: result: $rubyhdrdir" >&5
+ $as_echo "$rubyhdrdir" >&6; }
+ RUBY_CFLAGS="-I$rubyhdrdir"
++ rubyarch=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["arch"]'`
++ if test -d "$rubyhdrdir/$rubyarch"; then
++ RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
++ fi
++ rubyversion=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["ruby_version"].gsub(/\./, "")[0,2]'`
++ RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
+ rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["LIBS"]'`
+ if test "X$rubylibs" != "X"; then
+ RUBY_LIBS="$rubylibs"
+***************
+*** 5793,5800 ****
+ _ACEOF
+
+ else
+! { $as_echo "$as_me:$LINENO: result: not found" >&5
+! $as_echo "not found" >&6; }
+ fi
+ else
+ { $as_echo "$as_me:$LINENO: result: too old; need Ruby version 1.6.0 or later" >&5
+--- 5813,5820 ----
+ _ACEOF
+
+ else
+! { $as_echo "$as_me:$LINENO: result: not found; disabling Ruby" >&5
+! $as_echo "not found; disabling Ruby" >&6; }
+ fi
+ else
+ { $as_echo "$as_me:$LINENO: result: too old; need Ruby version 1.6.0 or later" >&5
+*** ../vim-7.2.360/src/configure.in 2009-12-16 17:14:08.000000000 +0100
+--- src/configure.in 2010-02-17 16:00:58.000000000 +0100
+***************
+*** 949,965 ****
+ [enable_rubyinterp="no"])
+ AC_MSG_RESULT($enable_rubyinterp)
+ if test "$enable_rubyinterp" = "yes"; then
+ AC_SUBST(vi_cv_path_ruby)
+! AC_PATH_PROG(vi_cv_path_ruby, ruby)
+ if test "X$vi_cv_path_ruby" != "X"; then
+ AC_MSG_CHECKING(Ruby version)
+ if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
+ AC_MSG_RESULT(OK)
+ AC_MSG_CHECKING(Ruby header files)
+! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
+ if test "X$rubyhdrdir" != "X"; then
+ AC_MSG_RESULT($rubyhdrdir)
+ RUBY_CFLAGS="-I$rubyhdrdir"
+ rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
+ if test "X$rubylibs" != "X"; then
+ RUBY_LIBS="$rubylibs"
+--- 949,975 ----
+ [enable_rubyinterp="no"])
+ AC_MSG_RESULT($enable_rubyinterp)
+ if test "$enable_rubyinterp" = "yes"; then
++ AC_MSG_CHECKING(--with-ruby-command argument)
++ AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
++ RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
++ RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
+ AC_SUBST(vi_cv_path_ruby)
+! AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
+ if test "X$vi_cv_path_ruby" != "X"; then
+ AC_MSG_CHECKING(Ruby version)
+ if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
+ AC_MSG_RESULT(OK)
+ AC_MSG_CHECKING(Ruby header files)
+! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["rubyhdrdir"]] || Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
+ if test "X$rubyhdrdir" != "X"; then
+ AC_MSG_RESULT($rubyhdrdir)
+ RUBY_CFLAGS="-I$rubyhdrdir"
++ rubyarch=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["arch"]]'`
++ if test -d "$rubyhdrdir/$rubyarch"; then
++ RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
++ fi
++ rubyversion=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["ruby_version"]].gsub(/\./, "")[[0,2]]'`
++ RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
+ rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
+ if test "X$rubylibs" != "X"; then
+ RUBY_LIBS="$rubylibs"
+***************
+*** 997,1003 ****
+ RUBY_PRO="if_ruby.pro"
+ AC_DEFINE(FEAT_RUBY)
+ else
+! AC_MSG_RESULT(not found, disabling Ruby)
+ fi
+ else
+ AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
+--- 1007,1013 ----
+ RUBY_PRO="if_ruby.pro"
+ AC_DEFINE(FEAT_RUBY)
+ else
+! AC_MSG_RESULT(not found; disabling Ruby)
+ fi
+ else
+ AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
+*** ../vim-7.2.360/src/if_ruby.c 2010-02-17 15:11:35.000000000 +0100
+--- src/if_ruby.c 2010-02-17 16:08:47.000000000 +0100
+***************
+*** 54,59 ****
+--- 54,62 ----
+ #endif
+
+ #include <ruby.h>
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ # include <ruby/encoding.h>
++ #endif
+
+ #undef EXTERN
+ #undef _
+***************
+*** 65,70 ****
+--- 68,95 ----
+ # define __OPENTRANSPORTPROVIDERS__
+ #endif
+
++ /*
++ * Backward compatiblity for Ruby 1.8 and earlier.
++ * Ruby 1.9 does not provide STR2CSTR, instead StringValuePtr is provided.
++ * Ruby 1.9 does not provide RXXX(s)->len and RXXX(s)->ptr, instead
++ * RXXX_LEN(s) and RXXX_PTR(s) are provided.
++ */
++ #ifndef StringValuePtr
++ # define StringValuePtr(s) STR2CSTR(s)
++ #endif
++ #ifndef RARRAY_LEN
++ # define RARRAY_LEN(s) RARRAY(s)->len
++ #endif
++ #ifndef RARRAY_PTR
++ # define RARRAY_PTR(s) RARRAY(s)->ptr
++ #endif
++ #ifndef RSTRING_LEN
++ # define RSTRING_LEN(s) RSTRING(s)->len
++ #endif
++ #ifndef RSTRING_PTR
++ # define RSTRING_PTR(s) RSTRING(s)->ptr
++ #endif
++
+ #include "vim.h"
+ #include "version.h"
+
+***************
+*** 134,140 ****
+ #define rb_str_concat dll_rb_str_concat
+ #define rb_str_new dll_rb_str_new
+ #define rb_str_new2 dll_rb_str_new2
+! #define ruby_errinfo (*dll_ruby_errinfo)
+ #define ruby_init dll_ruby_init
+ #define ruby_init_loadpath dll_ruby_init_loadpath
+ #define NtInitialize dll_NtInitialize
+--- 159,169 ----
+ #define rb_str_concat dll_rb_str_concat
+ #define rb_str_new dll_rb_str_new
+ #define rb_str_new2 dll_rb_str_new2
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+! # define rb_errinfo dll_rb_errinfo
+! #else
+! # define ruby_errinfo (*dll_ruby_errinfo)
+! #endif
+ #define ruby_init dll_ruby_init
+ #define ruby_init_loadpath dll_ruby_init_loadpath
+ #define NtInitialize dll_NtInitialize
+***************
+*** 142,147 ****
+--- 171,184 ----
+ # define rb_w32_snprintf dll_rb_w32_snprintf
+ #endif
+
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ # define ruby_script dll_ruby_script
++ # define rb_enc_find_index dll_rb_enc_find_index
++ # define rb_enc_find dll_rb_enc_find
++ # define rb_enc_str_new dll_rb_enc_str_new
++ # define rb_sprintf dll_rb_sprintf
++ #endif
++
+ /*
+ * Pointers for dynamic link
+ */
+***************
+*** 189,195 ****
+--- 226,236 ----
+ static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
+ static VALUE (*dll_rb_str_new) (const char*, long);
+ static VALUE (*dll_rb_str_new2) (const char*);
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ static VALUE (*dll_rb_errinfo) (void);
++ #else
+ static VALUE *dll_ruby_errinfo;
++ #endif
+ static void (*dll_ruby_init) (void);
+ static void (*dll_ruby_init_loadpath) (void);
+ static void (*dll_NtInitialize) (int*, char***);
+***************
+*** 197,202 ****
+--- 238,251 ----
+ static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
+ #endif
+
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ static void (*dll_ruby_script) (const char*);
++ static int (*dll_rb_enc_find_index) (const char*);
++ static rb_encoding* (*dll_rb_enc_find) (const char*);
++ static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
++ static VALUE (*dll_rb_sprintf) (const char*, ...);
++ #endif
++
+ static HINSTANCE hinstRuby = 0; /* Instance of ruby.dll */
+
+ /*
+***************
+*** 252,264 ****
+--- 301,324 ----
+ {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
+ {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
+ {"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2},
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo},
++ #else
+ {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
++ #endif
+ {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
+ {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
+ {"NtInitialize", (RUBY_PROC*)&dll_NtInitialize},
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
+ #endif
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ {"ruby_script", (RUBY_PROC*)&dll_ruby_script},
++ {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
++ {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
++ {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
++ {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
++ #endif
+ {"", NULL},
+ };
+
+***************
+*** 348,353 ****
+--- 408,465 ----
+ vim_free(script);
+ }
+
++ /*
++ * In Ruby 1.9 or later, ruby String object has encoding.
++ * conversion buffer string of vim to ruby String object using
++ * VIM encoding option.
++ */
++ static VALUE
++ vim_str2rb_enc_str(const char *s)
++ {
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ int isnum;
++ long lval;
++ char_u *sval;
++ rb_encoding *enc;
++
++ isnum = get_option_value((char_u *)"enc", &lval, &sval, 0);
++ if (isnum == 0)
++ {
++ enc = rb_enc_find((char *)sval);
++ vim_free(sval);
++ if (enc) {
++ return rb_enc_str_new(s, strlen(s), enc);
++ }
++ }
++ #endif
++ return rb_str_new2(s);
++ }
++
++ static VALUE
++ eval_enc_string_protect(const char *str, int *state)
++ {
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ int isnum;
++ long lval;
++ char_u *sval;
++ rb_encoding *enc;
++ VALUE v;
++
++ isnum = get_option_value((char_u *)"enc", &lval, &sval, 0);
++ if (isnum == 0)
++ {
++ enc = rb_enc_find((char *)sval);
++ vim_free(sval);
++ if (enc)
++ {
++ v = rb_sprintf("#-*- coding:%s -*-\n%s", rb_enc_name(enc), str);
++ return rb_eval_string_protect(StringValuePtr(v), state);
++ }
++ }
++ #endif
++ return rb_eval_string_protect(str, state);
++ }
++
+ void ex_rubydo(exarg_T *eap)
+ {
+ int state;
+***************
+*** 360,368 ****
+ for (i = eap->line1; i <= eap->line2; i++) {
+ VALUE line, oldline;
+
+! line = oldline = rb_str_new2((char *)ml_get(i));
+ rb_lastline_set(line);
+! rb_eval_string_protect((char *) eap->arg, &state);
+ if (state) {
+ error_print(state);
+ break;
+--- 472,480 ----
+ for (i = eap->line1; i <= eap->line2; i++) {
+ VALUE line, oldline;
+
+! line = oldline = vim_str2rb_enc_str((char *)ml_get(i));
+ rb_lastline_set(line);
+! eval_enc_string_protect((char *) eap->arg, &state);
+ if (state) {
+ error_print(state);
+ break;
+***************
+*** 373,379 ****
+ EMSG(_("E265: $_ must be an instance of String"));
+ return;
+ }
+! ml_replace(i, (char_u *) STR2CSTR(line), 1);
+ changed();
+ #ifdef SYNTAX_HL
+ syn_changed(i); /* recompute syntax hl. for this line */
+--- 485,491 ----
+ EMSG(_("E265: $_ must be an instance of String"));
+ return;
+ }
+! ml_replace(i, (char_u *) StringValuePtr(line), 1);
+ changed();
+ #ifdef SYNTAX_HL
+ syn_changed(i); /* recompute syntax hl. for this line */
+***************
+*** 428,436 ****
+--- 540,557 ----
+ char *argv[] = {"gvim.exe"};
+ NtInitialize(&argc, &argv);
+ #endif
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ RUBY_INIT_STACK;
++ #endif
+ ruby_init();
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ ruby_script("vim-ruby");
++ #endif
+ ruby_init_loadpath();
+ ruby_io_init();
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ rb_enc_find_index("encdb");
++ #endif
+ ruby_vim_init();
+ ruby_initialized = 1;
+ #ifdef DYNAMIC_RUBY
+***************
+*** 448,455 ****
+--- 569,578 ----
+ static void error_print(int state)
+ {
+ #ifndef DYNAMIC_RUBY
++ #if !(defined(RUBY_VERSION) && RUBY_VERSION >= 19)
+ RUBYEXTERN VALUE ruby_errinfo;
+ #endif
++ #endif
+ VALUE eclass;
+ VALUE einfo;
+ char buff[BUFSIZ];
+***************
+*** 482,490 ****
+ break;
+ case TAG_RAISE:
+ case TAG_FATAL:
+ eclass = CLASS_OF(ruby_errinfo);
+ einfo = rb_obj_as_string(ruby_errinfo);
+! if (eclass == rb_eRuntimeError && RSTRING(einfo)->len == 0) {
+ EMSG(_("E272: unhandled exception"));
+ }
+ else {
+--- 605,618 ----
+ break;
+ case TAG_RAISE:
+ case TAG_FATAL:
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ eclass = CLASS_OF(rb_errinfo());
++ einfo = rb_obj_as_string(rb_errinfo());
++ #else
+ eclass = CLASS_OF(ruby_errinfo);
+ einfo = rb_obj_as_string(ruby_errinfo);
+! #endif
+! if (eclass == rb_eRuntimeError && RSTRING_LEN(einfo) == 0) {
+ EMSG(_("E272: unhandled exception"));
+ }
+ else {
+***************
+*** 493,499 ****
+
+ epath = rb_class_path(eclass);
+ vim_snprintf(buff, BUFSIZ, "%s: %s",
+! RSTRING(epath)->ptr, RSTRING(einfo)->ptr);
+ p = strchr(buff, '\n');
+ if (p) *p = '\0';
+ EMSG(buff);
+--- 621,627 ----
+
+ epath = rb_class_path(eclass);
+ vim_snprintf(buff, BUFSIZ, "%s: %s",
+! RSTRING_PTR(epath), RSTRING_PTR(einfo));
+ p = strchr(buff, '\n');
+ if (p) *p = '\0';
+ EMSG(buff);
+***************
+*** 511,518 ****
+ char *buff, *p;
+
+ str = rb_obj_as_string(str);
+! buff = ALLOCA_N(char, RSTRING(str)->len);
+! strcpy(buff, RSTRING(str)->ptr);
+ p = strchr(buff, '\n');
+ if (p) *p = '\0';
+ MSG(buff);
+--- 639,646 ----
+ char *buff, *p;
+
+ str = rb_obj_as_string(str);
+! buff = ALLOCA_N(char, RSTRING_LEN(str));
+! strcpy(buff, RSTRING_PTR(str));
+ p = strchr(buff, '\n');
+ if (p) *p = '\0';
+ MSG(buff);
+***************
+*** 521,541 ****
+
+ static VALUE vim_set_option(VALUE self UNUSED, VALUE str)
+ {
+! do_set((char_u *)STR2CSTR(str), 0);
+ update_screen(NOT_VALID);
+ return Qnil;
+ }
+
+ static VALUE vim_command(VALUE self UNUSED, VALUE str)
+ {
+! do_cmdline_cmd((char_u *)STR2CSTR(str));
+ return Qnil;
+ }
+
+ static VALUE vim_evaluate(VALUE self UNUSED, VALUE str)
+ {
+ #ifdef FEAT_EVAL
+! char_u *value = eval_to_string((char_u *)STR2CSTR(str), NULL, TRUE);
+
+ if (value != NULL)
+ {
+--- 649,669 ----
+
+ static VALUE vim_set_option(VALUE self UNUSED, VALUE str)
+ {
+! do_set((char_u *)StringValuePtr(str), 0);
+ update_screen(NOT_VALID);
+ return Qnil;
+ }
+
+ static VALUE vim_command(VALUE self UNUSED, VALUE str)
+ {
+! do_cmdline_cmd((char_u *)StringValuePtr(str));
+ return Qnil;
+ }
+
+ static VALUE vim_evaluate(VALUE self UNUSED, VALUE str)
+ {
+ #ifdef FEAT_EVAL
+! char_u *value = eval_to_string((char_u *)StringValuePtr(str), NULL, TRUE);
+
+ if (value != NULL)
+ {
+***************
+*** 640,648 ****
+ if (n > 0 && n <= buf->b_ml.ml_line_count)
+ {
+ char *line = (char *)ml_get_buf(buf, n, FALSE);
+! return line ? rb_str_new2(line) : Qnil;
+ }
+! rb_raise(rb_eIndexError, "index %d out of buffer", n);
+ #ifndef __GNUC__
+ return Qnil; /* For stop warning */
+ #endif
+--- 768,776 ----
+ if (n > 0 && n <= buf->b_ml.ml_line_count)
+ {
+ char *line = (char *)ml_get_buf(buf, n, FALSE);
+! return line ? vim_str2rb_enc_str(line) : Qnil;
+ }
+! rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
+ #ifndef __GNUC__
+ return Qnil; /* For stop warning */
+ #endif
+***************
+*** 659,665 ****
+
+ static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str)
+ {
+! char *line = STR2CSTR(str);
+ aco_save_T aco;
+
+ if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL)
+--- 787,793 ----
+
+ static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str)
+ {
+! char *line = StringValuePtr(str);
+ aco_save_T aco;
+
+ if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL)
+***************
+*** 683,689 ****
+ }
+ else
+ {
+! rb_raise(rb_eIndexError, "index %d out of buffer", n);
+ #ifndef __GNUC__
+ return Qnil; /* For stop warning */
+ #endif
+--- 811,817 ----
+ }
+ else
+ {
+! rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
+ #ifndef __GNUC__
+ return Qnil; /* For stop warning */
+ #endif
+***************
+*** 729,735 ****
+ }
+ else
+ {
+! rb_raise(rb_eIndexError, "index %d out of buffer", n);
+ }
+ return Qnil;
+ }
+--- 857,863 ----
+ }
+ else
+ {
+! rb_raise(rb_eIndexError, "line number %ld out of range", n);
+ }
+ return Qnil;
+ }
+***************
+*** 737,747 ****
+ static VALUE buffer_append(VALUE self, VALUE num, VALUE str)
+ {
+ buf_T *buf = get_buf(self);
+! char *line = STR2CSTR(str);
+ long n = NUM2LONG(num);
+ aco_save_T aco;
+
+! if (n >= 0 && n <= buf->b_ml.ml_line_count && line != NULL)
+ {
+ /* set curwin/curbuf for "buf" and save some things */
+ aucmd_prepbuf(&aco, buf);
+--- 865,878 ----
+ static VALUE buffer_append(VALUE self, VALUE num, VALUE str)
+ {
+ buf_T *buf = get_buf(self);
+! char *line = StringValuePtr(str);
+ long n = NUM2LONG(num);
+ aco_save_T aco;
+
+! if (line != NULL) {
+! rb_raise(rb_eIndexError, "NULL line");
+! }
+! else if (n >= 0 && n <= buf->b_ml.ml_line_count)
+ {
+ /* set curwin/curbuf for "buf" and save some things */
+ aucmd_prepbuf(&aco, buf);
+***************
+*** 763,769 ****
+ update_curbuf(NOT_VALID);
+ }
+ else {
+! rb_raise(rb_eIndexError, "index %d out of buffer", n);
+ }
+ return str;
+ }
+--- 894,900 ----
+ update_curbuf(NOT_VALID);
+ }
+ else {
+! rb_raise(rb_eIndexError, "line number %ld out of range", n);
+ }
+ return str;
+ }
+***************
+*** 904,913 ****
+ win_T *win = get_win(self);
+
+ Check_Type(pos, T_ARRAY);
+! if (RARRAY(pos)->len != 2)
+ rb_raise(rb_eArgError, "array length must be 2");
+! lnum = RARRAY(pos)->ptr[0];
+! col = RARRAY(pos)->ptr[1];
+ win->w_cursor.lnum = NUM2LONG(lnum);
+ win->w_cursor.col = NUM2UINT(col);
+ check_cursor(); /* put cursor on an existing line */
+--- 1035,1044 ----
+ win_T *win = get_win(self);
+
+ Check_Type(pos, T_ARRAY);
+! if (RARRAY_LEN(pos) != 2)
+ rb_raise(rb_eArgError, "array length must be 2");
+! lnum = RARRAY_PTR(pos)[0];
+! col = RARRAY_PTR(pos)[1];
+ win->w_cursor.lnum = NUM2LONG(lnum);
+ win->w_cursor.col = NUM2UINT(col);
+ check_cursor(); /* put cursor on an existing line */
+***************
+*** 924,930 ****
+ if (i > 0) rb_str_cat(str, ", ", 2);
+ rb_str_concat(str, rb_inspect(argv[i]));
+ }
+! MSG(RSTRING(str)->ptr);
+ return Qnil;
+ }
+
+--- 1055,1061 ----
+ if (i > 0) rb_str_cat(str, ", ", 2);
+ rb_str_concat(str, rb_inspect(argv[i]));
+ }
+! MSG(RSTRING_PTR(str));
+ return Qnil;
+ }
+
+*** ../vim-7.2.360/src/version.c 2010-02-17 15:11:35.000000000 +0100
+--- src/version.c 2010-02-17 15:59:12.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 361,
+ /**/
+
+--
+"Marriage is when a man and woman become as one; the trouble starts
+when they try to decide which one"
+
+ /// 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/source/ap/vim/patches/7.2.362 b/source/ap/vim/patches/7.2.362
new file mode 100644
index 00000000..2f62cf62
--- /dev/null
+++ b/source/ap/vim/patches/7.2.362
@@ -0,0 +1,95 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.362 (extra)
+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.2.362 (extra, after 7.2.352)
+Problem: Win64: Vim doesn't work when cross-compiled with MingW libraries.
+Solution: Instead of handling WM_NCCREATE, create wide text area window
+ class if the parent window iw side. (Sergey Khorev)
+Files: src/gui_w32.c, src/gui_w48.c
+
+
+*** ../vim-7.2.361/src/gui_w32.c 2009-12-24 16:11:24.000000000 +0100
+--- src/gui_w32.c 2010-02-17 16:26:58.000000000 +0100
+***************
+*** 1329,1334 ****
+--- 1329,1335 ----
+ WNDCLASS wndclass;
+ #ifdef FEAT_MBYTE
+ const WCHAR szVimWndClassW[] = VIM_CLASSW;
++ const WCHAR szTextAreaClassW[] = L"VimTextArea";
+ WNDCLASSW wndclassw;
+ #endif
+ #ifdef GLOBAL_IME
+***************
+*** 1479,1484 ****
+--- 1480,1507 ----
+ #endif
+
+ /* Create the text area window */
++ #ifdef FEAT_MBYTE
++ if (wide_WindowProc)
++ {
++ if (GetClassInfoW(s_hinst, szTextAreaClassW, &wndclassw) == 0)
++ {
++ wndclassw.style = CS_OWNDC;
++ wndclassw.lpfnWndProc = _TextAreaWndProc;
++ wndclassw.cbClsExtra = 0;
++ wndclassw.cbWndExtra = 0;
++ wndclassw.hInstance = s_hinst;
++ wndclassw.hIcon = NULL;
++ wndclassw.hCursor = LoadCursor(NULL, IDC_ARROW);
++ wndclassw.hbrBackground = NULL;
++ wndclassw.lpszMenuName = NULL;
++ wndclassw.lpszClassName = szTextAreaClassW;
++
++ if (RegisterClassW(&wndclassw) == 0)
++ return FAIL;
++ }
++ }
++ else
++ #endif
+ if (GetClassInfo(s_hinst, szTextAreaClass, &wndclass) == 0)
+ {
+ wndclass.style = CS_OWNDC;
+*** ../vim-7.2.361/src/gui_w48.c 2010-02-03 12:23:16.000000000 +0100
+--- src/gui_w48.c 2010-02-17 16:27:21.000000000 +0100
+***************
+*** 1084,1096 ****
+ case WM_NOTIFY: Handle_WM_Notify(hwnd, (LPNMHDR)lParam);
+ return TRUE;
+ #endif
+- /* Workaround for the problem that MyWindowProc() returns FALSE on 64
+- * bit windows when cross-compiled using Mingw libraries. (Andy
+- * Kittner) */
+- case WM_NCCREATE:
+- MyWindowProc(hwnd, uMsg, wParam, lParam);
+- return TRUE;
+-
+ default:
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+ }
+--- 1084,1089 ----
+*** ../vim-7.2.361/src/version.c 2010-02-17 16:23:03.000000000 +0100
+--- src/version.c 2010-02-17 16:30:52.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 362,
+ /**/
+
+--
+"Marriage is the process of finding out what kind of man your wife
+would have preferred"
+
+ /// 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/source/ap/vim/patches/7.2.363 b/source/ap/vim/patches/7.2.363
new file mode 100644
index 00000000..2447103b
--- /dev/null
+++ b/source/ap/vim/patches/7.2.363
@@ -0,0 +1,70 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.363
+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.2.363
+Problem: Can't dynamically load Perl 5.10.
+Solution: Add the function Perl_croak_xs_usage. (Sergey Khorev)
+Files: src/if_perl.xs
+
+
+*** ../vim-7.2.362/src/if_perl.xs 2009-11-11 14:45:36.000000000 +0100
+--- src/if_perl.xs 2010-02-17 16:33:16.000000000 +0100
+***************
+*** 93,98 ****
+--- 93,101 ----
+ # define perl_free dll_perl_free
+ # define Perl_get_context dll_Perl_get_context
+ # define Perl_croak dll_Perl_croak
++ # if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
++ # define Perl_croak_xs_usage dll_Perl_croak_xs_usage
++ # endif
+ # ifndef PROTO
+ # define Perl_croak_nocontext dll_Perl_croak_nocontext
+ # define Perl_call_argv dll_Perl_call_argv
+***************
+*** 202,207 ****
+--- 205,213 ----
+ static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**);
+ static void* (*Perl_get_context)(void);
+ static void (*Perl_croak)(pTHX_ const char*, ...);
++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
++ static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params);
++ #endif
+ static void (*Perl_croak_nocontext)(const char*, ...);
+ static I32 (*Perl_dowantarray)(pTHX);
+ static void (*Perl_free_tmps)(pTHX);
+***************
+*** 306,311 ****
+--- 312,320 ----
+ {"perl_parse", (PERL_PROC*)&perl_parse},
+ {"Perl_get_context", (PERL_PROC*)&Perl_get_context},
+ {"Perl_croak", (PERL_PROC*)&Perl_croak},
++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
++ {"Perl_croak_xs_usage", (PERL_PROC*)&Perl_croak_xs_usage},
++ #endif
+ {"Perl_croak_nocontext", (PERL_PROC*)&Perl_croak_nocontext},
+ {"Perl_dowantarray", (PERL_PROC*)&Perl_dowantarray},
+ {"Perl_free_tmps", (PERL_PROC*)&Perl_free_tmps},
+*** ../vim-7.2.362/src/version.c 2010-02-17 16:31:27.000000000 +0100
+--- src/version.c 2010-02-17 16:35:39.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 363,
+ /**/
+
+--
+If you're sending someone Styrofoam, what do you pack it in?
+
+ /// 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/source/ap/vim/patches/7.2.364 b/source/ap/vim/patches/7.2.364
new file mode 100644
index 00000000..c3c6e8b6
--- /dev/null
+++ b/source/ap/vim/patches/7.2.364
@@ -0,0 +1,91 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.364 (extra)
+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.2.364 (extra)
+Problem: Can't build gvimext.dll on Win 7 x64 using MinGW (John Marriott)
+Solution: Check if _MSC_VER is defined. (Andy Kittner)
+Files: src/GvimExt/gvimext.h
+
+
+*** ../vim-7.2.363/src/GvimExt/gvimext.h 2006-04-24 21:23:03.000000000 +0200
+--- src/GvimExt/gvimext.h 2010-02-17 17:20:00.000000000 +0100
+***************
+*** 14,22 ****
+ #if !defined(AFX_STDAFX_H__3389658B_AD83_11D3_9C1E_0090278BBD99__INCLUDED_)
+ #define AFX_STDAFX_H__3389658B_AD83_11D3_9C1E_0090278BBD99__INCLUDED_
+
+! #if _MSC_VER > 1000
+ #pragma once
+! #endif // _MSC_VER > 1000
+
+ // Insert your headers here
+ // #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
+--- 14,22 ----
+ #if !defined(AFX_STDAFX_H__3389658B_AD83_11D3_9C1E_0090278BBD99__INCLUDED_)
+ #define AFX_STDAFX_H__3389658B_AD83_11D3_9C1E_0090278BBD99__INCLUDED_
+
+! #if defined(_MSC_VER) && _MSC_VER > 1000
+ #pragma once
+! #endif
+
+ // Insert your headers here
+ // #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
+***************
+*** 34,40 ****
+ #define INC_OLE2 // WIN32, get ole2 from windows.h
+
+ /* Visual Studio 2005 has 'deprecated' many of the standard CRT functions */
+! #if _MSC_VER >= 1400
+ # define _CRT_SECURE_NO_DEPRECATE
+ # define _CRT_NONSTDC_NO_DEPRECATE
+ #endif
+--- 34,40 ----
+ #define INC_OLE2 // WIN32, get ole2 from windows.h
+
+ /* Visual Studio 2005 has 'deprecated' many of the standard CRT functions */
+! #if defined(_MSC_VER) && _MSC_VER >= 1400
+ # define _CRT_SECURE_NO_DEPRECATE
+ # define _CRT_NONSTDC_NO_DEPRECATE
+ #endif
+***************
+*** 44,50 ****
+ #include <shlobj.h>
+
+ /* Accommodate old versions of VC that don't have a modern Platform SDK */
+! #if _MSC_VER < 1300
+ # undef UINT_PTR
+ # define UINT_PTR UINT
+ #endif
+--- 44,50 ----
+ #include <shlobj.h>
+
+ /* Accommodate old versions of VC that don't have a modern Platform SDK */
+! #if defined(_MSC_VER) && _MSC_VER < 1300
+ # undef UINT_PTR
+ # define UINT_PTR UINT
+ #endif
+*** ../vim-7.2.363/src/version.c 2010-02-17 16:40:47.000000000 +0100
+--- src/version.c 2010-02-17 17:23:15.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 364,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+245. You use Real Audio to listen to a radio station from a distant
+ city rather than turn on your stereo system.
+
+ /// 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/source/ap/vim/patches/7.2.365 b/source/ap/vim/patches/7.2.365
new file mode 100644
index 00000000..e48990b9
--- /dev/null
+++ b/source/ap/vim/patches/7.2.365
@@ -0,0 +1,71 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.365 (extra)
+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.2.365 (extra)
+Problem: MS-Windows with MingW: "File->Save As" does not work. (John
+ Marriott)
+Solution: Correctly fill in structure size. (Andy Kittner)
+Files: src/gui_w48.c
+
+
+*** ../vim-7.2.364/src/gui_w48.c 2010-02-17 16:31:27.000000000 +0100
+--- src/gui_w48.c 2010-02-17 17:30:15.000000000 +0100
+***************
+*** 3345,3351 ****
+ #ifdef OPENFILENAME_SIZE_VERSION_400
+ /* be compatible with Windows NT 4.0 */
+ /* TODO: what to use for OPENFILENAMEW??? */
+! fileStruct.lStructSize = sizeof(OPENFILENAME_SIZE_VERSION_400);
+ #else
+ fileStruct.lStructSize = sizeof(fileStruct);
+ #endif
+--- 3345,3351 ----
+ #ifdef OPENFILENAME_SIZE_VERSION_400
+ /* be compatible with Windows NT 4.0 */
+ /* TODO: what to use for OPENFILENAMEW??? */
+! fileStruct.lStructSize = OPENFILENAME_SIZE_VERSION_400;
+ #else
+ fileStruct.lStructSize = sizeof(fileStruct);
+ #endif
+***************
+*** 3506,3512 ****
+ memset(&fileStruct, 0, sizeof(OPENFILENAME));
+ #ifdef OPENFILENAME_SIZE_VERSION_400
+ /* be compatible with Windows NT 4.0 */
+! fileStruct.lStructSize = sizeof(OPENFILENAME_SIZE_VERSION_400);
+ #else
+ fileStruct.lStructSize = sizeof(fileStruct);
+ #endif
+--- 3506,3512 ----
+ memset(&fileStruct, 0, sizeof(OPENFILENAME));
+ #ifdef OPENFILENAME_SIZE_VERSION_400
+ /* be compatible with Windows NT 4.0 */
+! fileStruct.lStructSize = OPENFILENAME_SIZE_VERSION_400;
+ #else
+ fileStruct.lStructSize = sizeof(fileStruct);
+ #endif
+*** ../vim-7.2.364/src/version.c 2010-02-17 17:24:23.000000000 +0100
+--- src/version.c 2010-02-17 17:31:54.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 365,
+ /**/
+
+
+--
+hundred-and-one symptoms of being an internet addict:
+246. You use up your free 100 hours in less than a week.
+
+ /// 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/source/ap/vim/patches/7.2.366 b/source/ap/vim/patches/7.2.366
new file mode 100644
index 00000000..952a0f2f
--- /dev/null
+++ b/source/ap/vim/patches/7.2.366
@@ -0,0 +1,134 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.366
+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.2.366
+Problem: CTRL-B doesn't go back to the first line of the buffer.
+Solution: Avoid an overflow when adding MAXCOL.
+Files: src/move.c
+
+
+*** ../vim-7.2.365/src/move.c 2010-02-03 17:42:59.000000000 +0100
+--- src/move.c 2010-02-17 17:49:34.000000000 +0100
+***************
+*** 1610,1616 ****
+ * Add one line above "lp->lnum". This can be a filler line, a closed fold or
+ * a (wrapped) text line. Uses and sets "lp->fill".
+ * Returns the height of the added line in "lp->height".
+! * Lines above the first one are incredibly high.
+ */
+ static void
+ topline_back(lp)
+--- 1610,1616 ----
+ * Add one line above "lp->lnum". This can be a filler line, a closed fold or
+ * a (wrapped) text line. Uses and sets "lp->fill".
+ * Returns the height of the added line in "lp->height".
+! * Lines above the first one are incredibly high: MAXCOL.
+ */
+ static void
+ topline_back(lp)
+***************
+*** 1942,1948 ****
+ {
+ loff.lnum = curwin->w_topline;
+ topline_back(&loff);
+! if (used + loff.height > curwin->w_height)
+ break;
+ used += loff.height;
+ #ifdef FEAT_DIFF
+--- 1942,1948 ----
+ {
+ loff.lnum = curwin->w_topline;
+ topline_back(&loff);
+! if (loff.height == MAXCOL || used + loff.height > curwin->w_height)
+ break;
+ used += loff.height;
+ #ifdef FEAT_DIFF
+***************
+*** 2021,2027 ****
+
+ /* Add one line above */
+ topline_back(&loff);
+! used += loff.height;
+ if (used > curwin->w_height)
+ break;
+ if (loff.lnum >= curwin->w_botline
+--- 2021,2030 ----
+
+ /* Add one line above */
+ topline_back(&loff);
+! if (loff.height == MAXCOL)
+! used = MAXCOL;
+! else
+! used += loff.height;
+ if (used > curwin->w_height)
+ break;
+ if (loff.lnum >= curwin->w_botline
+***************
+*** 2175,2181 ****
+ if (below > above) /* add a line above the cursor */
+ {
+ topline_back(&loff);
+! used += loff.height;
+ if (used > curwin->w_height)
+ break;
+ above += loff.height;
+--- 2178,2187 ----
+ if (below > above) /* add a line above the cursor */
+ {
+ topline_back(&loff);
+! if (loff.height == MAXCOL)
+! used = MAXCOL;
+! else
+! used += loff.height;
+ if (used > curwin->w_height)
+ break;
+ above += loff.height;
+***************
+*** 2472,2480 ****
+ while (n <= curwin->w_height && loff.lnum >= 1)
+ {
+ topline_back(&loff);
+! n += loff.height;
+ }
+! if (n <= curwin->w_height) /* at begin of file */
+ {
+ curwin->w_topline = 1;
+ #ifdef FEAT_DIFF
+--- 2478,2489 ----
+ while (n <= curwin->w_height && loff.lnum >= 1)
+ {
+ topline_back(&loff);
+! if (loff.height == MAXCOL)
+! n = MAXCOL;
+! else
+! n += loff.height;
+ }
+! if (loff.lnum < 1) /* at begin of file */
+ {
+ curwin->w_topline = 1;
+ #ifdef FEAT_DIFF
+*** ../vim-7.2.365/src/version.c 2010-02-17 17:34:38.000000000 +0100
+--- src/version.c 2010-02-17 18:13:22.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 366,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+247. You use www.switchboard.com instead of dialing 411 and 555-12-12
+ for directory assistance.
+
+ /// 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/source/ap/vim/patches/7.2.367 b/source/ap/vim/patches/7.2.367
new file mode 100644
index 00000000..6d461c98
--- /dev/null
+++ b/source/ap/vim/patches/7.2.367
@@ -0,0 +1,77 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.367
+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.2.367
+Problem: "xxd -r -p" doesn't work as documented.
+Solution: Skip white space. (James Vega)
+Files: src/xxd/xxd.c
+
+
+*** ../vim-7.2.366/src/xxd/xxd.c 2009-06-16 18:29:37.000000000 +0200
+--- src/xxd/xxd.c 2010-02-17 18:25:11.000000000 +0100
+***************
+*** 231,237 ****
+ fprintf(stderr, " or\n %s -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\n", pname);
+ fprintf(stderr, "Options:\n");
+ fprintf(stderr, " -a toggle autoskip: A single '*' replaces nul-lines. Default off.\n");
+! fprintf(stderr, " -b binary digit dump (incompatible with -p,-i,-r). Default hex.\n");
+ fprintf(stderr, " -c cols format <cols> octets per line. Default 16 (-i: 12, -ps: 30).\n");
+ fprintf(stderr, " -E show characters in EBCDIC. Default ASCII.\n");
+ fprintf(stderr, " -g number of octets per group in normal output. Default 2.\n");
+--- 231,237 ----
+ fprintf(stderr, " or\n %s -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\n", pname);
+ fprintf(stderr, "Options:\n");
+ fprintf(stderr, " -a toggle autoskip: A single '*' replaces nul-lines. Default off.\n");
+! fprintf(stderr, " -b binary digit dump (incompatible with -ps,-i,-r). Default hex.\n");
+ fprintf(stderr, " -c cols format <cols> octets per line. Default 16 (-i: 12, -ps: 30).\n");
+ fprintf(stderr, " -E show characters in EBCDIC. Default ASCII.\n");
+ fprintf(stderr, " -g number of octets per group in normal output. Default 2.\n");
+***************
+*** 276,286 ****
+ if (c == '\r') /* Doze style input file? */
+ continue;
+
+! #if 0 /* this doesn't work when there is normal text after the hex codes in
+! the last line that looks like hex */
+! if (c == ' ' || c == '\n' || c == '\t') /* allow multiple spaces */
+ continue;
+- #endif
+
+ n3 = n2;
+ n2 = n1;
+--- 276,286 ----
+ if (c == '\r') /* Doze style input file? */
+ continue;
+
+! /* Allow multiple spaces. This doesn't work when there is normal text
+! * after the hex codes in the last line that looks like hex, thus only
+! * use it for PostScript format. */
+! if (hextype == HEX_POSTSCRIPT && (c == ' ' || c == '\n' || c == '\t'))
+ continue;
+
+ n3 = n2;
+ n2 = n1;
+*** ../vim-7.2.366/src/version.c 2010-02-17 18:20:23.000000000 +0100
+--- src/version.c 2010-02-17 18:26:35.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 367,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+248. You sign your letters with your e-mail address instead of your name.
+
+ /// 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/source/ap/vim/patches/7.2.368 b/source/ap/vim/patches/7.2.368
new file mode 100644
index 00000000..43107699
--- /dev/null
+++ b/source/ap/vim/patches/7.2.368
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.368
+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.2.368 (after 7.2.361)
+Problem: Ruby interface: Appending line doesn't work. (Michael Henry)
+Solution: Reverse check for NULL line. (James Vega)
+Files: src/if_ruby.c
+
+
+*** ../vim-7.2.367/src/if_ruby.c 2010-02-17 16:23:03.000000000 +0100
+--- src/if_ruby.c 2010-02-18 15:47:42.000000000 +0100
+***************
+*** 869,875 ****
+ long n = NUM2LONG(num);
+ aco_save_T aco;
+
+! if (line != NULL) {
+ rb_raise(rb_eIndexError, "NULL line");
+ }
+ else if (n >= 0 && n <= buf->b_ml.ml_line_count)
+--- 869,875 ----
+ long n = NUM2LONG(num);
+ aco_save_T aco;
+
+! if (line == NULL) {
+ rb_raise(rb_eIndexError, "NULL line");
+ }
+ else if (n >= 0 && n <= buf->b_ml.ml_line_count)
+*** ../vim-7.2.367/src/version.c 2010-02-17 18:28:06.000000000 +0100
+--- src/version.c 2010-02-18 15:48:09.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 368,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+251. You've never seen your closest friends who usually live WAY too far away.
+
+ /// 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/source/ap/vim/patches/7.2.369 b/source/ap/vim/patches/7.2.369
new file mode 100644
index 00000000..adcab24e
--- /dev/null
+++ b/source/ap/vim/patches/7.2.369
@@ -0,0 +1,55 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.369
+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.2.369
+Problem: Error message is not easy to understand.
+Solution: Add quotes. (SungHyun Nam)
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.2.368/src/ex_cmds2.c 2010-02-03 15:14:15.000000000 +0100
+--- src/ex_cmds2.c 2010-02-18 21:16:20.000000000 +0100
+***************
+*** 1092,1098 ****
+ set_vim_var_nr(VV_PROFILING, 1L);
+ }
+ else if (do_profiling == PROF_NONE)
+! EMSG(_("E750: First use :profile start <fname>"));
+ else if (STRCMP(eap->arg, "pause") == 0)
+ {
+ if (do_profiling == PROF_YES)
+--- 1092,1098 ----
+ set_vim_var_nr(VV_PROFILING, 1L);
+ }
+ else if (do_profiling == PROF_NONE)
+! EMSG(_("E750: First use \":profile start {fname}\""));
+ else if (STRCMP(eap->arg, "pause") == 0)
+ {
+ if (do_profiling == PROF_YES)
+*** ../vim-7.2.368/src/version.c 2010-02-18 15:51:25.000000000 +0100
+--- src/version.c 2010-02-24 13:58:28.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 369,
+ /**/
+
+--
+MAN: You don't frighten us, English pig-dog! Go and boil your bottoms,
+ son of a silly person. I blow my nose on you, so-called Arthur-king,
+ you and your silly English K...kaniggets.
+ He puts hands to his ears and blows a raspberry.
+ "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/source/ap/vim/patches/7.2.370 b/source/ap/vim/patches/7.2.370
new file mode 100644
index 00000000..3e8457e0
--- /dev/null
+++ b/source/ap/vim/patches/7.2.370
@@ -0,0 +1,156 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.370
+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.2.370 (after 7.2.356)
+Problem: A redraw may cause folds to be closed.
+Solution: Revert part of the previous patch. Add a test. (Lech Lorens)
+Files: src/diff.c, src/fold.c, src/option.c, src/testdir/test45.in,
+ src/testdir/test45.ok
+
+
+*** ../vim-7.2.369/src/diff.c 2009-07-22 16:22:33.000000000 +0200
+--- src/diff.c 2010-02-24 14:31:12.000000000 +0100
+***************
+*** 1117,1142 ****
+ win_T *wp;
+ int addbuf; /* Add buffer to diff. */
+ {
+ wp->w_p_diff = TRUE;
+ wp->w_p_scb = TRUE;
+ wp->w_p_wrap = FALSE;
+ # ifdef FEAT_FOLDING
+! {
+! win_T *old_curwin = curwin;
+!
+! curwin = wp;
+! curbuf = curwin->w_buffer;
+! set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff",
+ OPT_LOCAL|OPT_FREE, 0);
+! curwin = old_curwin;
+! curbuf = curwin->w_buffer;
+! wp->w_p_fdc = diff_foldcolumn;
+! wp->w_p_fen = TRUE;
+! wp->w_p_fdl = 0;
+! foldUpdateAll(wp);
+! /* make sure topline is not halfway a fold */
+! changed_window_setting_win(wp);
+! }
+ # endif
+ #ifdef FEAT_SCROLLBIND
+ if (vim_strchr(p_sbo, 'h') == NULL)
+--- 1117,1147 ----
+ win_T *wp;
+ int addbuf; /* Add buffer to diff. */
+ {
++ # ifdef FEAT_FOLDING
++ win_T *old_curwin = curwin;
++
++ /* close the manually opened folds */
++ curwin = wp;
++ newFoldLevel();
++ curwin = old_curwin;
++ # endif
++
+ wp->w_p_diff = TRUE;
+ wp->w_p_scb = TRUE;
+ wp->w_p_wrap = FALSE;
+ # ifdef FEAT_FOLDING
+! curwin = wp;
+! curbuf = curwin->w_buffer;
+! set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff",
+ OPT_LOCAL|OPT_FREE, 0);
+! curwin = old_curwin;
+! curbuf = curwin->w_buffer;
+! wp->w_p_fdc = diff_foldcolumn;
+! wp->w_p_fen = TRUE;
+! wp->w_p_fdl = 0;
+! foldUpdateAll(wp);
+! /* make sure topline is not halfway a fold */
+! changed_window_setting_win(wp);
+ # endif
+ #ifdef FEAT_SCROLLBIND
+ if (vim_strchr(p_sbo, 'h') == NULL)
+*** ../vim-7.2.369/src/fold.c 2010-02-03 18:14:41.000000000 +0100
+--- src/fold.c 2010-02-24 13:09:04.000000000 +0100
+***************
+*** 854,865 ****
+ && fp->fd_top < bot)
+ {
+ fp->fd_small = MAYBE;
+-
+- /* Not sure if this is the right place to reset fd_flags (suggested by
+- * Lech Lorens). */
+- if (wp->w_foldinvalid)
+- fp->fd_flags = FD_LEVEL;
+-
+ ++fp;
+ }
+
+--- 854,859 ----
+*** ../vim-7.2.369/src/option.c 2010-02-11 17:02:04.000000000 +0100
+--- src/option.c 2010-02-24 13:09:44.000000000 +0100
+***************
+*** 6586,6592 ****
+--- 6586,6596 ----
+ || *curwin->w_p_fdm == NUL)
+ errmsg = e_invarg;
+ else
++ {
+ foldUpdateAll(curwin);
++ if (foldmethodIsDiff(curwin))
++ newFoldLevel();
++ }
+ }
+ # ifdef FEAT_EVAL
+ /* 'foldexpr' */
+*** ../vim-7.2.369/src/testdir/test45.in 2009-11-03 14:46:35.000000000 +0100
+--- src/testdir/test45.in 2010-02-24 13:02:39.000000000 +0100
+***************
+*** 36,41 ****
+--- 36,43 ----
+ k:call append("$", getline("."))
+ jAcommentstart Acommentend:set fdl=1
+ 3j:call append("$", getline("."))
++ :set fdl=0
++ zO j:call append("$", getline("."))
+ :" test expression folding
+ :fun Flvl()
+ let l = getline(v:lnum)
+*** ../vim-7.2.369/src/testdir/test45.ok 2009-11-03 14:46:35.000000000 +0100
+--- src/testdir/test45.ok 2010-02-24 12:58:55.000000000 +0100
+***************
+*** 11,16 ****
+--- 11,17 ----
+ folding 9 ii
+ 3 cc
+ 7 gg
++ 8 hh
+ expr 2
+ 1
+ 2
+*** ../vim-7.2.369/src/version.c 2010-02-24 13:59:09.000000000 +0100
+--- src/version.c 2010-02-24 14:28:20.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 370,
+ /**/
+
+--
+MAN: Fetchez la vache!
+GUARD: Quoi?
+MAN: Fetchez la vache!
+ "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/source/ap/vim/patches/7.2.371 b/source/ap/vim/patches/7.2.371
new file mode 100644
index 00000000..db875b62
--- /dev/null
+++ b/source/ap/vim/patches/7.2.371
@@ -0,0 +1,322 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.371
+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.2.371
+Problem: Build problems on Tandem NonStop.
+Solution: A few changes to #ifdefs (Joachim Schmitz)
+Files: src/auto/configure, src/configure.in, src/config.h.in, src/vim.h,
+ src/if_cscope.c, src/osdef1.h.in, src/tag.c
+
+
+*** ../vim-7.2.370/src/auto/configure 2010-02-17 16:23:03.000000000 +0100
+--- src/auto/configure 2010-02-24 14:27:00.000000000 +0100
+***************
+*** 14038,14046 ****
+
+
+
+!
+!
+! for ac_func in bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
+ getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+--- 14038,14044 ----
+
+
+
+! for ac_func in bcmp fchdir fchown fsync getcwd getpseudotty \
+ getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+***************
+*** 14146,14151 ****
+--- 14144,14281 ----
+ fi
+ done
+
++ { $as_echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5
++ $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
++ if test "${ac_cv_sys_largefile_source+set}" = set; then
++ $as_echo_n "(cached) " >&6
++ else
++ while :; do
++ cat >conftest.$ac_ext <<_ACEOF
++ /* confdefs.h. */
++ _ACEOF
++ cat confdefs.h >>conftest.$ac_ext
++ cat >>conftest.$ac_ext <<_ACEOF
++ /* end confdefs.h. */
++ #include <sys/types.h> /* for off_t */
++ #include <stdio.h>
++ int
++ main ()
++ {
++ int (*fp) (FILE *, off_t, int) = fseeko;
++ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
++ ;
++ return 0;
++ }
++ _ACEOF
++ rm -f conftest.$ac_objext conftest$ac_exeext
++ if { (ac_try="$ac_link"
++ case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++ esac
++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++ $as_echo "$ac_try_echo") >&5
++ (eval "$ac_link") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest$ac_exeext && {
++ test "$cross_compiling" = yes ||
++ $as_test_x conftest$ac_exeext
++ }; then
++ ac_cv_sys_largefile_source=no; break
++ else
++ $as_echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++
++
++ fi
++
++ rm -rf conftest.dSYM
++ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
++ conftest$ac_exeext conftest.$ac_ext
++ cat >conftest.$ac_ext <<_ACEOF
++ /* confdefs.h. */
++ _ACEOF
++ cat confdefs.h >>conftest.$ac_ext
++ cat >>conftest.$ac_ext <<_ACEOF
++ /* end confdefs.h. */
++ #define _LARGEFILE_SOURCE 1
++ #include <sys/types.h> /* for off_t */
++ #include <stdio.h>
++ int
++ main ()
++ {
++ int (*fp) (FILE *, off_t, int) = fseeko;
++ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
++ ;
++ return 0;
++ }
++ _ACEOF
++ rm -f conftest.$ac_objext conftest$ac_exeext
++ if { (ac_try="$ac_link"
++ case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++ esac
++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++ $as_echo "$ac_try_echo") >&5
++ (eval "$ac_link") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest$ac_exeext && {
++ test "$cross_compiling" = yes ||
++ $as_test_x conftest$ac_exeext
++ }; then
++ ac_cv_sys_largefile_source=1; break
++ else
++ $as_echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++
++
++ fi
++
++ rm -rf conftest.dSYM
++ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
++ conftest$ac_exeext conftest.$ac_ext
++ ac_cv_sys_largefile_source=unknown
++ break
++ done
++ fi
++ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5
++ $as_echo "$ac_cv_sys_largefile_source" >&6; }
++ case $ac_cv_sys_largefile_source in #(
++ no | unknown) ;;
++ *)
++ cat >>confdefs.h <<_ACEOF
++ #define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
++ _ACEOF
++ ;;
++ esac
++ rm -rf conftest*
++
++ # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
++ # in glibc 2.1.3, but that breaks too many other things.
++ # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
++ if test $ac_cv_sys_largefile_source != unknown; then
++
++ cat >>confdefs.h <<\_ACEOF
++ #define HAVE_FSEEKO 1
++ _ACEOF
++
++ fi
++
+
+ { $as_echo "$as_me:$LINENO: checking for st_blksize" >&5
+ $as_echo_n "checking for st_blksize... " >&6; }
+*** ../vim-7.2.370/src/configure.in 2010-02-17 16:23:03.000000000 +0100
+--- src/configure.in 2010-02-24 14:18:49.000000000 +0100
+***************
+*** 2642,2655 ****
+ AC_DEFINE(BAD_GETCWD)
+ fi
+
+! dnl Check for functions in one big call, to reduce the size of configure
+! AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
+ getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+ strnicmp strpbrk strtol tgetent towlower towupper iswupper \
+ usleep utime utimes)
+
+ dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
+ AC_MSG_CHECKING(for st_blksize)
+--- 2642,2657 ----
+ AC_DEFINE(BAD_GETCWD)
+ fi
+
+! dnl Check for functions in one big call, to reduce the size of configure.
+! dnl Can only be used for functions that do not require any include.
+! AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
+ getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+ strnicmp strpbrk strtol tgetent towlower towupper iswupper \
+ usleep utime utimes)
++ AC_FUNC_FSEEKO
+
+ dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
+ AC_MSG_CHECKING(for st_blksize)
+*** ../vim-7.2.370/src/config.h.in 2009-11-17 17:13:03.000000000 +0100
+--- src/config.h.in 2010-02-24 14:20:26.000000000 +0100
+***************
+*** 144,150 ****
+ #undef HAVE_FCHOWN
+ #undef HAVE_FSEEKO
+ #undef HAVE_FSYNC
+- #undef HAVE_FTELLO
+ #undef HAVE_GETCWD
+ #undef HAVE_GETPSEUDOTTY
+ #undef HAVE_GETPWNAM
+--- 144,149 ----
+*** ../vim-7.2.370/src/vim.h 2010-02-03 15:14:15.000000000 +0100
+--- src/vim.h 2010-02-24 14:08:14.000000000 +0100
+***************
+*** 52,58 ****
+
+ /* user ID of root is usually zero, but not for everybody */
+ #ifdef __TANDEM
+! # define _TANDEM_SOURCE
+ # include <floss.h>
+ # define ROOT_UID 65535
+ #else
+--- 52,60 ----
+
+ /* user ID of root is usually zero, but not for everybody */
+ #ifdef __TANDEM
+! # ifndef _TANDEM_SOURCE
+! # define _TANDEM_SOURCE
+! # endif
+ # include <floss.h>
+ # define ROOT_UID 65535
+ #else
+*** ../vim-7.2.370/src/if_cscope.c 2010-01-19 14:59:14.000000000 +0100
+--- src/if_cscope.c 2010-02-24 14:10:21.000000000 +0100
+***************
+*** 2278,2284 ****
+--- 2278,2288 ----
+ /* Use sigaction() to limit the waiting time to two seconds. */
+ sigemptyset(&sa.sa_mask);
+ sa.sa_handler = sig_handler;
++ # ifdef SA_NODEFER
+ sa.sa_flags = SA_NODEFER;
++ # else
++ sa.sa_flags = 0;
++ # endif
+ sigaction(SIGALRM, &sa, &old);
+ alarm(2); /* 2 sec timeout */
+
+*** ../vim-7.2.370/src/osdef1.h.in 2007-02-27 16:47:59.000000000 +0100
+--- src/osdef1.h.in 2010-02-24 14:20:50.000000000 +0100
+***************
+*** 25,31 ****
+ extern int fseeko __ARGS((FILE *, off_t, int));
+ #endif
+ extern long ftell __ARGS((FILE *));
+! #ifdef HAVE_FTELLO
+ extern off_t ftello __ARGS((FILE *));
+ #endif
+ extern void rewind __ARGS((FILE *));
+--- 25,31 ----
+ extern int fseeko __ARGS((FILE *, off_t, int));
+ #endif
+ extern long ftell __ARGS((FILE *));
+! #ifdef HAVE_FSEEKO
+ extern off_t ftello __ARGS((FILE *));
+ #endif
+ extern void rewind __ARGS((FILE *));
+*** ../vim-7.2.370/src/tag.c 2009-05-17 13:30:58.000000000 +0200
+--- src/tag.c 2010-02-24 14:20:12.000000000 +0100
+***************
+*** 90,97 ****
+ /*
+ * We use ftello() here, if available. It returns off_t instead of long,
+ * which helps if long is 32 bit and off_t is 64 bit.
+ */
+! #ifdef HAVE_FTELLO
+ # define ftell ftello
+ #endif
+
+--- 90,98 ----
+ /*
+ * We use ftello() here, if available. It returns off_t instead of long,
+ * which helps if long is 32 bit and off_t is 64 bit.
++ * We assume that when fseeko() is available then ftello() is too.
+ */
+! #ifdef HAVE_FSEEKO
+ # define ftell ftello
+ #endif
+
+*** ../vim-7.2.370/src/version.c 2010-02-24 14:34:10.000000000 +0100
+--- src/version.c 2010-02-24 14:45:37.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 371,
+ /**/
+
+--
+ A cow comes flying over the battlements, lowing aggressively. The cow
+ lands on GALAHAD'S PAGE, squashing him completely.
+ "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/source/ap/vim/patches/7.2.372 b/source/ap/vim/patches/7.2.372
new file mode 100644
index 00000000..064893c8
--- /dev/null
+++ b/source/ap/vim/patches/7.2.372
@@ -0,0 +1,303 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.372 (extra)
+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.2.372 (extra)
+Problem: Cross-compiling GvimExt and xxd doesn't work.
+Solution: Change the build files. (Markus Heidelberg)
+Files: src/INSTALLpc.txt, src/GvimExt/Make_ming.mak, src/Make_cyg.mak,
+ src/Make_ming.mak, src/xxd/Make_cyg.mak
+
+
+*** ../vim-7.2.371/src/INSTALLpc.txt 2008-07-13 19:20:53.000000000 +0200
+--- src/INSTALLpc.txt 2010-01-19 12:37:03.000000000 +0100
+***************
+*** 215,222 ****
+
+ You should not need to do *any* editing of any files to get vim compiled this
+ way. If, for some reason, you want the console-mode-only version of vim (this
+! is NOT recommended on Win32, especially on '95/'98!!!), you need only change
+! the 'gvim.exe' to 'vim.exe' in the 'make' commands given above.
+
+ If you are dismayed by how big the EXE is, I strongly recommend you get 'UPX'
+ (also free!) and compress the file (typical compression is 50%). UPX can be
+--- 215,223 ----
+
+ You should not need to do *any* editing of any files to get vim compiled this
+ way. If, for some reason, you want the console-mode-only version of vim (this
+! is NOT recommended on Win32, especially on '95/'98!!!), you can use:
+!
+! make -f Make_ming.mak GUI=no vim.exe
+
+ If you are dismayed by how big the EXE is, I strongly recommend you get 'UPX'
+ (also free!) and compress the file (typical compression is 50%). UPX can be
+***************
+*** 240,246 ****
+ The Cygnus one many not fully work yet.
+ With Cygnus gcc you can use the Unix Makefile instead (you need to get the
+ Unix archive then). Then you get a Cygwin application (feels like Vim is
+! runnin on Unix), while with Make_cyg.mak you get a Windows application (like
+ with the other makefiles).
+
+
+--- 241,247 ----
+ The Cygnus one many not fully work yet.
+ With Cygnus gcc you can use the Unix Makefile instead (you need to get the
+ Unix archive then). Then you get a Cygwin application (feels like Vim is
+! running on Unix), while with Make_cyg.mak you get a Windows application (like
+ with the other makefiles).
+
+
+***************
+*** 259,268 ****
+--- 260,272 ----
+ If you like, you can compile the 'mingw' Win32 version from the comfort of
+ your Linux (or other unix) box. To do this, you need to follow a few steps:
+ 1) Install the mingw32 cross-compiler. See
++ http://www.mingw.org/wiki/LinuxCrossMinGW
+ http://www.libsdl.org/extras/win32/cross/README.txt
+ 2) Get and unpack both the Unix sources and the extra archive
+ 3) in 'Make_ming.mak', set 'CROSS' to 'yes' instead of 'no'.
+ Make further changes to 'Make_ming.mak' as you wish.
++ If your cross-compiler prefix differs from the predefined value,
++ set 'CROSS_COMPILE' corresponding.
+ 4) make -f Make_ming.mak gvim.exe
+
+ Now you have created the Windows binary from your Linux box! Have fun...
+*** ../vim-7.2.371/src/GvimExt/Make_ming.mak 2005-01-09 22:15:44.000000000 +0100
+--- src/GvimExt/Make_ming.mak 2010-02-24 14:56:37.000000000 +0100
+***************
+*** 20,36 ****
+ ifeq ($(CROSS),yes)
+ DEL = rm
+ ifeq ($(MINGWOLD),yes)
+- CXX = i586-mingw32msvc-g++
+ CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
+- WINDRES = i586-mingw32msvc-windres
+ else
+- CXX = i386-mingw32msvc-g++
+ CXXFLAGS := -O2 -mno-cygwin
+- WINDRES = i386-mingw32msvc-windres
+ endif
+ else
+- CXX := g++
+- WINDRES := windres
+ CXXFLAGS := -O2 -mno-cygwin
+ ifneq (sh.exe, $(SHELL))
+ DEL = rm
+--- 20,30 ----
+***************
+*** 38,43 ****
+--- 32,39 ----
+ DEL = del
+ endif
+ endif
++ CXX := $(CROSS_COMPILE)g++
++ WINDRES := $(CROSS_COMPILE)windres
+ LIBS := -luuid
+ RES := gvimext.res
+ DEFFILE = gvimext_ming.def
+*** ../vim-7.2.371/src/Make_cyg.mak 2009-09-11 12:48:56.000000000 +0200
+--- src/Make_cyg.mak 2010-02-24 14:59:02.000000000 +0100
+***************
+*** 1,6 ****
+ #
+ # Makefile for VIM on Win32, using Cygnus gcc
+! # Last updated by Dan Sharp. Last Change: 2007 Sep 29
+ #
+ # Also read INSTALLpc.txt!
+ #
+--- 1,6 ----
+ #
+ # Makefile for VIM on Win32, using Cygnus gcc
+! # Last updated by Dan Sharp. Last Change: 2010 Feb 24
+ #
+ # Also read INSTALLpc.txt!
+ #
+***************
+*** 32,40 ****
+ # OLE no or yes: set to yes to make OLE gvim (no)
+ # DEBUG no or yes: set to yes if you wish a DEBUGging build (no)
+ # CPUNR No longer supported, use ARCH.
+! # ARCH i386 through pentium4: select -march argument to compile with (i386)
+ # USEDLL no or yes: set to yes to use the Runtime library DLL (no)
+ # For USEDLL=yes the cygwin1.dll is required to run Vim.
+ # POSTSCRIPT no or yes: set to yes for PostScript printing (no)
+ # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
+ # WINVER Lowest Win32 version to support. (0x0400)
+--- 32,43 ----
+ # OLE no or yes: set to yes to make OLE gvim (no)
+ # DEBUG no or yes: set to yes if you wish a DEBUGging build (no)
+ # CPUNR No longer supported, use ARCH.
+! # ARCH i386 through pentium4: select -march argument to compile with
+! # (i386)
+ # USEDLL no or yes: set to yes to use the Runtime library DLL (no)
+ # For USEDLL=yes the cygwin1.dll is required to run Vim.
++ # "no" does not work with latest version of Cygwin, use
++ # Make_ming.mak instead. Or set CC to gcc-3.
+ # POSTSCRIPT no or yes: set to yes for PostScript printing (no)
+ # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
+ # WINVER Lowest Win32 version to support. (0x0400)
+***************
+*** 99,104 ****
+--- 102,108 ----
+ INCLUDES = -march=$(ARCH) -Iproto
+
+ #>>>>> name of the compiler and linker, name of lib directory
++ CROSS_COMPILE =
+ CC = gcc
+ RC = windres
+
+***************
+*** 467,476 ****
+ $(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)
+
+ xxd/xxd.exe: xxd/xxd.c
+! $(MAKE) -C xxd -f Make_cyg.mak USEDLL=$(USEDLL)
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+! $(MAKE) -C GvimExt -f Make_ming.mak
+
+ vimrun.exe: vimrun.c
+ $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS)
+--- 471,480 ----
+ $(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)
+
+ xxd/xxd.exe: xxd/xxd.c
+! $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+! $(MAKE) -C GvimExt -f Make_ming.mak CROSS_COMPILE=$(CROSS_COMPILE)
+
+ vimrun.exe: vimrun.c
+ $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS)
+*** ../vim-7.2.371/src/Make_ming.mak 2009-09-11 12:48:56.000000000 +0200
+--- src/Make_ming.mak 2010-02-24 15:01:31.000000000 +0100
+***************
+*** 241,255 ****
+ DEFINES=-DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
+ -DHAVE_PATHDEF -DFEAT_$(FEATURES)
+ ifeq ($(CROSS),yes)
+! # cross-compiler:
+! CC = i586-pc-mingw32msvc-gcc
+ DEL = rm
+ MKDIR = mkdir -p
+! WINDRES = i586-pc-mingw32msvc-windres
+ else
+ # normal (Windows) compilation:
+- CC = gcc
+ ifneq (sh.exe, $(SHELL))
+ DEL = rm
+ MKDIR = mkdir -p
+ DIRSLASH = /
+--- 241,255 ----
+ DEFINES=-DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
+ -DHAVE_PATHDEF -DFEAT_$(FEATURES)
+ ifeq ($(CROSS),yes)
+! # cross-compiler prefix:
+! CROSS_COMPILE = i586-pc-mingw32msvc-
+ DEL = rm
+ MKDIR = mkdir -p
+! DIRSLASH = /
+ else
+ # normal (Windows) compilation:
+ ifneq (sh.exe, $(SHELL))
++ CROSS_COMPILE =
+ DEL = rm
+ MKDIR = mkdir -p
+ DIRSLASH = /
+***************
+*** 258,265 ****
+ MKDIR = mkdir
+ DIRSLASH = \\
+ endif
+- WINDRES = windres
+ endif
+
+ #>>>>> end of choices
+ ###########################################################################
+--- 258,266 ----
+ MKDIR = mkdir
+ DIRSLASH = \\
+ endif
+ endif
++ CC := $(CROSS_COMPILE)gcc
++ WINDRES := $(CROSS_COMPILE)windres
+
+ #>>>>> end of choices
+ ###########################################################################
+***************
+*** 549,558 ****
+ upx vim.exe
+
+ xxd/xxd.exe: xxd/xxd.c
+! $(MAKE) -C xxd -f Make_cyg.mak
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+ $(MAKE) -C GvimExt -f Make_ming.mak
+
+ clean:
+ -$(DEL) $(OUTDIR)$(DIRSLASH)*.o
+--- 550,560 ----
+ upx vim.exe
+
+ xxd/xxd.exe: xxd/xxd.c
+! $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC)
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+ $(MAKE) -C GvimExt -f Make_ming.mak
++ $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE)
+
+ clean:
+ -$(DEL) $(OUTDIR)$(DIRSLASH)*.o
+*** ../vim-7.2.371/src/xxd/Make_cyg.mak 2004-06-13 17:48:52.000000000 +0200
+--- src/xxd/Make_cyg.mak 2010-02-24 15:05:24.000000000 +0100
+***************
+*** 12,17 ****
+--- 12,18 ----
+ LIBS =
+ endif
+
++ CC = gcc
+ CFLAGS = -O2 -Wall -DWIN32 $(DEFINES)
+
+ ifneq (sh.exe, $(SHELL))
+***************
+*** 21,27 ****
+ endif
+
+ xxd.exe: xxd.c
+! gcc $(CFLAGS) -s -o xxd.exe xxd.c $(LIBS)
+
+ clean:
+ -$(DEL) xxd.exe
+--- 22,28 ----
+ endif
+
+ xxd.exe: xxd.c
+! $(CC) $(CFLAGS) -s -o xxd.exe xxd.c $(LIBS)
+
+ clean:
+ -$(DEL) xxd.exe
+*** ../vim-7.2.371/src/version.c 2010-02-24 14:46:58.000000000 +0100
+--- src/version.c 2010-02-24 15:05:48.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 372,
+ /**/
+
+--
+Ten bugs in the hand is better than one as yet undetected.
+
+ /// 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/source/ap/vim/patches/7.2.373 b/source/ap/vim/patches/7.2.373
new file mode 100644
index 00000000..1bb4773d
--- /dev/null
+++ b/source/ap/vim/patches/7.2.373
@@ -0,0 +1,54 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.373
+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.2.373
+Problem: Gcc 4.5 adds more error messages. (Chris Indy)
+Solution: Update default 'errorformat'.
+Files: src/option.h
+
+
+*** ../vim-7.2.372/src/option.h 2008-06-24 23:59:49.000000000 +0200
+--- src/option.h 2010-02-24 15:20:03.000000000 +0100
+***************
+*** 33,39 ****
+ # ifdef EBCDIC
+ #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # else
+! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # endif
+ # endif
+ # endif
+--- 33,39 ----
+ # ifdef EBCDIC
+ #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # else
+! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-Gfrom %f:%l:%c,%-Gfrom %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # endif
+ # endif
+ # endif
+*** ../vim-7.2.372/src/version.c 2010-02-24 15:07:45.000000000 +0100
+--- src/version.c 2010-02-24 15:24:43.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 373,
+ /**/
+
+--
+ARTHUR: Right! Knights! Forward!
+ ARTHUR leads a charge toward the castle. Various shots of them battling on,
+ despite being hit by a variety of farm animals.
+ "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/source/ap/vim/patches/7.2.374 b/source/ap/vim/patches/7.2.374
new file mode 100644
index 00000000..50d3e74d
--- /dev/null
+++ b/source/ap/vim/patches/7.2.374
@@ -0,0 +1,168 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.374
+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.2.374
+Problem: Ruby eval() doesn't understand Vim types.
+Solution: Add the vim_to_ruby() function. (George Gensure)
+Files: src/eval.c, src/if_ruby.c
+
+
+*** ../vim-7.2.373/src/eval.c 2010-01-19 15:51:29.000000000 +0100
+--- src/eval.c 2010-02-24 15:36:40.000000000 +0100
+***************
+*** 5872,5878 ****
+ return item1 == NULL && item2 == NULL;
+ }
+
+! #if defined(FEAT_PYTHON) || defined(FEAT_MZSCHEME) || defined(PROTO)
+ /*
+ * Return the dictitem that an entry in a hashtable points to.
+ */
+--- 5872,5879 ----
+ return item1 == NULL && item2 == NULL;
+ }
+
+! #if defined(FEAT_RUBY) || defined(FEAT_PYTHON) || defined(FEAT_MZSCHEME) \
+! || defined(PROTO)
+ /*
+ * Return the dictitem that an entry in a hashtable points to.
+ */
+*** ../vim-7.2.373/src/if_ruby.c 2010-02-18 15:51:25.000000000 +0100
+--- src/if_ruby.c 2010-02-24 15:45:15.000000000 +0100
+***************
+*** 660,679 ****
+ return Qnil;
+ }
+
+ static VALUE vim_evaluate(VALUE self UNUSED, VALUE str)
+ {
+ #ifdef FEAT_EVAL
+! char_u *value = eval_to_string((char_u *)StringValuePtr(str), NULL, TRUE);
+
+! if (value != NULL)
+ {
+! VALUE val = rb_str_new2((char *)value);
+! vim_free(value);
+! return val;
+ }
+! else
+ #endif
+- return Qnil;
+ }
+
+ static VALUE buffer_new(buf_T *buf)
+--- 660,747 ----
+ return Qnil;
+ }
+
++ #ifdef FEAT_EVAL
++ static VALUE vim_to_ruby(typval_T *tv)
++ {
++ VALUE result = Qnil;
++
++ if (tv->v_type == VAR_STRING)
++ {
++ result = rb_str_new2((char *)tv->vval.v_string);
++ }
++ else if (tv->v_type == VAR_NUMBER)
++ {
++ result = INT2NUM(tv->vval.v_number);
++ }
++ # ifdef FEAT_FLOAT
++ else if (tv->v_type == VAR_FLOAT)
++ {
++ result = rb_float_new(tv->vval.v_float);
++ }
++ # endif
++ else if (tv->v_type == VAR_LIST)
++ {
++ list_T *list = tv->vval.v_list;
++ listitem_T *curr;
++
++ result = rb_ary_new();
++
++ if (list != NULL)
++ {
++ for (curr = list->lv_first; curr != NULL; curr = curr->li_next)
++ {
++ rb_ary_push(result, vim_to_ruby(&curr->li_tv));
++ }
++ }
++ }
++ else if (tv->v_type == VAR_DICT)
++ {
++ result = rb_hash_new();
++
++ if (tv->vval.v_dict != NULL)
++ {
++ hashtab_T *ht = &tv->vval.v_dict->dv_hashtab;
++ long_u todo = ht->ht_used;
++ hashitem_T *hi;
++ dictitem_T *di;
++
++ for (hi = ht->ht_array; todo > 0; ++hi)
++ {
++ if (!HASHITEM_EMPTY(hi))
++ {
++ --todo;
++
++ di = dict_lookup(hi);
++ rb_hash_aset(result, rb_str_new2((char *)hi->hi_key),
++ vim_to_ruby(&di->di_tv));
++ }
++ }
++ }
++ } /* else return Qnil; */
++
++ return result;
++ }
++ #endif
++
+ static VALUE vim_evaluate(VALUE self UNUSED, VALUE str)
+ {
+ #ifdef FEAT_EVAL
+! typval_T *tv;
+! VALUE result;
+
+! tv = eval_expr((char_u *)StringValuePtr(str), NULL);
+! if (tv == NULL)
+ {
+! return Qnil;
+ }
+! result = vim_to_ruby(tv);
+!
+! free_tv(tv);
+!
+! return result;
+! #else
+! return Qnil;
+ #endif
+ }
+
+ static VALUE buffer_new(buf_T *buf)
+*** ../vim-7.2.373/src/version.c 2010-02-24 15:25:13.000000000 +0100
+--- src/version.c 2010-02-24 15:46:57.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 374,
+ /**/
+
+--
+ARTHUR: (as the MAN next to him is squashed by a sheep) Knights! Run away!
+ Midst echoing shouts of "run away" the KNIGHTS retreat to cover with the odd
+ cow or goose hitting them still. The KNIGHTS crouch down under cover.
+ "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/source/ap/vim/patches/7.2.375 b/source/ap/vim/patches/7.2.375
new file mode 100644
index 00000000..3374cd1b
--- /dev/null
+++ b/source/ap/vim/patches/7.2.375
@@ -0,0 +1,64 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.375
+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.2.375
+Problem: ml_get errors when using ":bprevious" in a BufEnter autocmd.
+ (Dominique Pelle)
+Solution: Clear w_valid when entering another buffer.
+Files: src/buffer.c
+
+
+*** ../vim-7.2.374/src/buffer.c 2010-01-19 14:59:14.000000000 +0100
+--- src/buffer.c 2010-02-24 16:29:22.000000000 +0100
+***************
+*** 115,121 ****
+ #endif
+
+ /* mark cursor position as being invalid */
+! changed_line_abv_curs();
+
+ if (curbuf->b_ffname != NULL
+ #ifdef FEAT_NETBEANS_INTG
+--- 115,121 ----
+ #endif
+
+ /* mark cursor position as being invalid */
+! curwin->w_valid = 0;
+
+ if (curbuf->b_ffname != NULL
+ #ifdef FEAT_NETBEANS_INTG
+***************
+*** 1399,1404 ****
+--- 1399,1407 ----
+ curwin->w_topline_was_set = FALSE;
+ #endif
+
++ /* mark cursor position as being invalid */
++ curwin->w_valid = 0;
++
+ /* Make sure the buffer is loaded. */
+ if (curbuf->b_ml.ml_mfp == NULL) /* need to load the file */
+ {
+*** ../vim-7.2.374/src/version.c 2010-02-24 15:47:58.000000000 +0100
+--- src/version.c 2010-02-24 16:30:03.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 375,
+ /**/
+
+--
+Error:015 - Unable to exit Windows. Try the door.
+
+ /// 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/source/ap/vim/patches/7.2.376 b/source/ap/vim/patches/7.2.376
new file mode 100644
index 00000000..718875b2
--- /dev/null
+++ b/source/ap/vim/patches/7.2.376
@@ -0,0 +1,50 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.376
+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.2.376
+Problem: ml_get error when using SiSU syntax. (Nathan Thomas)
+Solution: If the match ends below the last line move it to the end of the
+ last line.
+Files: src/syntax.c
+
+
+*** ../vim-7.2.375/src/syntax.c 2010-01-19 14:59:14.000000000 +0100
+--- src/syntax.c 2010-02-24 17:14:13.000000000 +0100
+***************
+*** 3086,3091 ****
+--- 3086,3097 ----
+ col = regmatch->startpos[0].col;
+ off = spp->sp_offsets[idx];
+ }
++ if (result->lnum > syn_buf->b_ml.ml_line_count)
++ {
++ /* a "\n" at the end of the pattern may take us below the last line */
++ result->lnum = syn_buf->b_ml.ml_line_count;
++ col = STRLEN(ml_get_buf(syn_buf, result->lnum, FALSE));
++ }
+ if (off != 0)
+ {
+ base = ml_get_buf(syn_buf, result->lnum, FALSE);
+*** ../vim-7.2.375/src/version.c 2010-02-24 16:58:30.000000000 +0100
+--- src/version.c 2010-02-24 17:15:48.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 376,
+ /**/
+
+--
+press CTRL-ALT-DEL for more information
+
+ /// 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/source/ap/vim/patches/7.2.377 b/source/ap/vim/patches/7.2.377
new file mode 100644
index 00000000..e854ce71
--- /dev/null
+++ b/source/ap/vim/patches/7.2.377
@@ -0,0 +1,66 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.377 (extra)
+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.2.377 (extra, after 7.2.372)
+Problem: Misplaced assignment. Duplicate build line for gvimext.dll.
+Solution: Move setting CROSS_COMPILE to before ifneq. Remove the wrong
+ build line. (Markus Heidelberg)
+Files: src/Make_ming.mak
+
+
+*** ../vim-7.2.376/src/Make_ming.mak 2010-02-24 15:07:45.000000000 +0100
+--- src/Make_ming.mak 2010-02-26 22:01:07.000000000 +0100
+***************
+*** 248,255 ****
+ DIRSLASH = /
+ else
+ # normal (Windows) compilation:
+- ifneq (sh.exe, $(SHELL))
+ CROSS_COMPILE =
+ DEL = rm
+ MKDIR = mkdir -p
+ DIRSLASH = /
+--- 248,255 ----
+ DIRSLASH = /
+ else
+ # normal (Windows) compilation:
+ CROSS_COMPILE =
++ ifneq (sh.exe, $(SHELL))
+ DEL = rm
+ MKDIR = mkdir -p
+ DIRSLASH = /
+***************
+*** 553,559 ****
+ $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC)
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+- $(MAKE) -C GvimExt -f Make_ming.mak
+ $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE)
+
+ clean:
+--- 553,558 ----
+*** ../vim-7.2.376/src/version.c 2010-02-24 17:22:14.000000000 +0100
+--- src/version.c 2010-02-26 22:01:45.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 377,
+ /**/
+
+--
+FIRST HEAD: All right! All right! We'll kill him first and then have tea and
+ biscuits.
+ "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/source/ap/vim/patches/7.2.378 b/source/ap/vim/patches/7.2.378
new file mode 100644
index 00000000..de2251f4
--- /dev/null
+++ b/source/ap/vim/patches/7.2.378
@@ -0,0 +1,69 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.378
+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.2.378
+Problem: C function declaration indented too much. (Rui)
+Solution: Don't see a line containing { or } as a type. (Matt Wozniski)
+Files: src/misc1.c
+
+
+*** ../vim-7.2.377/src/misc1.c 2010-01-06 17:46:03.000000000 +0100
+--- src/misc1.c 2010-02-26 22:36:50.000000000 +0100
+***************
+*** 7727,7737 ****
+ /*
+ * If the NEXT line is a function declaration, the current
+ * line needs to be indented as a function type spec.
+! * Don't do this if the current line looks like a comment
+! * or if the current line is terminated, ie. ends in ';'.
+ */
+ else if (cur_curpos.lnum < curbuf->b_ml.ml_line_count
+ && !cin_nocode(theline)
+ && !cin_ends_in(theline, (char_u *)":", NULL)
+ && !cin_ends_in(theline, (char_u *)",", NULL)
+ && cin_isfuncdecl(NULL, cur_curpos.lnum + 1)
+--- 7727,7740 ----
+ /*
+ * If the NEXT line is a function declaration, the current
+ * line needs to be indented as a function type spec.
+! * Don't do this if the current line looks like a comment or if the
+! * current line is terminated, ie. ends in ';', or if the current line
+! * contains { or }: "void f() {\n if (1)"
+ */
+ else if (cur_curpos.lnum < curbuf->b_ml.ml_line_count
+ && !cin_nocode(theline)
++ && vim_strchr(theline, '{') == NULL
++ && vim_strchr(theline, '}') == NULL
+ && !cin_ends_in(theline, (char_u *)":", NULL)
+ && !cin_ends_in(theline, (char_u *)",", NULL)
+ && cin_isfuncdecl(NULL, cur_curpos.lnum + 1)
+*** ../vim-7.2.377/src/version.c 2010-02-26 22:05:17.000000000 +0100
+--- src/version.c 2010-03-02 12:30:30.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 378,
+ /**/
+
+--
+ An extraordinary TALL KNIGHT in all black (possibly John with Mike on his
+ shoulders) walks out from the dark trees. He is extremely fierce and
+ gruesome countenance. He walks towards KING ARTHUR and PATSY, who are
+ wazzing like mad. (Salopian slang, meaning very scared. almost to the
+ point of wetting oneself, e.g. before an important football match or
+ prior to a postering. Salopian slang meaning a beating by the school
+ praeposters. Sorry about the Salopian slant to this stage direction - Ed.)
+ "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/source/ap/vim/patches/7.2.379 b/source/ap/vim/patches/7.2.379
new file mode 100644
index 00000000..8a600e9e
--- /dev/null
+++ b/source/ap/vim/patches/7.2.379
@@ -0,0 +1,55 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.379
+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.2.379
+Problem: 'eventignore' is set to an invalid value inside ":doau". (Antony
+ Scriven)
+Solution: Don't include the leading comma when the option was empty.
+Files: src/fileio.c
+
+
+*** ../vim-7.2.378/src/fileio.c 2010-01-19 14:59:14.000000000 +0100
+--- src/fileio.c 2010-03-01 21:01:04.000000000 +0100
+***************
+*** 7925,7931 ****
+ new_ei = vim_strnsave(p_ei, (int)(STRLEN(p_ei) + STRLEN(what)));
+ if (new_ei != NULL)
+ {
+! STRCAT(new_ei, what);
+ set_string_option_direct((char_u *)"ei", -1, new_ei,
+ OPT_FREE, SID_NONE);
+ vim_free(new_ei);
+--- 7925,7934 ----
+ new_ei = vim_strnsave(p_ei, (int)(STRLEN(p_ei) + STRLEN(what)));
+ if (new_ei != NULL)
+ {
+! if (*what == ',' && *p_ei == NUL)
+! STRCPY(new_ei, what + 1);
+! else
+! STRCAT(new_ei, what);
+ set_string_option_direct((char_u *)"ei", -1, new_ei,
+ OPT_FREE, SID_NONE);
+ vim_free(new_ei);
+*** ../vim-7.2.378/src/version.c 2010-03-02 12:37:01.000000000 +0100
+--- src/version.c 2010-03-02 12:46:45.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 379,
+ /**/
+
+--
+Back up my hard drive? I can't find the reverse switch!
+
+ /// 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/source/ap/vim/patches/7.2.380 b/source/ap/vim/patches/7.2.380
new file mode 100644
index 00000000..2cdd8318
--- /dev/null
+++ b/source/ap/vim/patches/7.2.380
@@ -0,0 +1,104 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.380
+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.2.380 (after 7.2.363)
+Problem: Perl interface builds with 5.10.1 but not with 5.10.0.
+Solution: Change the #ifdefs. (Sergey Khorev)
+Files: src/if_perl.xs
+
+
+*** ../vim-7.2.379/src/if_perl.xs 2010-02-17 16:40:47.000000000 +0100
+--- src/if_perl.xs 2010-03-02 15:07:01.000000000 +0100
+***************
+*** 62,67 ****
+--- 62,72 ----
+ # define PERL589_OR_LATER
+ #endif
+
++ #if (PERL_REVISION == 5) && ((PERL_VERSION > 10) || \
++ (PERL_VERSION == 10) && (PERL_SUBVERSION >= 1))
++ # define PERL5101_OR_LATER
++ #endif
++
+ #ifndef pTHX
+ # define pTHX void
+ # define pTHX_
+***************
+*** 93,99 ****
+ # define perl_free dll_perl_free
+ # define Perl_get_context dll_Perl_get_context
+ # define Perl_croak dll_Perl_croak
+! # if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
+ # define Perl_croak_xs_usage dll_Perl_croak_xs_usage
+ # endif
+ # ifndef PROTO
+--- 98,104 ----
+ # define perl_free dll_perl_free
+ # define Perl_get_context dll_Perl_get_context
+ # define Perl_croak dll_Perl_croak
+! # ifdef PERL5101_OR_LATER
+ # define Perl_croak_xs_usage dll_Perl_croak_xs_usage
+ # endif
+ # ifndef PROTO
+***************
+*** 205,211 ****
+ static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**);
+ static void* (*Perl_get_context)(void);
+ static void (*Perl_croak)(pTHX_ const char*, ...);
+! #if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
+ static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params);
+ #endif
+ static void (*Perl_croak_nocontext)(const char*, ...);
+--- 210,216 ----
+ static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**);
+ static void* (*Perl_get_context)(void);
+ static void (*Perl_croak)(pTHX_ const char*, ...);
+! #ifdef PERL5101_OR_LATER
+ static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params);
+ #endif
+ static void (*Perl_croak_nocontext)(const char*, ...);
+***************
+*** 312,318 ****
+ {"perl_parse", (PERL_PROC*)&perl_parse},
+ {"Perl_get_context", (PERL_PROC*)&Perl_get_context},
+ {"Perl_croak", (PERL_PROC*)&Perl_croak},
+! #if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
+ {"Perl_croak_xs_usage", (PERL_PROC*)&Perl_croak_xs_usage},
+ #endif
+ {"Perl_croak_nocontext", (PERL_PROC*)&Perl_croak_nocontext},
+--- 317,323 ----
+ {"perl_parse", (PERL_PROC*)&perl_parse},
+ {"Perl_get_context", (PERL_PROC*)&Perl_get_context},
+ {"Perl_croak", (PERL_PROC*)&Perl_croak},
+! #ifdef PERL5101_OR_LATER
+ {"Perl_croak_xs_usage", (PERL_PROC*)&Perl_croak_xs_usage},
+ #endif
+ {"Perl_croak_nocontext", (PERL_PROC*)&Perl_croak_nocontext},
+*** ../vim-7.2.379/src/version.c 2010-03-02 12:47:58.000000000 +0100
+--- src/version.c 2010-03-02 15:13:21.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 380,
+ /**/
+
+--
+FATHER: Make sure the Prince doesn't leave this room until I come and
+ get him.
+FIRST GUARD: Not ... to leave the room ... even if you come and get him.
+FATHER: No. Until I come and get him.
+SECOND GUARD: Hic.
+ "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/source/ap/vim/patches/7.2.381 b/source/ap/vim/patches/7.2.381
new file mode 100644
index 00000000..977a8ecd
--- /dev/null
+++ b/source/ap/vim/patches/7.2.381
@@ -0,0 +1,218 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.381
+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.2.381
+Problem: No completion for :behave.
+Solution: Add :behave completion. Minor related fixes. (Dominique Pelle)
+Files: src/ex_docmd.c, src/ex_getln.c, src/proto/ex_docmd.pro, src/vim.h
+
+
+*** ../vim-7.2.380/src/ex_docmd.c 2010-02-03 15:14:15.000000000 +0100
+--- src/ex_docmd.c 2010-03-02 15:55:05.000000000 +0100
+***************
+*** 26,35 ****
+ long_u uc_argt; /* The argument type */
+ char_u *uc_rep; /* The command's replacement string */
+ long uc_def; /* The default value for a range/count */
+- scid_T uc_scriptID; /* SID where the command was defined */
+ int uc_compl; /* completion type */
+! # if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
+ char_u *uc_compl_arg; /* completion argument if any */
+ # endif
+ } ucmd_T;
+
+--- 26,37 ----
+ long_u uc_argt; /* The argument type */
+ char_u *uc_rep; /* The command's replacement string */
+ long uc_def; /* The default value for a range/count */
+ int uc_compl; /* completion type */
+! # ifdef FEAT_EVAL
+! scid_T uc_scriptID; /* SID where the command was defined */
+! # ifdef FEAT_CMDL_COMPL
+ char_u *uc_compl_arg; /* completion argument if any */
++ # endif
+ # endif
+ } ucmd_T;
+
+***************
+*** 3156,3172 ****
+ return NULL;
+ }
+ for (ea.cmdidx = (cmdidx_T)0; (int)ea.cmdidx < (int)CMD_SIZE;
+! ea.cmdidx = (cmdidx_T)((int)ea.cmdidx + 1))
+! if (STRNCMP(cmdnames[(int)ea.cmdidx].cmd_name, cmd, (size_t)len) == 0)
+ break;
+
+ #ifdef FEAT_USR_CMDS
+ if (cmd[0] >= 'A' && cmd[0] <= 'Z')
+- {
+ while (ASCII_ISALNUM(*p) || *p == '*') /* Allow * wild card */
+ ++p;
+- len = (int)(p - cmd);
+- }
+ #endif
+ }
+
+--- 3158,3172 ----
+ return NULL;
+ }
+ for (ea.cmdidx = (cmdidx_T)0; (int)ea.cmdidx < (int)CMD_SIZE;
+! ea.cmdidx = (cmdidx_T)((int)ea.cmdidx + 1))
+! if (STRNCMP(cmdnames[(int)ea.cmdidx].cmd_name, cmd,
+! (size_t)len) == 0)
+ break;
+
+ #ifdef FEAT_USR_CMDS
+ if (cmd[0] >= 'A' && cmd[0] <= 'Z')
+ while (ASCII_ISALNUM(*p) || *p == '*') /* Allow * wild card */
+ ++p;
+ #endif
+ }
+
+***************
+*** 3809,3814 ****
+--- 3809,3817 ----
+ set_context_in_profile_cmd(xp, arg);
+ break;
+ #endif
++ case CMD_behave:
++ xp->xp_context = EXPAND_BEHAVE;
++ break;
+
+ #endif /* FEAT_CMDL_COMPL */
+
+***************
+*** 10847,10852 ****
+--- 10850,10873 ----
+ EMSG2(_(e_invarg2), eap->arg);
+ }
+
++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++ /*
++ * Function given to ExpandGeneric() to obtain the possible arguments of the
++ * ":behave {mswin,xterm}" command.
++ */
++ char_u *
++ get_behave_arg(xp, idx)
++ expand_T *xp UNUSED;
++ int idx;
++ {
++ if (idx == 0)
++ return (char_u *)"mswin";
++ if (idx == 1)
++ return (char_u *)"xterm";
++ return NULL;
++ }
++ #endif
++
+ #ifdef FEAT_AUTOCMD
+ static int filetype_detect = FALSE;
+ static int filetype_plugin = FALSE;
+*** ../vim-7.2.380/src/ex_getln.c 2010-02-03 15:14:15.000000000 +0100
+--- src/ex_getln.c 2010-03-02 15:28:13.000000000 +0100
+***************
+*** 4492,4497 ****
+--- 4492,4498 ----
+ } tab[] =
+ {
+ {EXPAND_COMMANDS, get_command_name, FALSE},
++ {EXPAND_BEHAVE, get_behave_arg, TRUE},
+ #ifdef FEAT_USR_CMDS
+ {EXPAND_USER_COMMANDS, get_user_commands, FALSE},
+ {EXPAND_USER_CMD_FLAGS, get_user_cmd_flags, FALSE},
+*** ../vim-7.2.380/src/proto/ex_docmd.pro 2008-07-04 11:43:13.000000000 +0200
+--- src/proto/ex_docmd.pro 2010-03-02 15:37:37.000000000 +0100
+***************
+*** 52,55 ****
+--- 52,56 ----
+ int put_eol __ARGS((FILE *fd));
+ int put_line __ARGS((FILE *fd, char *s));
+ void dialog_msg __ARGS((char_u *buff, char *format, char_u *fname));
++ char_u *get_behave_arg __ARGS((expand_T *xp, int idx));
+ /* vim: set ft=c : */
+*** ../vim-7.2.380/src/vim.h 2010-02-24 14:46:58.000000000 +0100
+--- src/vim.h 2010-03-02 15:30:13.000000000 +0100
+***************
+*** 595,601 ****
+
+ /*
+ * Terminal highlighting attribute bits.
+! * Attibutes above HL_ALL are used for syntax highlighting.
+ */
+ #define HL_NORMAL 0x00
+ #define HL_INVERSE 0x01
+--- 595,601 ----
+
+ /*
+ * Terminal highlighting attribute bits.
+! * Attributes above HL_ALL are used for syntax highlighting.
+ */
+ #define HL_NORMAL 0x00
+ #define HL_INVERSE 0x01
+***************
+*** 721,726 ****
+--- 721,727 ----
+ #define EXPAND_CSCOPE 33
+ #define EXPAND_SIGN 34
+ #define EXPAND_PROFILE 35
++ #define EXPAND_BEHAVE 36
+
+ /* Values for exmode_active (0 is no exmode) */
+ #define EXMODE_NORMAL 1
+***************
+*** 1262,1268 ****
+ } hlf_T;
+
+ /* The HL_FLAGS must be in the same order as the HLF_ enums!
+! * When chainging this also adjust the default for 'highlight'. */
+ #define HL_FLAGS {'8', '@', 'd', 'e', 'h', 'i', 'l', 'm', 'M', \
+ 'n', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
+ 'f', 'F', 'A', 'C', 'D', 'T', '>', \
+--- 1263,1269 ----
+ } hlf_T;
+
+ /* The HL_FLAGS must be in the same order as the HLF_ enums!
+! * When changing this also adjust the default for 'highlight'. */
+ #define HL_FLAGS {'8', '@', 'd', 'e', 'h', 'i', 'l', 'm', 'M', \
+ 'n', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
+ 'f', 'F', 'A', 'C', 'D', 'T', '>', \
+***************
+*** 1430,1436 ****
+ #ifdef FEAT_MBYTE
+ /* We need to call mb_stricmp() even when we aren't dealing with a multi-byte
+ * encoding because mb_stricmp() takes care of all ascii and non-ascii
+! * encodings, including characters with umluats in latin1, etc., while
+ * STRICMP() only handles the system locale version, which often does not
+ * handle non-ascii properly. */
+
+--- 1431,1437 ----
+ #ifdef FEAT_MBYTE
+ /* We need to call mb_stricmp() even when we aren't dealing with a multi-byte
+ * encoding because mb_stricmp() takes care of all ascii and non-ascii
+! * encodings, including characters with umlauts in latin1, etc., while
+ * STRICMP() only handles the system locale version, which often does not
+ * handle non-ascii properly. */
+
+*** ../vim-7.2.380/src/version.c 2010-03-02 15:14:22.000000000 +0100
+--- src/version.c 2010-03-02 15:51:24.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 381,
+ /**/
+
+--
+I'd like to meet the man who invented sex and see what he's working on now.
+
+ /// 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/source/ap/vim/patches/7.2.382 b/source/ap/vim/patches/7.2.382
new file mode 100644
index 00000000..56fcfa44
--- /dev/null
+++ b/source/ap/vim/patches/7.2.382
@@ -0,0 +1,58 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.382
+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.2.382
+Problem: Accessing freed memory when closing the cmdline window when
+ 'bufhide' is set to "wipe".
+Solution: Check if the buffer still exists before invoking close_buffer()
+ (Dominique Pelle)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.2.381/src/ex_getln.c 2010-03-02 15:55:51.000000000 +0100
+--- src/ex_getln.c 2010-03-02 16:29:38.000000000 +0100
+***************
+*** 6252,6258 ****
+ bp = curbuf;
+ win_goto(old_curwin);
+ win_close(wp, TRUE);
+! close_buffer(NULL, bp, DOBUF_WIPE);
+
+ /* Restore window sizes. */
+ win_size_restore(&winsizes);
+--- 6252,6262 ----
+ bp = curbuf;
+ win_goto(old_curwin);
+ win_close(wp, TRUE);
+!
+! /* win_close() may have already wiped the buffer when 'bh' is
+! * set to 'wipe' */
+! if (buf_valid(bp))
+! close_buffer(NULL, bp, DOBUF_WIPE);
+
+ /* Restore window sizes. */
+ win_size_restore(&winsizes);
+*** ../vim-7.2.381/src/version.c 2010-03-02 15:55:51.000000000 +0100
+--- src/version.c 2010-03-02 17:22:11.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 382,
+ /**/
+
+--
+You had connectors? Eeee, when I were a lad we 'ad to carry the
+bits between the computer and the terminal with a spoon...
+
+ /// 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/source/ap/vim/patches/7.2.383 b/source/ap/vim/patches/7.2.383
new file mode 100644
index 00000000..25fa7142
--- /dev/null
+++ b/source/ap/vim/patches/7.2.383
@@ -0,0 +1,101 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.383
+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.2.383
+Problem: Vim doesn't build cleanly with MSVC 2010.
+Solution: Change a few types. (George Reilly)
+Files: src/ex_cmds2.c, src/if_python.c, src/syntax.c
+
+
+*** ../vim-7.2.382/src/ex_cmds2.c 2010-02-24 13:59:08.000000000 +0100
+--- src/ex_cmds2.c 2010-03-02 17:42:54.000000000 +0100
+***************
+*** 1165,1171 ****
+ char_u *arg;
+ {
+ char_u *end_subcmd;
+- int len;
+
+ /* Default: expand subcommands. */
+ xp->xp_context = EXPAND_PROFILE;
+--- 1165,1170 ----
+***************
+*** 1176,1183 ****
+ if (*end_subcmd == NUL)
+ return;
+
+! len = end_subcmd - arg;
+! if (len == 5 && STRNCMP(arg, "start", 5) == 0)
+ {
+ xp->xp_context = EXPAND_FILES;
+ xp->xp_pattern = skipwhite(end_subcmd);
+--- 1175,1181 ----
+ if (*end_subcmd == NUL)
+ return;
+
+! if (end_subcmd - arg == 5 && STRNCMP(arg, "start", 5) == 0)
+ {
+ xp->xp_context = EXPAND_FILES;
+ xp->xp_pattern = skipwhite(end_subcmd);
+*** ../vim-7.2.382/src/if_python.c 2009-11-11 15:06:59.000000000 +0100
+--- src/if_python.c 2010-03-02 17:43:39.000000000 +0100
+***************
+*** 2080,2086 ****
+ return -1;
+
+ /* When column is out of range silently correct it. */
+! len = STRLEN(ml_get_buf(this->win->w_buffer, lnum, FALSE));
+ if (col > len)
+ col = len;
+
+--- 2080,2086 ----
+ return -1;
+
+ /* When column is out of range silently correct it. */
+! len = (long)STRLEN(ml_get_buf(this->win->w_buffer, lnum, FALSE));
+ if (col > len)
+ col = len;
+
+*** ../vim-7.2.382/src/syntax.c 2010-02-24 17:22:14.000000000 +0100
+--- src/syntax.c 2010-03-02 17:45:25.000000000 +0100
+***************
+*** 3090,3096 ****
+ {
+ /* a "\n" at the end of the pattern may take us below the last line */
+ result->lnum = syn_buf->b_ml.ml_line_count;
+! col = STRLEN(ml_get_buf(syn_buf, result->lnum, FALSE));
+ }
+ if (off != 0)
+ {
+--- 3090,3096 ----
+ {
+ /* a "\n" at the end of the pattern may take us below the last line */
+ result->lnum = syn_buf->b_ml.ml_line_count;
+! col = (int)STRLEN(ml_get_buf(syn_buf, result->lnum, FALSE));
+ }
+ if (off != 0)
+ {
+*** ../vim-7.2.382/src/version.c 2010-03-02 17:23:10.000000000 +0100
+--- src/version.c 2010-03-02 17:48:50.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 383,
+ /**/
+
+--
+You were lucky to have a LAKE! There were a hundred and sixty of
+us living in a small shoebox in the middle of the road.
+
+ /// 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/source/ap/vim/patches/7.2.384 b/source/ap/vim/patches/7.2.384
new file mode 100644
index 00000000..24fc6807
--- /dev/null
+++ b/source/ap/vim/patches/7.2.384
@@ -0,0 +1,59 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.384 (extra)
+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.2.384 (extra)
+Problem: Vim doesn't build properly with MSVC 2010.
+Solution: Add the nmake version to the build file. (George Reilly)
+Files: src/Make_mvc.mak, src/testdir/Make_dos.mak
+
+
+*** ../vim-7.2.383/src/Make_mvc.mak 2009-09-11 12:48:56.000000000 +0200
+--- src/Make_mvc.mak 2010-03-02 17:44:22.000000000 +0100
+***************
+*** 361,366 ****
+--- 361,369 ----
+ !if "$(_NMAKE_VER)" == "10.00.20506.01"
+ MSVCVER = 10.0
+ !endif
++ !if "$(_NMAKE_VER)" == "10.00.30128.01"
++ MSVCVER = 10.0
++ !endif
+ !endif
+
+ # Abort bulding VIM if version of VC is unrecognised.
+*** ../vim-7.2.383/src/testdir/Make_dos.mak 2010-01-19 15:51:29.000000000 +0100
+--- src/testdir/Make_dos.mak 2010-03-02 17:45:48.000000000 +0100
+***************
+*** 56,61 ****
+--- 56,62 ----
+ -if exist small.vim del small.vim
+ -if exist tiny.vim del tiny.vim
+ -if exist mbyte.vim del mbyte.vim
++ -if exist mzscheme.vim del mzscheme.vim
+ -del X*
+ -if exist viminfo del viminfo
+
+*** ../vim-7.2.383/src/version.c 2010-03-02 17:50:30.000000000 +0100
+--- src/version.c 2010-03-02 17:59:09.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 384,
+ /**/
+
+--
+Yah, well, we had to carve our electrons out of driftwood we'd
+find. In the winter. Uphill. Both ways.
+
+ /// 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/source/ap/vim/patches/7.2.385 b/source/ap/vim/patches/7.2.385
new file mode 100644
index 00000000..9f9a9178
--- /dev/null
+++ b/source/ap/vim/patches/7.2.385
@@ -0,0 +1,63 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.385
+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.2.385
+Problem: When in the command line window dragging status line only works
+ for last-but-one window. (Jean Johner)
+Solution: Remove the code that disallows this.
+Files: src/ui.c
+
+
+*** ../vim-7.2.384/src/ui.c 2010-01-19 14:59:14.000000000 +0100
+--- src/ui.c 2010-03-02 18:06:30.000000000 +0100
+***************
+*** 2598,2611 ****
+ if (cmdwin_type != 0 && wp != curwin)
+ {
+ /* A click outside the command-line window: Use modeless
+! * selection if possible. Allow dragging the status line of
+! * windows just above the command-line window. */
+! if (wp->w_winrow + wp->w_height
+! != curwin->w_prev->w_winrow + curwin->w_prev->w_height)
+! {
+! on_status_line = 0;
+! dragwin = NULL;
+! }
+ # ifdef FEAT_VERTSPLIT
+ on_sep_line = 0;
+ # endif
+--- 2598,2604 ----
+ if (cmdwin_type != 0 && wp != curwin)
+ {
+ /* A click outside the command-line window: Use modeless
+! * selection if possible. Allow dragging the status lines. */
+ # ifdef FEAT_VERTSPLIT
+ on_sep_line = 0;
+ # endif
+*** ../vim-7.2.384/src/version.c 2010-03-02 17:59:39.000000000 +0100
+--- src/version.c 2010-03-02 18:14:29.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 385,
+ /**/
+
+--
+You were lucky. We lived for three months in a brown paper bag in a
+septic tank. We used to have to get up at six o'clock in the morning,
+clean the bag, eat a crust of stale bread, go to work down mill for
+fourteen hours a day week in-week out. When we got home, our Dad
+would thrash us to sleep with his belt!
+
+ /// 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/source/ap/vim/patches/7.2.386 b/source/ap/vim/patches/7.2.386
new file mode 100644
index 00000000..7212b27c
--- /dev/null
+++ b/source/ap/vim/patches/7.2.386
@@ -0,0 +1,61 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.386
+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.2.386
+Problem: Focus hack for KDE 3.1 causes problems for other window managers.
+Solution: Remove the hack. (forwarded by Joel Bradshaw)
+Files: src/gui_gtk.c
+
+
+*** ../vim-7.2.385/src/gui_gtk.c 2009-05-17 16:23:20.000000000 +0200
+--- src/gui_gtk.c 2010-03-10 12:07:59.000000000 +0100
+***************
+*** 2313,2331 ****
+ gtk_widget_destroy(dialog);
+ }
+
+- /* Terrible hack: When the text area still has focus when we remove the
+- * dialog, somehow gvim loses window focus. This is with "point to type"
+- * in the KDE 3.1 window manager. Warp the mouse pointer to outside the
+- * window and back to avoid that. */
+- if (!gui.in_focus)
+- {
+- int x, y;
+-
+- gdk_window_get_pointer(gui.drawarea->window, &x, &y, NULL);
+- gui_mch_setmouse(-100, -100);
+- gui_mch_setmouse(x, y);
+- }
+-
+ return response > 0 ? response : 0;
+ }
+
+--- 2313,2318 ----
+*** ../vim-7.2.385/src/version.c 2010-03-02 18:15:47.000000000 +0100
+--- src/version.c 2010-03-10 12:09:00.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 386,
+ /**/
+
+--
+ARTHUR: Well, I AM king...
+DENNIS: Oh king, eh, very nice. An' how'd you get that, eh? By exploitin'
+ the workers -- by 'angin' on to outdated imperialist dogma which
+ perpetuates the economic an' social differences in our society! If
+ there's ever going to be any progress--
+ The Quest for the Holy Grail (Monty Python)
+
+ /// 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/source/ap/vim/patches/7.2.387 b/source/ap/vim/patches/7.2.387
new file mode 100644
index 00000000..ccbd6e4c
--- /dev/null
+++ b/source/ap/vim/patches/7.2.387
@@ -0,0 +1,238 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.387
+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.2.387
+Problem: Ruby with MingW still doesn't build all versions.
+Solution: More #ifdefs for the Ruby code. (Sergey Khorev)
+Files: src/if_ruby.c
+
+
+*** ../vim-7.2.386/src/if_ruby.c 2010-02-24 15:47:58.000000000 +0100
+--- src/if_ruby.c 2010-03-10 12:40:30.000000000 +0100
+***************
+*** 39,46 ****
+ # define rb_cTrueClass (*dll_rb_cTrueClass)
+ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ /*
+! * On ver 1.8, all Ruby functions are exported with "__declspce(dllimport)"
+! * in ruby.h. But it cause trouble for these variables, because it is
+ * defined in this file. When defined this RUBY_EXPORT it modified to
+ * "extern" and be able to avoid this problem.
+ */
+--- 39,46 ----
+ # define rb_cTrueClass (*dll_rb_cTrueClass)
+ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ /*
+! * On ver 1.8, all Ruby functions are exported with "__declspec(dllimport)"
+! * in ruby.h. But it causes trouble for these variables, because it is
+ * defined in this file. When defined this RUBY_EXPORT it modified to
+ * "extern" and be able to avoid this problem.
+ */
+***************
+*** 53,58 ****
+--- 53,65 ----
+ # undef _WIN32_WINNT
+ #endif
+
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
++ /* Ruby 1.9 defines a number of static functions which use rb_num2long and
++ * rb_int2big */
++ # define rb_num2long rb_num2long_stub
++ # define rb_int2big rb_int2big_stub
++ #endif
++
+ #include <ruby.h>
+ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ # include <ruby/encoding.h>
+***************
+*** 159,165 ****
+ #define rb_str_concat dll_rb_str_concat
+ #define rb_str_new dll_rb_str_new
+ #define rb_str_new2 dll_rb_str_new2
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ # define rb_errinfo dll_rb_errinfo
+ #else
+ # define ruby_errinfo (*dll_ruby_errinfo)
+--- 166,179 ----
+ #define rb_str_concat dll_rb_str_concat
+ #define rb_str_new dll_rb_str_new
+ #define rb_str_new2 dll_rb_str_new2
+! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+! # define rb_string_value_ptr dll_rb_string_value_ptr
+! # define rb_float_new dll_rb_float_new
+! # define rb_ary_new dll_rb_ary_new
+! # define rb_ary_push dll_rb_ary_push
+! #endif
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19 \
+! || defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ # define rb_errinfo dll_rb_errinfo
+ #else
+ # define ruby_errinfo (*dll_ruby_errinfo)
+***************
+*** 226,232 ****
+ static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
+ static VALUE (*dll_rb_str_new) (const char*, long);
+ static VALUE (*dll_rb_str_new2) (const char*);
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ static VALUE (*dll_rb_errinfo) (void);
+ #else
+ static VALUE *dll_ruby_errinfo;
+--- 240,247 ----
+ static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
+ static VALUE (*dll_rb_str_new) (const char*, long);
+ static VALUE (*dll_rb_str_new2) (const char*);
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19 \
+! || defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ static VALUE (*dll_rb_errinfo) (void);
+ #else
+ static VALUE *dll_ruby_errinfo;
+***************
+*** 235,240 ****
+--- 250,264 ----
+ static void (*dll_ruby_init_loadpath) (void);
+ static void (*dll_NtInitialize) (int*, char***);
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++ static char * (*dll_rb_string_value_ptr) (volatile VALUE*);
++ static VALUE (*dll_rb_float_new) (double);
++ static VALUE (*dll_rb_ary_new) (void);
++ static VALUE (*dll_rb_ary_push) (VALUE, VALUE);
++ #endif
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
++ static VALUE (*dll_rb_int2big)(SIGNED_VALUE);
++ #endif
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
+ #endif
+
+***************
+*** 246,251 ****
+--- 270,286 ----
+ static VALUE (*dll_rb_sprintf) (const char*, ...);
+ #endif
+
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
++ static SIGNED_VALUE rb_num2long_stub(VALUE x)
++ {
++ return dll_rb_num2long(x);
++ }
++ static VALUE rb_int2big_stub(SIGNED_VALUE x)
++ {
++ return dll_rb_int2big(x);
++ }
++ #endif
++
+ static HINSTANCE hinstRuby = 0; /* Instance of ruby.dll */
+
+ /*
+***************
+*** 301,317 ****
+ {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
+ {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
+ {"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2},
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo},
+ #else
+ {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
+ #endif
+ {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
+ {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
+! {"NtInitialize", (RUBY_PROC*)&dll_NtInitialize},
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
+ #endif
+ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ {"ruby_script", (RUBY_PROC*)&dll_ruby_script},
+ {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
+--- 336,368 ----
+ {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
+ {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
+ {"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2},
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19 \
+! || defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo},
+ #else
+ {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
+ #endif
+ {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
+ {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
+! {
+! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19
+! "NtInitialize",
+! #else
+! "ruby_sysinit",
+! #endif
+! (RUBY_PROC*)&dll_NtInitialize},
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
+ #endif
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++ {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr},
++ {"rb_float_new", (RUBY_PROC*)&dll_rb_float_new},
++ {"rb_ary_new", (RUBY_PROC*)&dll_rb_ary_new},
++ {"rb_ary_push", (RUBY_PROC*)&dll_rb_ary_push},
++ #endif
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
++ {"rb_int2big", (RUBY_PROC*)&dll_rb_int2big},
++ #endif
+ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ {"ruby_script", (RUBY_PROC*)&dll_ruby_script},
+ {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
+***************
+*** 569,575 ****
+ static void error_print(int state)
+ {
+ #ifndef DYNAMIC_RUBY
+! #if !(defined(RUBY_VERSION) && RUBY_VERSION >= 19)
+ RUBYEXTERN VALUE ruby_errinfo;
+ #endif
+ #endif
+--- 620,627 ----
+ static void error_print(int state)
+ {
+ #ifndef DYNAMIC_RUBY
+! #if !(defined(RUBY_VERSION) && RUBY_VERSION >= 19) \
+! && !(defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19)
+ RUBYEXTERN VALUE ruby_errinfo;
+ #endif
+ #endif
+***************
+*** 605,611 ****
+ break;
+ case TAG_RAISE:
+ case TAG_FATAL:
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ eclass = CLASS_OF(rb_errinfo());
+ einfo = rb_obj_as_string(rb_errinfo());
+ #else
+--- 657,664 ----
+ break;
+ case TAG_RAISE:
+ case TAG_FATAL:
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19 \
+! || defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ eclass = CLASS_OF(rb_errinfo());
+ einfo = rb_obj_as_string(rb_errinfo());
+ #else
+*** ../vim-7.2.386/src/version.c 2010-03-10 12:24:44.000000000 +0100
+--- src/version.c 2010-03-10 12:45:55.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 387,
+ /**/
+
+--
+Vim is like Emacs without all the typing. (John "Johann" Spetz)
+
+ /// 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/source/ap/vim/patches/7.2.388 b/source/ap/vim/patches/7.2.388
new file mode 100644
index 00000000..1a8a7a88
--- /dev/null
+++ b/source/ap/vim/patches/7.2.388
@@ -0,0 +1,86 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.388 (extra)
+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.2.388 (extra part of 7.2.387)
+Problem: Ruby with MingW still doesn't build all versions.
+Solution: Different approach to build file. (Sergey Khorev)
+Files: src/Make_ming.mak
+
+
+*** ../vim-7.2.387/src/Make_ming.mak 2010-02-26 22:05:17.000000000 +0100
+--- src/Make_ming.mak 2010-03-10 12:34:25.000000000 +0100
+***************
+*** 212,234 ****
+ RUBY_VER_LONG = 1.6
+ endif
+
+- ifeq ($(RUBY_VER), 16)
+ ifndef RUBY_PLATFORM
+ RUBY_PLATFORM = i586-mswin32
+! endif
+! ifndef RUBY_INSTALL_NAME
+! RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
+! endif
+ else
+- ifndef RUBY_PLATFORM
+ RUBY_PLATFORM = i386-mswin32
+ endif
+ ifndef RUBY_INSTALL_NAME
+ RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
+ endif
+ endif
+
+! RUBYINC =-I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
+ ifeq (no, $(DYNAMIC_RUBY))
+ RUBYLIB = -L$(RUBY)/lib -l$(RUBY_INSTALL_NAME)
+ endif
+--- 212,236 ----
+ RUBY_VER_LONG = 1.6
+ endif
+
+ ifndef RUBY_PLATFORM
++ ifeq ($(RUBY_VER), 16)
+ RUBY_PLATFORM = i586-mswin32
+! else ifneq ("X$(wildcard, $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32)", X)
+! RUBY_PLATFORM = i386-mingw32
+ else
+ RUBY_PLATFORM = i386-mswin32
+ endif
++ endif
++
+ ifndef RUBY_INSTALL_NAME
++ ifeq ($(RUBY_VER), 16)
++ RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
++ else
+ RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
+ endif
+ endif
+
+! RUBYINC =-I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
+ ifeq (no, $(DYNAMIC_RUBY))
+ RUBYLIB = -L$(RUBY)/lib -l$(RUBY_INSTALL_NAME)
+ endif
+*** ../vim-7.2.387/src/version.c 2010-03-10 12:46:38.000000000 +0100
+--- src/version.c 2010-03-10 13:18:38.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 388,
+ /**/
+
+--
+Q: Is selling software the same as selling hardware?
+A: No, good hardware is sold new, good software has already been used by many.
+
+ /// 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/source/ap/vim/patches/7.2.389 b/source/ap/vim/patches/7.2.389
new file mode 100644
index 00000000..a4af355f
--- /dev/null
+++ b/source/ap/vim/patches/7.2.389
@@ -0,0 +1,161 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.389
+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.2.389
+Problem: synIDattr() cannot return the font.
+Solution: Support the "font" argument. (Christian Brabandt)
+Files: runtime/doc/eval.txt, src/eval.c, src/syntax.c
+
+
+*** ../vim-7.2.388/runtime/doc/eval.txt 2010-01-19 15:51:29.000000000 +0100
+--- runtime/doc/eval.txt 2010-03-10 12:52:12.000000000 +0100
+***************
+*** 5370,5375 ****
+--- 5388,5395 ----
+ the color, cterm: color number as a string,
+ term: empty string)
+ "bg" background color (as with "fg")
++ "font" font name (only available in the GUI)
++ |highlight-font|
+ "sp" special color (as with "fg") |highlight-guisp|
+ "fg#" like "fg", but for the GUI and the GUI is
+ running the name in "#RRGGBB" form
+***************
+*** 5379,5384 ****
+--- 5399,5405 ----
+ "italic" "1" if italic
+ "reverse" "1" if reverse
+ "inverse" "1" if inverse (= reverse)
++ "standout" "1" if standout
+ "underline" "1" if underlined
+ "undercurl" "1" if undercurled
+
+*** ../vim-7.2.388/src/eval.c 2010-02-24 15:47:58.000000000 +0100
+--- src/eval.c 2010-03-10 12:54:27.000000000 +0100
+***************
+*** 16627,16633 ****
+ p = highlight_has_attr(id, HL_BOLD, modec);
+ break;
+
+! case 'f': /* fg[#] */
+ p = highlight_color(id, what, modec);
+ break;
+
+--- 16627,16633 ----
+ p = highlight_has_attr(id, HL_BOLD, modec);
+ break;
+
+! case 'f': /* fg[#] or font */
+ p = highlight_color(id, what, modec);
+ break;
+
+*** ../vim-7.2.388/src/syntax.c 2010-03-02 17:50:30.000000000 +0100
+--- src/syntax.c 2010-03-10 13:05:39.000000000 +0100
+***************
+*** 8326,8332 ****
+ char_u *
+ highlight_color(id, what, modec)
+ int id;
+! char_u *what; /* "fg", "bg", "sp", "fg#", "bg#" or "sp#" */
+ int modec; /* 'g' for GUI, 'c' for cterm, 't' for term */
+ {
+ static char_u name[20];
+--- 8326,8332 ----
+ char_u *
+ highlight_color(id, what, modec)
+ int id;
+! char_u *what; /* "font", "fg", "bg", "sp", "fg#", "bg#" or "sp#" */
+ int modec; /* 'g' for GUI, 'c' for cterm, 't' for term */
+ {
+ static char_u name[20];
+***************
+*** 8334,8353 ****
+ int fg = FALSE;
+ # ifdef FEAT_GUI
+ int sp = FALSE;
+ # endif
+
+ if (id <= 0 || id > highlight_ga.ga_len)
+ return NULL;
+
+! if (TOLOWER_ASC(what[0]) == 'f')
+ fg = TRUE;
+ # ifdef FEAT_GUI
+! else if (TOLOWER_ASC(what[0]) == 's')
+ sp = TRUE;
+ if (modec == 'g')
+ {
+ /* return #RRGGBB form (only possible when GUI is running) */
+! if (gui.in_use && what[1] && what[2] == '#')
+ {
+ guicolor_T color;
+ long_u rgb;
+--- 8334,8363 ----
+ int fg = FALSE;
+ # ifdef FEAT_GUI
+ int sp = FALSE;
++ int font = FALSE;
+ # endif
+
+ if (id <= 0 || id > highlight_ga.ga_len)
+ return NULL;
+
+! if (TOLOWER_ASC(what[0]) == 'f' && TOLOWER_ASC(what[1]) == 'g')
+ fg = TRUE;
+ # ifdef FEAT_GUI
+! else if (TOLOWER_ASC(what[0]) == 'f' && TOLOWER_ASC(what[1]) == 'o'
+! && TOLOWER_ASC(what[2]) == 'n' && TOLOWER_ASC(what[3]) == 't')
+! font = TRUE;
+! else if (TOLOWER_ASC(what[0]) == 's' && TOLOWER_ASC(what[1]) == 'p')
+ sp = TRUE;
++ else if (!(TOLOWER_ASC(what[0]) == 'b' && TOLOWER_ASC(what[1]) == 'g'))
++ return NULL;
+ if (modec == 'g')
+ {
++ /* return font name */
++ if (font)
++ return HL_TABLE()[id - 1].sg_font_name;
++
+ /* return #RRGGBB form (only possible when GUI is running) */
+! if (gui.in_use && what[2] == '#')
+ {
+ guicolor_T color;
+ long_u rgb;
+***************
+*** 8374,8379 ****
+--- 8384,8391 ----
+ return (HL_TABLE()[id - 1].sg_gui_sp_name);
+ return (HL_TABLE()[id - 1].sg_gui_bg_name);
+ }
++ if (font || sp)
++ return NULL;
+ # endif
+ if (modec == 'c')
+ {
+*** ../vim-7.2.388/src/version.c 2010-03-10 13:19:28.000000000 +0100
+--- src/version.c 2010-03-10 13:33:25.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 389,
+ /**/
+
+--
+WOMAN: Dennis, there's some lovely filth down here. Oh -- how d'you do?
+ARTHUR: How do you do, good lady. I am Arthur, King of the Britons.
+ Who's castle is that?
+WOMAN: King of the who?
+ The Quest for the Holy Grail (Monty Python)
+
+ /// 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/source/ap/vim/patches/7.2.390 b/source/ap/vim/patches/7.2.390
new file mode 100644
index 00000000..d10ed2a4
--- /dev/null
+++ b/source/ap/vim/patches/7.2.390
@@ -0,0 +1,72 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.390
+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.2.390
+Problem: In some situations the popup menu can be displayed wrong.
+Solution: Remove the popup menu if the cursor moved. (Lech Lorens)
+Files: src/edit.c
+
+
+*** ../vim-7.2.389/src/edit.c 2010-01-19 14:59:14.000000000 +0100
+--- src/edit.c 2010-03-10 14:09:56.000000000 +0100
+***************
+*** 4684,4689 ****
+--- 4684,4690 ----
+ int startcol = 0; /* column where searched text starts */
+ colnr_T curs_col; /* cursor column */
+ int n;
++ int save_w_wrow;
+
+ compl_direction = ins_compl_key2dir(c);
+ if (!compl_started)
+***************
+*** 5067,5072 ****
+--- 5068,5074 ----
+ /*
+ * Find next match (and following matches).
+ */
++ save_w_wrow = curwin->w_wrow;
+ n = ins_compl_next(TRUE, ins_compl_key2count(c), ins_compl_use_match(c));
+
+ /* may undisplay the popup menu */
+***************
+*** 5220,5225 ****
+--- 5222,5233 ----
+ /* RedrawingDisabled may be set when invoked through complete(). */
+ n = RedrawingDisabled;
+ RedrawingDisabled = 0;
++
++ /* If the cursor moved we need to remove the pum first. */
++ setcursor();
++ if (save_w_wrow != curwin->w_wrow)
++ ins_compl_del_pum();
++
+ ins_compl_show_pum();
+ setcursor();
+ RedrawingDisabled = n;
+*** ../vim-7.2.389/src/version.c 2010-03-10 13:43:22.000000000 +0100
+--- src/version.c 2010-03-10 14:13:55.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 390,
+ /**/
+
+--
+`When any government, or any church for that matter, undertakes to say to
+ its subjects, "This you may not read, this you must not see, this you are
+ forbidden to know," the end result is tyranny and oppression no matter how
+ holy the motives' -- Robert A Heinlein, "If this goes on --"
+
+ /// 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/source/ap/vim/patches/7.2.391 b/source/ap/vim/patches/7.2.391
new file mode 100644
index 00000000..731408de
--- /dev/null
+++ b/source/ap/vim/patches/7.2.391
@@ -0,0 +1,121 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.391
+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.2.391
+Problem: Internal alloc(0) error when doing "CTRL-V $ c". (Martti Kuparinen)
+Solution: Fix computations in getvcol(). (partly by Lech Lorens)
+Files: src/charset.c, src/memline.c
+
+
+*** ../vim-7.2.390/src/charset.c 2009-11-03 16:03:59.000000000 +0100
+--- src/charset.c 2010-03-10 14:38:14.000000000 +0100
+***************
+*** 1255,1261 ****
+
+ vcol = 0;
+ ptr = ml_get_buf(wp->w_buffer, pos->lnum, FALSE);
+! posptr = ptr + pos->col;
+
+ /*
+ * This function is used very often, do some speed optimizations.
+--- 1255,1264 ----
+
+ vcol = 0;
+ ptr = ml_get_buf(wp->w_buffer, pos->lnum, FALSE);
+! if (pos->col == MAXCOL)
+! posptr = NULL; /* continue until the NUL */
+! else
+! posptr = ptr + pos->col;
+
+ /*
+ * This function is used very often, do some speed optimizations.
+***************
+*** 1313,1319 ****
+ incr = CHARSIZE(c);
+ }
+
+! if (ptr >= posptr) /* character at pos->col */
+ break;
+
+ vcol += incr;
+--- 1316,1322 ----
+ incr = CHARSIZE(c);
+ }
+
+! if (posptr != NULL && ptr >= posptr) /* character at pos->col */
+ break;
+
+ vcol += incr;
+***************
+*** 1334,1340 ****
+ break;
+ }
+
+! if (ptr >= posptr) /* character at pos->col */
+ break;
+
+ vcol += incr;
+--- 1337,1343 ----
+ break;
+ }
+
+! if (posptr != NULL && ptr >= posptr) /* character at pos->col */
+ break;
+
+ vcol += incr;
+*** ../vim-7.2.390/src/memline.c 2010-02-11 18:54:38.000000000 +0100
+--- src/memline.c 2010-03-10 14:38:25.000000000 +0100
+***************
+*** 2113,2124 ****
+ if (buf->b_ml.ml_mfp == NULL) /* there are no lines */
+ return (char_u *)"";
+
+! /*
+! * See if it is the same line as requested last time.
+! * Otherwise may need to flush last used line.
+! * Don't use the last used line when 'swapfile' is reset, need to load all
+! * blocks.
+! */
+ if (buf->b_ml.ml_line_lnum != lnum || mf_dont_release)
+ {
+ ml_flush_line(buf);
+--- 2113,2124 ----
+ if (buf->b_ml.ml_mfp == NULL) /* there are no lines */
+ return (char_u *)"";
+
+! /*
+! * See if it is the same line as requested last time.
+! * Otherwise may need to flush last used line.
+! * Don't use the last used line when 'swapfile' is reset, need to load all
+! * blocks.
+! */
+ if (buf->b_ml.ml_line_lnum != lnum || mf_dont_release)
+ {
+ ml_flush_line(buf);
+*** ../vim-7.2.390/src/version.c 2010-03-10 14:15:28.000000000 +0100
+--- src/version.c 2010-03-10 14:31:02.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 391,
+ /**/
+
+--
+WOMAN: King of the who?
+ARTHUR: The Britons.
+WOMAN: Who are the Britons?
+ARTHUR: Well, we all are. we're all Britons and I am your king.
+ The Quest for the Holy Grail (Monty Python)
+
+ /// 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/source/ap/vim/patches/7.2.392 b/source/ap/vim/patches/7.2.392
new file mode 100644
index 00000000..c253d91b
--- /dev/null
+++ b/source/ap/vim/patches/7.2.392
@@ -0,0 +1,184 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.392
+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.2.392
+Problem: Netbeans hangs reading from a socket at the maximum block size.
+Solution: Use select() or poll(). (Xavier de Gaye)
+Files: src/vim.h, src/os_unixx.h, src/if_xcmdsrv.c, src/netbeans.c
+
+
+*** ../vim-7.2.391/src/vim.h 2010-03-02 15:55:51.000000000 +0100
+--- src/vim.h 2010-03-10 15:14:03.000000000 +0100
+***************
+*** 477,482 ****
+--- 477,499 ----
+ # include <stdarg.h>
+ #endif
+
++ # if defined(HAVE_SYS_SELECT_H) && \
++ (!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME))
++ # include <sys/select.h>
++ # endif
++
++ # ifndef HAVE_SELECT
++ # ifdef HAVE_SYS_POLL_H
++ # include <sys/poll.h>
++ # define HAVE_POLL
++ # else
++ # ifdef HAVE_POLL_H
++ # include <poll.h>
++ # define HAVE_POLL
++ # endif
++ # endif
++ # endif
++
+ /* ================ end of the header file puzzle =============== */
+
+ /*
+*** ../vim-7.2.391/src/os_unixx.h 2006-03-25 22:48:00.000000000 +0100
+--- src/os_unixx.h 2010-03-10 15:14:49.000000000 +0100
+***************
+*** 28,38 ****
+ # include <sys/wait.h>
+ # endif
+
+- # if defined(HAVE_SYS_SELECT_H) && \
+- (!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME))
+- # include <sys/select.h>
+- # endif
+-
+ # ifndef WEXITSTATUS
+ # ifdef HAVE_UNION_WAIT
+ # define WEXITSTATUS(stat_val) ((stat_val).w_T.w_Retcode)
+--- 28,33 ----
+***************
+*** 65,80 ****
+ # include <string.h>
+ #endif
+
+- #ifndef HAVE_SELECT
+- # ifdef HAVE_SYS_POLL_H
+- # include <sys/poll.h>
+- # else
+- # ifdef HAVE_POLL_H
+- # include <poll.h>
+- # endif
+- # endif
+- #endif
+-
+ #ifdef HAVE_SYS_STREAM_H
+ # include <sys/stream.h>
+ #endif
+--- 60,65 ----
+*** ../vim-7.2.391/src/if_xcmdsrv.c 2009-05-16 17:29:37.000000000 +0200
+--- src/if_xcmdsrv.c 2010-03-10 15:14:09.000000000 +0100
+***************
+*** 21,41 ****
+ # include <X11/Xatom.h>
+ # endif
+
+- # if defined(HAVE_SYS_SELECT_H) && \
+- (!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME))
+- # include <sys/select.h>
+- # endif
+-
+- # ifndef HAVE_SELECT
+- # ifdef HAVE_SYS_POLL_H
+- # include <sys/poll.h>
+- # else
+- # ifdef HAVE_POLL_H
+- # include <poll.h>
+- # endif
+- # endif
+- # endif
+-
+ /*
+ * This file provides procedures that implement the command server
+ * functionality of Vim when in contact with an X11 server.
+--- 21,26 ----
+*** ../vim-7.2.391/src/netbeans.c 2010-01-19 15:12:33.000000000 +0100
+--- src/netbeans.c 2010-03-10 15:21:37.000000000 +0100
+***************
+*** 736,741 ****
+--- 736,749 ----
+ #ifndef FEAT_GUI_GTK
+ static int level = 0;
+ #endif
++ #ifdef HAVE_SELECT
++ struct timeval tval;
++ fd_set rfds;
++ #else
++ # ifdef HAVE_POLL
++ struct pollfd fds;
++ # endif
++ #endif
+
+ if (sd < 0)
+ {
+***************
+*** 755,763 ****
+ return; /* out of memory! */
+ }
+
+! /* Keep on reading for as long as there is something to read. */
+ for (;;)
+ {
+ len = sock_read(sd, buf, MAXMSGSIZE);
+ if (len <= 0)
+ break; /* error or nothing more to read */
+--- 763,788 ----
+ return; /* out of memory! */
+ }
+
+! /* Keep on reading for as long as there is something to read.
+! * Use select() or poll() to avoid blocking on a message that is exactly
+! * MAXMSGSIZE long. */
+ for (;;)
+ {
++ #ifdef HAVE_SELECT
++ FD_ZERO(&rfds);
++ FD_SET(sd, &rfds);
++ tval.tv_sec = 0;
++ tval.tv_usec = 0;
++ if (select(sd + 1, &rfds, NULL, NULL, &tval) <= 0)
++ break;
++ #else
++ # ifdef HAVE_POLL
++ fds.fd = sd;
++ fds.events = POLLIN;
++ if (poll(&fds, 1, 0) <= 0)
++ break;
++ # endif
++ #endif
+ len = sock_read(sd, buf, MAXMSGSIZE);
+ if (len <= 0)
+ break; /* error or nothing more to read */
+*** ../vim-7.2.391/src/version.c 2010-03-10 14:46:21.000000000 +0100
+--- src/version.c 2010-03-10 16:10:48.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 392,
+ /**/
+
+--
+WOMAN: I didn't know we had a king. I thought we were an autonomous
+ collective.
+DENNIS: You're fooling yourself. We're living in a dictatorship. A
+ self-perpetuating autocracy in which the working classes--
+WOMAN: Oh there you go, bringing class into it again.
+DENNIS: That's what it's all about if only people would--
+ The Quest for the Holy Grail (Monty Python)
+
+ /// 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/source/ap/vim/patches/7.2.393 b/source/ap/vim/patches/7.2.393
new file mode 100644
index 00000000..796f6548
--- /dev/null
+++ b/source/ap/vim/patches/7.2.393
@@ -0,0 +1,281 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.393
+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.2.393
+Problem: Mac: Can't build with different Xcode developer tools directory.
+Solution: make "Developer" directory name configurable. (Rainer Muller)
+Files: src/configure.in, src/auto/configure
+
+
+*** ../vim-7.2.392/src/configure.in 2010-02-24 14:46:58.000000000 +0100
+--- src/configure.in 2010-03-10 16:16:48.000000000 +0100
+***************
+*** 116,121 ****
+--- 116,137 ----
+ MACARCH="$withval"; AC_MSG_RESULT($MACARCH),
+ MACARCH="current"; AC_MSG_RESULT(defaulting to $MACARCH))
+
++ AC_MSG_CHECKING(--with-developer-dir argument)
++ AC_ARG_WITH(developer-dir, [ --with-developer-dir=PATH use PATH as location for Xcode developer tools],
++ DEVELOPER_DIR="$withval"; AC_MSG_RESULT($DEVELOPER_DIR),
++ DEVELOPER_DIR=""; AC_MSG_RESULT(not present))
++
++ if test "x$DEVELOPER_DIR" = "x"; then
++ AC_PATH_PROG(XCODE_SELECT, xcode-select)
++ if test "x$XCODE_SELECT" != "x"; then
++ AC_MSG_CHECKING(for developer dir using xcode-select)
++ DEVELOPER_DIR=`$XCODE_SELECT -print-path`
++ AC_MSG_RESULT([$DEVELOPER_DIR])
++ else
++ DEVELOPER_DIR=/Developer
++ fi
++ fi
++
+ if test "x$MACARCH" = "xboth"; then
+ AC_MSG_CHECKING(for 10.4 universal SDK)
+ dnl There is a terrible inconsistency (but we appear to get away with it):
+***************
+*** 127,133 ****
+ save_cppflags="$CPPFLAGS"
+ save_cflags="$CFLAGS"
+ save_ldflags="$LDFLAGS"
+! CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ AC_TRY_LINK([ ], [ ],
+ AC_MSG_RESULT(found, will make universal binary),
+
+--- 143,149 ----
+ save_cppflags="$CPPFLAGS"
+ save_cflags="$CFLAGS"
+ save_ldflags="$LDFLAGS"
+! CFLAGS="$CFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ AC_TRY_LINK([ ], [ ],
+ AC_MSG_RESULT(found, will make universal binary),
+
+***************
+*** 157,165 ****
+ dnl TODO: use -arch i386 on Intel machines
+ CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
+ if test "x$MACARCH" = "xboth"; then
+! CPPFLAGS="$CPPFLAGS -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
+ else
+! CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon"
+ fi
+
+ dnl If Carbon is found, assume we don't want X11
+--- 173,181 ----
+ dnl TODO: use -arch i386 on Intel machines
+ CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
+ if test "x$MACARCH" = "xboth"; then
+! CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
+ else
+! CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
+ fi
+
+ dnl If Carbon is found, assume we don't want X11
+***************
+*** 3233,3239 ****
+ fi
+ fi
+ if test "x$MACARCH" = "xboth"; then
+! LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ fi
+
+ dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
+--- 3249,3255 ----
+ fi
+ fi
+ if test "x$MACARCH" = "xboth"; then
+! LDFLAGS="$LDFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ fi
+
+ dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
+*** ../vim-7.2.392/src/auto/configure 2010-02-24 14:46:58.000000000 +0100
+--- src/auto/configure 2010-03-10 16:19:47.000000000 +0100
+***************
+*** 718,723 ****
+--- 718,724 ----
+ VIMNAME
+ OS_EXTRA_OBJ
+ OS_EXTRA_SRC
++ XCODE_SELECT
+ CPP_MM
+ STRIP
+ AWK
+***************
+*** 774,779 ****
+--- 775,781 ----
+ enable_option_checking
+ enable_darwin
+ with_mac_arch
++ with_developer_dir
+ with_local_dir
+ with_vim_name
+ with_ex_name
+***************
+*** 1492,1497 ****
+--- 1494,1500 ----
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-mac-arch=ARCH current, intel, ppc or both
++ --with-developer-dir=PATH use PATH as location for Xcode developer tools
+ --with-local-dir=PATH search PATH instead of /usr/local for local libraries.
+ --without-local-dir do not search /usr/local for local libraries.
+ --with-vim-name=NAME what to call the Vim executable
+***************
+*** 3833,3845 ****
+ fi
+
+
+ if test "x$MACARCH" = "xboth"; then
+ { $as_echo "$as_me:$LINENO: checking for 10.4 universal SDK" >&5
+ $as_echo_n "checking for 10.4 universal SDK... " >&6; }
+ save_cppflags="$CPPFLAGS"
+ save_cflags="$CFLAGS"
+ save_ldflags="$LDFLAGS"
+! CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+--- 3836,3913 ----
+ fi
+
+
++ { $as_echo "$as_me:$LINENO: checking --with-developer-dir argument" >&5
++ $as_echo_n "checking --with-developer-dir argument... " >&6; }
++
++ # Check whether --with-developer-dir was given.
++ if test "${with_developer_dir+set}" = set; then
++ withval=$with_developer_dir; DEVELOPER_DIR="$withval"; { $as_echo "$as_me:$LINENO: result: $DEVELOPER_DIR" >&5
++ $as_echo "$DEVELOPER_DIR" >&6; }
++ else
++ DEVELOPER_DIR=""; { $as_echo "$as_me:$LINENO: result: not present" >&5
++ $as_echo "not present" >&6; }
++ fi
++
++
++ if test "x$DEVELOPER_DIR" = "x"; then
++ # Extract the first word of "xcode-select", so it can be a program name with args.
++ set dummy xcode-select; ac_word=$2
++ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
++ $as_echo_n "checking for $ac_word... " >&6; }
++ if test "${ac_cv_path_XCODE_SELECT+set}" = set; then
++ $as_echo_n "(cached) " >&6
++ else
++ case $XCODE_SELECT in
++ [\\/]* | ?:[\\/]*)
++ ac_cv_path_XCODE_SELECT="$XCODE_SELECT" # Let the user override the test with a path.
++ ;;
++ *)
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++ for as_dir in $PATH
++ do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ ac_cv_path_XCODE_SELECT="$as_dir/$ac_word$ac_exec_ext"
++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++ done
++ done
++ IFS=$as_save_IFS
++
++ ;;
++ esac
++ fi
++ XCODE_SELECT=$ac_cv_path_XCODE_SELECT
++ if test -n "$XCODE_SELECT"; then
++ { $as_echo "$as_me:$LINENO: result: $XCODE_SELECT" >&5
++ $as_echo "$XCODE_SELECT" >&6; }
++ else
++ { $as_echo "$as_me:$LINENO: result: no" >&5
++ $as_echo "no" >&6; }
++ fi
++
++
++ if test "x$XCODE_SELECT" != "x"; then
++ { $as_echo "$as_me:$LINENO: checking for developer dir using xcode-select" >&5
++ $as_echo_n "checking for developer dir using xcode-select... " >&6; }
++ DEVELOPER_DIR=`$XCODE_SELECT -print-path`
++ { $as_echo "$as_me:$LINENO: result: $DEVELOPER_DIR" >&5
++ $as_echo "$DEVELOPER_DIR" >&6; }
++ else
++ DEVELOPER_DIR=/Developer
++ fi
++ fi
++
+ if test "x$MACARCH" = "xboth"; then
+ { $as_echo "$as_me:$LINENO: checking for 10.4 universal SDK" >&5
+ $as_echo_n "checking for 10.4 universal SDK... " >&6; }
+ save_cppflags="$CPPFLAGS"
+ save_cflags="$CFLAGS"
+ save_ldflags="$LDFLAGS"
+! CFLAGS="$CFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+***************
+*** 3960,3968 ****
+ OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
+ CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
+ if test "x$MACARCH" = "xboth"; then
+! CPPFLAGS="$CPPFLAGS -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
+ else
+! CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon"
+ fi
+
+ # On IRIX 5.3, sys/types and inttypes.h are conflicting.
+--- 4028,4036 ----
+ OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
+ CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
+ if test "x$MACARCH" = "xboth"; then
+! CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
+ else
+! CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
+ fi
+
+ # On IRIX 5.3, sys/types and inttypes.h are conflicting.
+***************
+*** 17319,17325 ****
+ fi
+ fi
+ if test "x$MACARCH" = "xboth"; then
+! LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ fi
+
+ DEPEND_CFLAGS_FILTER=
+--- 17387,17393 ----
+ fi
+ fi
+ if test "x$MACARCH" = "xboth"; then
+! LDFLAGS="$LDFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ fi
+
+ DEPEND_CFLAGS_FILTER=
+*** ../vim-7.2.392/src/version.c 2010-03-10 16:11:57.000000000 +0100
+--- src/version.c 2010-03-10 16:26:00.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 393,
+ /**/
+
+--
+There are 2 kinds of people in my world: those who know Unix, Perl, Vim, GNU,
+Linux, etc, and those who know COBOL. It gets very difficult for me at
+parties, not knowing which group to socialise with :-)
+ Sitaram Chamarty
+
+ /// 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/source/ap/vim/patches/7.2.394 b/source/ap/vim/patches/7.2.394
new file mode 100644
index 00000000..50235e04
--- /dev/null
+++ b/source/ap/vim/patches/7.2.394
@@ -0,0 +1,99 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.394
+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.2.394
+Problem: .lzma and .xz files are not supported.
+Solution: Recognize .lzma and .xz files so that they can be edited.
+Files: runtime/plugin/gzip.vim
+
+
+*** ../vim-7.2.393/runtime/plugin/gzip.vim 2005-07-27 23:12:49.000000000 +0200
+--- runtime/plugin/gzip.vim 2010-03-10 17:07:22.000000000 +0100
+***************
+*** 1,6 ****
+ " Vim plugin for editing compressed files.
+ " Maintainer: Bram Moolenaar <Bram@vim.org>
+! " Last Change: 2005 Jul 26
+
+ " Exit quickly when:
+ " - this plugin was already loaded
+--- 1,6 ----
+ " Vim plugin for editing compressed files.
+ " Maintainer: Bram Moolenaar <Bram@vim.org>
+! " Last Change: 2010 Mar 10
+
+ " Exit quickly when:
+ " - this plugin was already loaded
+***************
+*** 20,36 ****
+ "
+ " Set binary mode before reading the file.
+ " Use "gzip -d", gunzip isn't always available.
+! autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z setlocal bin
+ autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
+ autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d")
+ autocmd BufReadPost,FileReadPost *.Z call gzip#read("uncompress")
+ autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
+ autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2")
+ autocmd BufWritePost,FileWritePost *.Z call gzip#write("compress -f")
+ autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
+ autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d")
+ autocmd FileAppendPre *.Z call gzip#appre("uncompress")
+ autocmd FileAppendPost *.gz call gzip#write("gzip")
+ autocmd FileAppendPost *.bz2 call gzip#write("bzip2")
+ autocmd FileAppendPost *.Z call gzip#write("compress -f")
+ augroup END
+--- 20,44 ----
+ "
+ " Set binary mode before reading the file.
+ " Use "gzip -d", gunzip isn't always available.
+! autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz setlocal bin
+ autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
+ autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d")
+ autocmd BufReadPost,FileReadPost *.Z call gzip#read("uncompress")
++ autocmd BufReadPost,FileReadPost *.lzma call gzip#read("lzma -d")
++ autocmd BufReadPost,FileReadPost *.xz call gzip#read("xz -d")
+ autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
+ autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2")
+ autocmd BufWritePost,FileWritePost *.Z call gzip#write("compress -f")
++ autocmd BufWritePost,FileWritePost *.lzma call gzip#write("lzma -z")
++ autocmd BufWritePost,FileWritePost *.xz call gzip#write("xz -z")
+ autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
+ autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d")
+ autocmd FileAppendPre *.Z call gzip#appre("uncompress")
++ autocmd FileAppendPre *.lzma call gzip#appre("lzma -d")
++ autocmd FileAppendPre *.xz call gzip#appre("xz -d")
+ autocmd FileAppendPost *.gz call gzip#write("gzip")
+ autocmd FileAppendPost *.bz2 call gzip#write("bzip2")
+ autocmd FileAppendPost *.Z call gzip#write("compress -f")
++ autocmd FileAppendPost *.lzma call gzip#write("lzma -z")
++ autocmd FileAppendPost *.xz call gzip#write("xz -z")
+ augroup END
+*** ../vim-7.2.393/src/version.c 2010-03-10 16:27:27.000000000 +0100
+--- src/version.c 2010-03-10 17:12:43.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 394,
+ /**/
+
+--
+ARTHUR: Be quiet!
+DENNIS: --but by a two-thirds majority in the case of more--
+ARTHUR: Be quiet! I order you to be quiet!
+WOMAN: Order, eh -- who does he think he is?
+ARTHUR: I am your king!
+ The Quest for the Holy Grail (Monty Python)
+
+ /// 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/source/ap/vim/patches/7.2.395 b/source/ap/vim/patches/7.2.395
new file mode 100644
index 00000000..1b5b1bae
--- /dev/null
+++ b/source/ap/vim/patches/7.2.395
@@ -0,0 +1,60 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.395
+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.2.395
+Problem: In help CTRL=] on g?g? escapes the ?, causing it to fail. (Tony
+ Mechelynck)
+Solution: Don't escape ? for a help command. (Sergey Khorev)
+Files: src/normal.c
+
+
+*** ../vim-7.2.394/src/normal.c 2010-01-19 15:23:38.000000000 +0100
+--- src/normal.c 2010-03-13 13:04:46.000000000 +0100
+***************
+*** 5526,5536 ****
+ break;
+
+ default:
+ if (curbuf->b_help)
+ STRCPY(buf, "he! ");
+ else
+ {
+- tag_cmd = TRUE;
+ if (g_cmd)
+ STRCPY(buf, "tj ");
+ else
+--- 5526,5536 ----
+ break;
+
+ default:
++ tag_cmd = TRUE;
+ if (curbuf->b_help)
+ STRCPY(buf, "he! ");
+ else
+ {
+ if (g_cmd)
+ STRCPY(buf, "tj ");
+ else
+*** ../vim-7.2.394/src/version.c 2010-03-10 17:14:07.000000000 +0100
+--- src/version.c 2010-03-17 13:05:11.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 395,
+ /**/
+
+--
+There are three kinds of people: Those who can count & those who can't.
+
+ /// 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/source/ap/vim/patches/7.2.396 b/source/ap/vim/patches/7.2.396
new file mode 100644
index 00000000..f1269231
--- /dev/null
+++ b/source/ap/vim/patches/7.2.396
@@ -0,0 +1,51 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.396
+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.2.396
+Problem: Get E38 errors. (Dasn)
+Solution: Set cursor to line 1 instead of 0. (Dominique Pelle)
+Files: src/popupmnu.c
+
+
+*** ../vim-7.2.395/src/popupmnu.c 2010-01-19 18:05:05.000000000 +0100
+--- src/popupmnu.c 2010-03-17 12:59:01.000000000 +0100
+***************
+*** 640,646 ****
+
+ curbuf->b_changed = 0;
+ curbuf->b_p_ma = FALSE;
+! curwin->w_cursor.lnum = 0;
+ curwin->w_cursor.col = 0;
+
+ if (curwin != curwin_save && win_valid(curwin_save))
+--- 640,646 ----
+
+ curbuf->b_changed = 0;
+ curbuf->b_p_ma = FALSE;
+! curwin->w_cursor.lnum = 1;
+ curwin->w_cursor.col = 0;
+
+ if (curwin != curwin_save && win_valid(curwin_save))
+*** ../vim-7.2.395/src/version.c 2010-03-17 13:07:01.000000000 +0100
+--- src/version.c 2010-03-17 14:47:30.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 396,
+ /**/
+
+--
+There are 10 kinds of people: Those who understand binary and those who don't.
+
+ /// 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/source/ap/vim/patches/7.2.397 b/source/ap/vim/patches/7.2.397
new file mode 100644
index 00000000..218a069a
--- /dev/null
+++ b/source/ap/vim/patches/7.2.397
@@ -0,0 +1,67 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.397
+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.2.397
+Problem: Redundant check for w_lines_valid.
+Solution: Remove the if. (Lech Lorens)
+Files: src/fold.c
+
+
+*** ../vim-7.2.396/src/fold.c 2010-02-24 14:34:10.000000000 +0100
+--- src/fold.c 2010-03-17 13:03:00.000000000 +0100
+***************
+*** 1053,1067 ****
+ {
+ int i;
+
+! if (win->w_lines_valid > 0)
+! for (i = 0; i < win->w_lines_valid; ++i)
+! if (win->w_lines[i].wl_valid)
+! {
+! if (lnum < win->w_lines[i].wl_lnum)
+! return -1;
+! if (lnum <= win->w_lines[i].wl_lastlnum)
+! return i;
+! }
+ return -1;
+ }
+
+--- 1053,1066 ----
+ {
+ int i;
+
+! for (i = 0; i < win->w_lines_valid; ++i)
+! if (win->w_lines[i].wl_valid)
+! {
+! if (lnum < win->w_lines[i].wl_lnum)
+! return -1;
+! if (lnum <= win->w_lines[i].wl_lastlnum)
+! return i;
+! }
+ return -1;
+ }
+
+*** ../vim-7.2.396/src/version.c 2010-03-17 14:47:56.000000000 +0100
+--- src/version.c 2010-03-17 16:43:34.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 397,
+ /**/
+
+--
+Did you ever stop to think... and forget to start again?
+ -- Steven Wright
+
+ /// 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/source/ap/vim/patches/7.2.398 b/source/ap/vim/patches/7.2.398
new file mode 100644
index 00000000..a0ccc96c
--- /dev/null
+++ b/source/ap/vim/patches/7.2.398
@@ -0,0 +1,152 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.398
+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.2.398
+Problem: When moving windows the cursor ends up in the wrong line.
+Solution: Set the window width and height properly. (Lech Lorens)
+Files: src/window.c
+
+
+*** ../vim-7.2.397/src/window.c 2010-01-27 20:26:41.000000000 +0100
+--- src/window.c 2010-03-17 16:40:06.000000000 +0100
+***************
+*** 991,1018 ****
+ wp->w_p_scr = curwin->w_p_scr;
+ if (need_status)
+ {
+! --oldwin->w_height;
+ oldwin->w_status_height = need_status;
+ }
+ if (flags & (WSP_TOP | WSP_BOT))
+ {
+ /* set height and row of new window to full height */
+ wp->w_winrow = tabline_height();
+! wp->w_height = curfrp->fr_height - (p_ls > 0);
+ wp->w_status_height = (p_ls > 0);
+ }
+ else
+ {
+ /* height and row of new window is same as current window */
+ wp->w_winrow = oldwin->w_winrow;
+! wp->w_height = oldwin->w_height;
+ wp->w_status_height = oldwin->w_status_height;
+ }
+ frp->fr_height = curfrp->fr_height;
+
+ /* "new_size" of the current window goes to the new window, use
+ * one column for the vertical separator */
+! wp->w_width = new_size;
+ if (before)
+ wp->w_vsep_width = 1;
+ else
+--- 991,1018 ----
+ wp->w_p_scr = curwin->w_p_scr;
+ if (need_status)
+ {
+! win_new_height(oldwin, oldwin->w_height - 1);
+ oldwin->w_status_height = need_status;
+ }
+ if (flags & (WSP_TOP | WSP_BOT))
+ {
+ /* set height and row of new window to full height */
+ wp->w_winrow = tabline_height();
+! win_new_height(wp, curfrp->fr_height - (p_ls > 0));
+ wp->w_status_height = (p_ls > 0);
+ }
+ else
+ {
+ /* height and row of new window is same as current window */
+ wp->w_winrow = oldwin->w_winrow;
+! win_new_height(wp, oldwin->w_height);
+ wp->w_status_height = oldwin->w_status_height;
+ }
+ frp->fr_height = curfrp->fr_height;
+
+ /* "new_size" of the current window goes to the new window, use
+ * one column for the vertical separator */
+! win_new_width(wp, new_size);
+ if (before)
+ wp->w_vsep_width = 1;
+ else
+***************
+*** 1049,1061 ****
+ if (flags & (WSP_TOP | WSP_BOT))
+ {
+ wp->w_wincol = 0;
+! wp->w_width = Columns;
+ wp->w_vsep_width = 0;
+ }
+ else
+ {
+ wp->w_wincol = oldwin->w_wincol;
+! wp->w_width = oldwin->w_width;
+ wp->w_vsep_width = oldwin->w_vsep_width;
+ }
+ frp->fr_width = curfrp->fr_width;
+--- 1049,1061 ----
+ if (flags & (WSP_TOP | WSP_BOT))
+ {
+ wp->w_wincol = 0;
+! win_new_width(wp, Columns);
+ wp->w_vsep_width = 0;
+ }
+ else
+ {
+ wp->w_wincol = oldwin->w_wincol;
+! win_new_width(wp, oldwin->w_width);
+ wp->w_vsep_width = oldwin->w_vsep_width;
+ }
+ frp->fr_width = curfrp->fr_width;
+***************
+*** 1111,1117 ****
+ }
+
+ /*
+! * make the new window the current window and redraw
+ */
+ if (do_equal || dir != 0)
+ win_equal(wp, TRUE,
+--- 1111,1117 ----
+ }
+
+ /*
+! * equalize the window sizes.
+ */
+ if (do_equal || dir != 0)
+ win_equal(wp, TRUE,
+***************
+*** 1143,1148 ****
+--- 1143,1152 ----
+ if (size != 0)
+ p_wh = size;
+ }
++
++ /*
++ * make the new window the current window
++ */
+ win_enter(wp, FALSE);
+ #ifdef FEAT_VERTSPLIT
+ if (flags & WSP_VERT)
+*** ../vim-7.2.397/src/version.c 2010-03-17 16:45:04.000000000 +0100
+--- src/version.c 2010-03-17 16:53:51.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 398,
+ /**/
+
+--
+It's not hard to meet expenses, they're everywhere.
+
+ /// 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/source/ap/vim/patches/7.2.399 b/source/ap/vim/patches/7.2.399
new file mode 100644
index 00000000..16ffa0f4
--- /dev/null
+++ b/source/ap/vim/patches/7.2.399
@@ -0,0 +1,63 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.399 (extra)
+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.2.399 (extra, after 7.2.388)
+Problem: Cannot compile on MingW.
+Solution: Move ifneq to separate line. (Vlad Sandrini, Dominique Pelle)
+Files: src/Make_ming.mak
+
+
+*** ../vim-7.2.398/src/Make_ming.mak 2010-03-10 13:19:28.000000000 +0100
+--- src/Make_ming.mak 2010-03-17 17:23:31.000000000 +0100
+***************
+*** 215,226 ****
+ ifndef RUBY_PLATFORM
+ ifeq ($(RUBY_VER), 16)
+ RUBY_PLATFORM = i586-mswin32
+! else ifneq ("X$(wildcard, $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32)", X)
+ RUBY_PLATFORM = i386-mingw32
+ else
+ RUBY_PLATFORM = i386-mswin32
+ endif
+ endif
+
+ ifndef RUBY_INSTALL_NAME
+ ifeq ($(RUBY_VER), 16)
+--- 215,228 ----
+ ifndef RUBY_PLATFORM
+ ifeq ($(RUBY_VER), 16)
+ RUBY_PLATFORM = i586-mswin32
+! else
+! ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),)
+ RUBY_PLATFORM = i386-mingw32
+ else
+ RUBY_PLATFORM = i386-mswin32
+ endif
+ endif
++ endif
+
+ ifndef RUBY_INSTALL_NAME
+ ifeq ($(RUBY_VER), 16)
+*** ../vim-7.2.398/src/version.c 2010-03-17 16:54:51.000000000 +0100
+--- src/version.c 2010-03-17 17:23:40.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 399,
+ /**/
+
+--
+Life is a gift, living is an art. (Bram Moolenaar)
+
+ /// 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/source/ap/vim/patches/7.2.400 b/source/ap/vim/patches/7.2.400
new file mode 100644
index 00000000..0c3c5487
--- /dev/null
+++ b/source/ap/vim/patches/7.2.400
@@ -0,0 +1,454 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.400
+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.2.400 (after 7.2.387)
+Problem: Dynamic Ruby is not initialised properly for version 1.9.1.
+ Ruby cannot create strings from NULL.
+Solution: Cleanup #ifdefs. Handle NULL like an empty string. Add
+ ruby_init_stack. (Sergey Khorev)
+Files: src/if_ruby.c
+
+
+*** ../vim-7.2.399/src/if_ruby.c 2010-03-10 12:46:38.000000000 +0100
+--- src/if_ruby.c 2010-03-17 17:37:53.000000000 +0100
+***************
+*** 53,58 ****
+--- 53,63 ----
+ # undef _WIN32_WINNT
+ #endif
+
++ #if (defined(RUBY_VERSION) && RUBY_VERSION >= 19) \
++ || (defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19)
++ # define RUBY19_OR_LATER 1
++ #endif
++
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ /* Ruby 1.9 defines a number of static functions which use rb_num2long and
+ * rb_int2big */
+***************
+*** 61,67 ****
+ #endif
+
+ #include <ruby.h>
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ # include <ruby/encoding.h>
+ #endif
+
+--- 66,72 ----
+ #endif
+
+ #include <ruby.h>
+! #ifdef RUBY19_OR_LATER
+ # include <ruby/encoding.h>
+ #endif
+
+***************
+*** 172,179 ****
+ # define rb_ary_new dll_rb_ary_new
+ # define rb_ary_push dll_rb_ary_push
+ #endif
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19 \
+! || defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ # define rb_errinfo dll_rb_errinfo
+ #else
+ # define ruby_errinfo (*dll_ruby_errinfo)
+--- 177,183 ----
+ # define rb_ary_new dll_rb_ary_new
+ # define rb_ary_push dll_rb_ary_push
+ #endif
+! #ifdef RUBY19_OR_LATER
+ # define rb_errinfo dll_rb_errinfo
+ #else
+ # define ruby_errinfo (*dll_ruby_errinfo)
+***************
+*** 185,196 ****
+ # define rb_w32_snprintf dll_rb_w32_snprintf
+ #endif
+
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ # define ruby_script dll_ruby_script
+ # define rb_enc_find_index dll_rb_enc_find_index
+ # define rb_enc_find dll_rb_enc_find
+ # define rb_enc_str_new dll_rb_enc_str_new
+ # define rb_sprintf dll_rb_sprintf
+ #endif
+
+ /*
+--- 189,201 ----
+ # define rb_w32_snprintf dll_rb_w32_snprintf
+ #endif
+
+! #ifdef RUBY19_OR_LATER
+ # define ruby_script dll_ruby_script
+ # define rb_enc_find_index dll_rb_enc_find_index
+ # define rb_enc_find dll_rb_enc_find
+ # define rb_enc_str_new dll_rb_enc_str_new
+ # define rb_sprintf dll_rb_sprintf
++ # define ruby_init_stack dll_ruby_init_stack
+ #endif
+
+ /*
+***************
+*** 240,247 ****
+ static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
+ static VALUE (*dll_rb_str_new) (const char*, long);
+ static VALUE (*dll_rb_str_new2) (const char*);
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19 \
+! || defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ static VALUE (*dll_rb_errinfo) (void);
+ #else
+ static VALUE *dll_ruby_errinfo;
+--- 245,251 ----
+ static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
+ static VALUE (*dll_rb_str_new) (const char*, long);
+ static VALUE (*dll_rb_str_new2) (const char*);
+! #ifdef RUBY19_OR_LATER
+ static VALUE (*dll_rb_errinfo) (void);
+ #else
+ static VALUE *dll_ruby_errinfo;
+***************
+*** 255,276 ****
+ static VALUE (*dll_rb_ary_new) (void);
+ static VALUE (*dll_rb_ary_push) (VALUE, VALUE);
+ #endif
+! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ static VALUE (*dll_rb_int2big)(SIGNED_VALUE);
+ #endif
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
+ #endif
+
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ static void (*dll_ruby_script) (const char*);
+ static int (*dll_rb_enc_find_index) (const char*);
+ static rb_encoding* (*dll_rb_enc_find) (const char*);
+ static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
+ static VALUE (*dll_rb_sprintf) (const char*, ...);
+ #endif
+
+! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ static SIGNED_VALUE rb_num2long_stub(VALUE x)
+ {
+ return dll_rb_num2long(x);
+--- 259,281 ----
+ static VALUE (*dll_rb_ary_new) (void);
+ static VALUE (*dll_rb_ary_push) (VALUE, VALUE);
+ #endif
+! #ifdef RUBY19_OR_LATER
+ static VALUE (*dll_rb_int2big)(SIGNED_VALUE);
+ #endif
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
+ #endif
+
+! #ifdef RUBY19_OR_LATER
+ static void (*dll_ruby_script) (const char*);
+ static int (*dll_rb_enc_find_index) (const char*);
+ static rb_encoding* (*dll_rb_enc_find) (const char*);
+ static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
+ static VALUE (*dll_rb_sprintf) (const char*, ...);
++ static void (*ruby_init_stack)(VALUE*);
+ #endif
+
+! #ifdef RUBY19_OR_LATER
+ static SIGNED_VALUE rb_num2long_stub(VALUE x)
+ {
+ return dll_rb_num2long(x);
+***************
+*** 336,343 ****
+ {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
+ {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
+ {"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2},
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19 \
+! || defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo},
+ #else
+ {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
+--- 341,347 ----
+ {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
+ {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
+ {"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2},
+! #ifdef RUBY19_OR_LATER
+ {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo},
+ #else
+ {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
+***************
+*** 360,374 ****
+ {"rb_ary_new", (RUBY_PROC*)&dll_rb_ary_new},
+ {"rb_ary_push", (RUBY_PROC*)&dll_rb_ary_push},
+ #endif
+! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ {"rb_int2big", (RUBY_PROC*)&dll_rb_int2big},
+- #endif
+- #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ {"ruby_script", (RUBY_PROC*)&dll_ruby_script},
+ {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
+ {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
+ {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
+ {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
+ #endif
+ {"", NULL},
+ };
+--- 364,377 ----
+ {"rb_ary_new", (RUBY_PROC*)&dll_rb_ary_new},
+ {"rb_ary_push", (RUBY_PROC*)&dll_rb_ary_push},
+ #endif
+! #ifdef RUBY19_OR_LATER
+ {"rb_int2big", (RUBY_PROC*)&dll_rb_int2big},
+ {"ruby_script", (RUBY_PROC*)&dll_ruby_script},
+ {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
+ {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
+ {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
+ {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
++ {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
+ #endif
+ {"", NULL},
+ };
+***************
+*** 467,473 ****
+ static VALUE
+ vim_str2rb_enc_str(const char *s)
+ {
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ int isnum;
+ long lval;
+ char_u *sval;
+--- 470,476 ----
+ static VALUE
+ vim_str2rb_enc_str(const char *s)
+ {
+! #ifdef RUBY19_OR_LATER
+ int isnum;
+ long lval;
+ char_u *sval;
+***************
+*** 489,495 ****
+ static VALUE
+ eval_enc_string_protect(const char *str, int *state)
+ {
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ int isnum;
+ long lval;
+ char_u *sval;
+--- 492,498 ----
+ static VALUE
+ eval_enc_string_protect(const char *str, int *state)
+ {
+! #ifdef RUBY19_OR_LATER
+ int isnum;
+ long lval;
+ char_u *sval;
+***************
+*** 591,606 ****
+ char *argv[] = {"gvim.exe"};
+ NtInitialize(&argc, &argv);
+ #endif
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ RUBY_INIT_STACK;
+ #endif
+ ruby_init();
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ ruby_script("vim-ruby");
+ #endif
+ ruby_init_loadpath();
+ ruby_io_init();
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ rb_enc_find_index("encdb");
+ #endif
+ ruby_vim_init();
+--- 594,609 ----
+ char *argv[] = {"gvim.exe"};
+ NtInitialize(&argc, &argv);
+ #endif
+! #ifdef RUBY19_OR_LATER
+ RUBY_INIT_STACK;
+ #endif
+ ruby_init();
+! #ifdef RUBY19_OR_LATER
+ ruby_script("vim-ruby");
+ #endif
+ ruby_init_loadpath();
+ ruby_io_init();
+! #ifdef RUBY19_OR_LATER
+ rb_enc_find_index("encdb");
+ #endif
+ ruby_vim_init();
+***************
+*** 657,664 ****
+ break;
+ case TAG_RAISE:
+ case TAG_FATAL:
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19 \
+! || defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ eclass = CLASS_OF(rb_errinfo());
+ einfo = rb_obj_as_string(rb_errinfo());
+ #else
+--- 660,666 ----
+ break;
+ case TAG_RAISE:
+ case TAG_FATAL:
+! #ifdef RUBY19_OR_LATER
+ eclass = CLASS_OF(rb_errinfo());
+ einfo = rb_obj_as_string(rb_errinfo());
+ #else
+***************
+*** 720,775 ****
+
+ if (tv->v_type == VAR_STRING)
+ {
+! result = rb_str_new2((char *)tv->vval.v_string);
+ }
+ else if (tv->v_type == VAR_NUMBER)
+ {
+! result = INT2NUM(tv->vval.v_number);
+ }
+ # ifdef FEAT_FLOAT
+ else if (tv->v_type == VAR_FLOAT)
+ {
+! result = rb_float_new(tv->vval.v_float);
+ }
+ # endif
+ else if (tv->v_type == VAR_LIST)
+ {
+! list_T *list = tv->vval.v_list;
+! listitem_T *curr;
+
+! result = rb_ary_new();
+
+! if (list != NULL)
+! {
+! for (curr = list->lv_first; curr != NULL; curr = curr->li_next)
+! {
+! rb_ary_push(result, vim_to_ruby(&curr->li_tv));
+! }
+! }
+ }
+ else if (tv->v_type == VAR_DICT)
+ {
+! result = rb_hash_new();
+
+! if (tv->vval.v_dict != NULL)
+! {
+! hashtab_T *ht = &tv->vval.v_dict->dv_hashtab;
+! long_u todo = ht->ht_used;
+! hashitem_T *hi;
+! dictitem_T *di;
+!
+! for (hi = ht->ht_array; todo > 0; ++hi)
+! {
+! if (!HASHITEM_EMPTY(hi))
+! {
+! --todo;
+
+! di = dict_lookup(hi);
+! rb_hash_aset(result, rb_str_new2((char *)hi->hi_key),
+ vim_to_ruby(&di->di_tv));
+! }
+! }
+! }
+ } /* else return Qnil; */
+
+ return result;
+--- 722,778 ----
+
+ if (tv->v_type == VAR_STRING)
+ {
+! result = rb_str_new2((char *)(tv->vval.v_string == NULL
+! ? "" : tv->vval.v_string));
+ }
+ else if (tv->v_type == VAR_NUMBER)
+ {
+! result = INT2NUM(tv->vval.v_number);
+ }
+ # ifdef FEAT_FLOAT
+ else if (tv->v_type == VAR_FLOAT)
+ {
+! result = rb_float_new(tv->vval.v_float);
+ }
+ # endif
+ else if (tv->v_type == VAR_LIST)
+ {
+! list_T *list = tv->vval.v_list;
+! listitem_T *curr;
+
+! result = rb_ary_new();
+
+! if (list != NULL)
+! {
+! for (curr = list->lv_first; curr != NULL; curr = curr->li_next)
+! {
+! rb_ary_push(result, vim_to_ruby(&curr->li_tv));
+! }
+! }
+ }
+ else if (tv->v_type == VAR_DICT)
+ {
+! result = rb_hash_new();
+
+! if (tv->vval.v_dict != NULL)
+! {
+! hashtab_T *ht = &tv->vval.v_dict->dv_hashtab;
+! long_u todo = ht->ht_used;
+! hashitem_T *hi;
+! dictitem_T *di;
+!
+! for (hi = ht->ht_array; todo > 0; ++hi)
+! {
+! if (!HASHITEM_EMPTY(hi))
+! {
+! --todo;
+
+! di = dict_lookup(hi);
+! rb_hash_aset(result, rb_str_new2((char *)hi->hi_key),
+ vim_to_ruby(&di->di_tv));
+! }
+! }
+! }
+ } /* else return Qnil; */
+
+ return result;
+***************
+*** 785,791 ****
+ tv = eval_expr((char_u *)StringValuePtr(str), NULL);
+ if (tv == NULL)
+ {
+! return Qnil;
+ }
+ result = vim_to_ruby(tv);
+
+--- 788,794 ----
+ tv = eval_expr((char_u *)StringValuePtr(str), NULL);
+ if (tv == NULL)
+ {
+! return Qnil;
+ }
+ result = vim_to_ruby(tv);
+
+*** ../vim-7.2.399/src/version.c 2010-03-17 17:24:58.000000000 +0100
+--- src/version.c 2010-03-17 18:14:31.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 400,
+ /**/
+
+--
+Q: What do you call a fish without an eye?
+A: fsh!
+Q: What do you call a deer with no eyes?
+A: no eye deer.
+Q: What do you call a deer with no eyes and no legs?
+A: still no eye deer.
+
+ /// 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/source/ap/vim/patches/7.2.401 b/source/ap/vim/patches/7.2.401
new file mode 100644
index 00000000..032076ab
--- /dev/null
+++ b/source/ap/vim/patches/7.2.401
@@ -0,0 +1,61 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.401
+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.2.401
+Problem: ":e dir<Tab>" with 'wildmode' set to "list" doesn't highlight
+ directory names with a space. (Alexandre Provencio)
+Solution: Remove the backslash before checking if the name is a directory.
+ (Dominique Pelle)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.2.400/src/ex_getln.c 2010-03-02 17:23:10.000000000 +0100
+--- src/ex_getln.c 2010-03-17 19:00:54.000000000 +0100
+***************
+*** 3948,3955 ****
+ || xp->xp_context == EXPAND_SHELLCMD
+ || xp->xp_context == EXPAND_BUFFERS)
+ {
+! /* highlight directories */
+! j = (mch_isdir(files_found[k]));
+ if (showtail)
+ p = L_SHOWFILE(k);
+ else
+--- 3948,3959 ----
+ || xp->xp_context == EXPAND_SHELLCMD
+ || xp->xp_context == EXPAND_BUFFERS)
+ {
+! char_u *halved_slash;
+!
+! /* highlight directories */
+! halved_slash = backslash_halve_save(files_found[k]);
+! j = mch_isdir(halved_slash);
+! vim_free(halved_slash);
+ if (showtail)
+ p = L_SHOWFILE(k);
+ else
+*** ../vim-7.2.400/src/version.c 2010-03-17 18:15:17.000000000 +0100
+--- src/version.c 2010-03-17 19:12:22.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 401,
+ /**/
+
+--
+Two cows are standing together in a field. One asks the other:
+"So what do you think about this Mad Cow Disease?"
+The other replies: "That doesn't concern me. I'm a helicopter."
+
+ /// 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/source/ap/vim/patches/7.2.402 b/source/ap/vim/patches/7.2.402
new file mode 100644
index 00000000..7c256bb1
--- /dev/null
+++ b/source/ap/vim/patches/7.2.402
@@ -0,0 +1,91 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.402
+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.2.402
+Problem: This gives a #705 error: let X = function('haslocaldir')
+ let X = function('getcwd')
+Solution: Don't give E705 when the name is found in the hashtab. (Sergey
+ Khorev)
+Files: src/eval.c
+
+
+*** ../vim-7.2.401/src/eval.c 2010-03-10 13:43:22.000000000 +0100
+--- src/eval.c 2010-03-17 19:35:01.000000000 +0100
+***************
+*** 19103,19108 ****
+--- 19103,19116 ----
+ hashtab_T *ht;
+ char_u *p;
+
++ ht = find_var_ht(name, &varname);
++ if (ht == NULL || *varname == NUL)
++ {
++ EMSG2(_(e_illvar), name);
++ return;
++ }
++ v = find_var_in_ht(ht, varname, TRUE);
++
+ if (tv->v_type == VAR_FUNC)
+ {
+ if (!(vim_strchr((char_u *)"wbs", name[0]) != NULL && name[1] == ':')
+***************
+*** 19112,19118 ****
+ EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
+ return;
+ }
+! if (function_exists(name))
+ {
+ EMSG2(_("E705: Variable name conflicts with existing function: %s"),
+ name);
+--- 19120,19129 ----
+ EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
+ return;
+ }
+! /* Don't allow hiding a function. When "v" is not NULL we migth be
+! * assigning another function to the same var, the type is checked
+! * below. */
+! if (v == NULL && function_exists(name))
+ {
+ EMSG2(_("E705: Variable name conflicts with existing function: %s"),
+ name);
+***************
+*** 19120,19133 ****
+ }
+ }
+
+- ht = find_var_ht(name, &varname);
+- if (ht == NULL || *varname == NUL)
+- {
+- EMSG2(_(e_illvar), name);
+- return;
+- }
+-
+- v = find_var_in_ht(ht, varname, TRUE);
+ if (v != NULL)
+ {
+ /* existing variable, need to clear the value */
+--- 19131,19136 ----
+*** ../vim-7.2.401/src/version.c 2010-03-17 19:13:19.000000000 +0100
+--- src/version.c 2010-03-17 19:36:09.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 402,
+ /**/
+
+--
+Michael: There is no such thing as a dump question.
+Bernard: Sure there is. For example "what is a core dump?"
+
+ /// 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/source/ap/vim/patches/7.2.403 b/source/ap/vim/patches/7.2.403
new file mode 100644
index 00000000..d2949dbc
--- /dev/null
+++ b/source/ap/vim/patches/7.2.403
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.403
+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.2.403 (after 7.2.400)
+Problem: Compiler warning for pointer type. (Tony Mechelynck)
+Solution: Move type cast to the right place.
+Files: src/if_ruby.c
+
+
+*** ../vim-7.2.402/src/if_ruby.c 2010-03-17 18:15:17.000000000 +0100
+--- src/if_ruby.c 2010-03-19 23:08:06.000000000 +0100
+***************
+*** 722,729 ****
+
+ if (tv->v_type == VAR_STRING)
+ {
+! result = rb_str_new2((char *)(tv->vval.v_string == NULL
+! ? "" : tv->vval.v_string));
+ }
+ else if (tv->v_type == VAR_NUMBER)
+ {
+--- 722,729 ----
+
+ if (tv->v_type == VAR_STRING)
+ {
+! result = rb_str_new2(tv->vval.v_string == NULL
+! ? "" : (char *)(tv->vval.v_string));
+ }
+ else if (tv->v_type == VAR_NUMBER)
+ {
+*** ../vim-7.2.402/src/version.c 2010-03-17 19:53:44.000000000 +0100
+--- src/version.c 2010-03-19 23:07:13.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 403,
+ /**/
+
+--
+If "R" is Reverse, how come "D" is FORWARD?
+
+ /// 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/source/ap/vim/patches/7.2.404 b/source/ap/vim/patches/7.2.404
new file mode 100644
index 00000000..fa1a0b6b
--- /dev/null
+++ b/source/ap/vim/patches/7.2.404
@@ -0,0 +1,54 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.404
+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.2.404
+Problem: Pointers for composing characters are not properly initialized.
+Solution: Compute the size of the pointer, not what it points to. (Yukihiro
+ Nakadaira)
+Files: src/screen.c
+
+
+*** ../vim-7.2.403/src/screen.c 2010-02-03 15:47:59.000000000 +0100
+--- src/screen.c 2010-03-23 13:48:05.000000000 +0100
+***************
+*** 7536,7542 ****
+ new_ScreenLines = (schar_T *)lalloc((long_u)(
+ (Rows + 1) * Columns * sizeof(schar_T)), FALSE);
+ #ifdef FEAT_MBYTE
+! vim_memset(new_ScreenLinesC, 0, sizeof(u8char_T) * MAX_MCO);
+ if (enc_utf8)
+ {
+ new_ScreenLinesUC = (u8char_T *)lalloc((long_u)(
+--- 7536,7542 ----
+ new_ScreenLines = (schar_T *)lalloc((long_u)(
+ (Rows + 1) * Columns * sizeof(schar_T)), FALSE);
+ #ifdef FEAT_MBYTE
+! vim_memset(new_ScreenLinesC, 0, sizeof(u8char_T *) * MAX_MCO);
+ if (enc_utf8)
+ {
+ new_ScreenLinesUC = (u8char_T *)lalloc((long_u)(
+*** ../vim-7.2.403/src/version.c 2010-03-19 23:08:22.000000000 +0100
+--- src/version.c 2010-03-23 13:54:47.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 404,
+ /**/
+
+--
+LAUNCELOT: Isn't there a St. Aaaaarrrrrrggghhh's in Cornwall?
+ARTHUR: No, that's Saint Ives.
+ "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/source/ap/vim/patches/7.2.405 b/source/ap/vim/patches/7.2.405
new file mode 100644
index 00000000..b79a19aa
--- /dev/null
+++ b/source/ap/vim/patches/7.2.405
@@ -0,0 +1,48 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.405
+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.2.405
+Problem: When built with small features the matching text is not
+ highlighted for ":s/pat/repl/c".
+Solution: Remove the #ifdef for IncSearch. (James Vega)
+Files: src/syntax.c
+
+
+*** ../vim-7.2.404/src/syntax.c 2010-03-10 13:43:22.000000000 +0100
+--- src/syntax.c 2010-03-23 14:36:10.000000000 +0100
+***************
+*** 6205,6214 ****
+ {
+ CENT("ErrorMsg term=standout ctermbg=DarkRed ctermfg=White",
+ "ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White"),
+- #ifdef FEAT_SEARCH_EXTRA
+ CENT("IncSearch term=reverse cterm=reverse",
+ "IncSearch term=reverse cterm=reverse gui=reverse"),
+- #endif
+ CENT("ModeMsg term=bold cterm=bold",
+ "ModeMsg term=bold cterm=bold gui=bold"),
+ CENT("NonText term=bold ctermfg=Blue",
+--- 6205,6212 ----
+*** ../vim-7.2.404/src/version.c 2010-03-23 13:56:53.000000000 +0100
+--- src/version.c 2010-03-23 14:37:08.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 405,
+ /**/
+
+--
+Dreams are free, but there's a small charge for alterations.
+
+ /// 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/source/ap/vim/patches/7.2.406 b/source/ap/vim/patches/7.2.406
new file mode 100644
index 00000000..cff265f5
--- /dev/null
+++ b/source/ap/vim/patches/7.2.406
@@ -0,0 +1,123 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.406
+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.2.406
+Problem: Patch 7.2.119 introduces uninit mem read. (Dominique Pelle)
+Solution: Only used ScreeenLinesC when ScreeenLinesUC is not zero. (Yukihiro
+ Nakadaira) Also clear ScreeenLinesC when allocating.
+Files: src/screen.c
+
+
+*** ../vim-7.2.405/src/screen.c 2010-03-23 13:56:53.000000000 +0100
+--- src/screen.c 2010-03-23 15:26:44.000000000 +0100
+***************
+*** 25,34 ****
+ * one character which occupies two display cells.
+ * For UTF-8 a multi-byte character is converted to Unicode and stored in
+ * ScreenLinesUC[]. ScreenLines[] contains the first byte only. For an ASCII
+! * character without composing chars ScreenLinesUC[] will be 0. When the
+! * character occupies two display cells the next byte in ScreenLines[] is 0.
+ * ScreenLinesC[][] contain up to 'maxcombine' composing characters
+! * (drawn on top of the first character). They are 0 when not used.
+ * ScreenLines2[] is only used for euc-jp to store the second byte if the
+ * first byte is 0x8e (single-width character).
+ *
+--- 25,35 ----
+ * one character which occupies two display cells.
+ * For UTF-8 a multi-byte character is converted to Unicode and stored in
+ * ScreenLinesUC[]. ScreenLines[] contains the first byte only. For an ASCII
+! * character without composing chars ScreenLinesUC[] will be 0 and
+! * ScreenLinesC[][] is not used. When the character occupies two display
+! * cells the next byte in ScreenLines[] is 0.
+ * ScreenLinesC[][] contain up to 'maxcombine' composing characters
+! * (drawn on top of the first character). There is 0 after the last one used.
+ * ScreenLines2[] is only used for euc-jp to store the second byte if the
+ * first byte is 0x8e (single-width character).
+ *
+***************
+*** 4893,4898 ****
+--- 4894,4900 ----
+
+ /*
+ * Return if the composing characters at "off_from" and "off_to" differ.
++ * Only to be used when ScreenLinesUC[off_from] != 0.
+ */
+ static int
+ comp_char_differs(off_from, off_to)
+***************
+*** 6281,6286 ****
+--- 6283,6289 ----
+ /*
+ * Return TRUE if composing characters for screen posn "off" differs from
+ * composing characters in "u8cc".
++ * Only to be used when ScreenLinesUC[off] != 0.
+ */
+ static int
+ screen_comp_differs(off, u8cc)
+***************
+*** 6461,6468 ****
+ && c == 0x8e
+ && ScreenLines2[off] != ptr[1])
+ || (enc_utf8
+! && (ScreenLinesUC[off] != (u8char_T)(c >= 0x80 ? u8c : 0)
+! || screen_comp_differs(off, u8cc)))
+ #endif
+ || ScreenAttrs[off] != attr
+ || exmode_active;
+--- 6464,6473 ----
+ && c == 0x8e
+ && ScreenLines2[off] != ptr[1])
+ || (enc_utf8
+! && (ScreenLinesUC[off] !=
+! (u8char_T)(c < 0x80 && u8cc[0] == 0 ? 0 : u8c)
+! || (ScreenLinesUC[off] != 0
+! && screen_comp_differs(off, u8cc))))
+ #endif
+ || ScreenAttrs[off] != attr
+ || exmode_active;
+***************
+*** 7542,7548 ****
+ new_ScreenLinesUC = (u8char_T *)lalloc((long_u)(
+ (Rows + 1) * Columns * sizeof(u8char_T)), FALSE);
+ for (i = 0; i < p_mco; ++i)
+! new_ScreenLinesC[i] = (u8char_T *)lalloc((long_u)(
+ (Rows + 1) * Columns * sizeof(u8char_T)), FALSE);
+ }
+ if (enc_dbcs == DBCS_JPNU)
+--- 7547,7553 ----
+ new_ScreenLinesUC = (u8char_T *)lalloc((long_u)(
+ (Rows + 1) * Columns * sizeof(u8char_T)), FALSE);
+ for (i = 0; i < p_mco; ++i)
+! new_ScreenLinesC[i] = (u8char_T *)lalloc_clear((long_u)(
+ (Rows + 1) * Columns * sizeof(u8char_T)), FALSE);
+ }
+ if (enc_dbcs == DBCS_JPNU)
+*** ../vim-7.2.405/src/version.c 2010-03-23 14:39:07.000000000 +0100
+--- src/version.c 2010-03-23 15:34:11.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 406,
+ /**/
+
+--
+VOICE OVER: As the horrendous Black Beast lunged forward, escape for Arthur
+ and his knights seemed hopeless, when, suddenly ... the animator
+ suffered a fatal heart attack.
+ANIMATOR: Aaaaagh!
+VOICE OVER: The cartoon peril was no more ... The Quest for Holy Grail could
+ continue.
+ "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/source/ap/vim/patches/7.2.407 b/source/ap/vim/patches/7.2.407
new file mode 100644
index 00000000..0237a9d1
--- /dev/null
+++ b/source/ap/vim/patches/7.2.407
@@ -0,0 +1,69 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.407
+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.2.407
+Problem: When using an expression in ":s" backslashes in the result are
+ dropped. (Sergey Goldgaber, Christian Brabandt)
+Solution: Double backslashes.
+Files: src/regexp.c
+
+
+*** ../vim-7.2.406/src/regexp.c 2009-11-26 20:41:19.000000000 +0100
+--- src/regexp.c 2010-03-23 16:22:35.000000000 +0100
+***************
+*** 6963,6968 ****
+--- 6963,6970 ----
+ eval_result = eval_to_string(source + 2, NULL, TRUE);
+ if (eval_result != NULL)
+ {
++ int had_backslash = FALSE;
++
+ for (s = eval_result; *s != NUL; mb_ptr_adv(s))
+ {
+ /* Change NL to CR, so that it becomes a line break.
+***************
+*** 6970,6976 ****
+--- 6972,6991 ----
+ if (*s == NL)
+ *s = CAR;
+ else if (*s == '\\' && s[1] != NUL)
++ {
+ ++s;
++ had_backslash = TRUE;
++ }
++ }
++ if (had_backslash && backslash)
++ {
++ /* Backslashes will be consumed, need to double them. */
++ s = vim_strsave_escaped(eval_result, (char_u *)"\\");
++ if (s != NULL)
++ {
++ vim_free(eval_result);
++ eval_result = s;
++ }
+ }
+
+ dst += STRLEN(eval_result);
+*** ../vim-7.2.406/src/version.c 2010-03-23 15:36:29.000000000 +0100
+--- src/version.c 2010-03-23 16:26:22.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 407,
+ /**/
+
+--
+Sorry, no fortune 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 ///
diff --git a/source/ap/vim/patches/7.2.408 b/source/ap/vim/patches/7.2.408
new file mode 100644
index 00000000..25ac3a9c
--- /dev/null
+++ b/source/ap/vim/patches/7.2.408
@@ -0,0 +1,73 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.408
+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.2.408
+Problem: With ":g/the/s/foo/bar/" the '[ and '] marks can be set to a line
+ that was not changed.
+Solution: Only set '[ and '] marks when a substitution was done.
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.2.407/src/ex_cmds.c 2009-07-09 20:06:30.000000000 +0200
+--- src/ex_cmds.c 2010-03-23 17:31:17.000000000 +0100
+***************
+*** 4238,4243 ****
+--- 4238,4244 ----
+ char_u *sub_firstline; /* allocated copy of first sub line */
+ int endcolumn = FALSE; /* cursor in last column when done */
+ pos_T old_cursor = curwin->w_cursor;
++ int start_nsubs;
+
+ cmd = eap->arg;
+ if (!global_busy)
+***************
+*** 4245,4250 ****
+--- 4246,4252 ----
+ sub_nsubs = 0;
+ sub_nlines = 0;
+ }
++ start_nsubs = sub_nsubs;
+
+ if (eap->cmdidx == CMD_tilde)
+ which_pat = RE_LAST; /* use last used regexp */
+***************
+*** 5106,5112 ****
+ if (do_count)
+ curwin->w_cursor = old_cursor;
+
+! if (sub_nsubs)
+ {
+ /* Set the '[ and '] marks. */
+ curbuf->b_op_start.lnum = eap->line1;
+--- 5108,5114 ----
+ if (do_count)
+ curwin->w_cursor = old_cursor;
+
+! if (sub_nsubs > start_nsubs)
+ {
+ /* Set the '[ and '] marks. */
+ curbuf->b_op_start.lnum = eap->line1;
+*** ../vim-7.2.407/src/version.c 2010-03-23 16:27:15.000000000 +0100
+--- src/version.c 2010-03-23 17:35:40.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 408,
+ /**/
+
+--
+Permission is granted to read this message out aloud on Kings Cross Road,
+London, under the condition that the orator is properly dressed.
+
+ /// 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/source/ap/vim/patches/7.2.409 b/source/ap/vim/patches/7.2.409
new file mode 100644
index 00000000..fdda4a00
--- /dev/null
+++ b/source/ap/vim/patches/7.2.409
@@ -0,0 +1,60 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.409
+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.2.409
+Problem: Summary of number of substitutes is incorrect for ":folddo". (Jean
+ Johner)
+Solution: Reset sub_nsubs and sub_nlines in global_exe().
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.2.408/src/ex_cmds.c 2010-03-23 17:36:24.000000000 +0100
+--- src/ex_cmds.c 2010-03-23 17:42:49.000000000 +0100
+***************
+*** 5238,5245 ****
+ type = *eap->cmd;
+ cmd = eap->arg;
+ which_pat = RE_LAST; /* default: use last used regexp */
+- sub_nsubs = 0;
+- sub_nlines = 0;
+
+ /*
+ * undocumented vi feature:
+--- 5238,5243 ----
+***************
+*** 5343,5348 ****
+--- 5341,5348 ----
+ /* When the command writes a message, don't overwrite the command. */
+ msg_didout = TRUE;
+
++ sub_nsubs = 0;
++ sub_nlines = 0;
+ global_need_beginline = FALSE;
+ global_busy = 1;
+ old_lcount = curbuf->b_ml.ml_line_count;
+*** ../vim-7.2.408/src/version.c 2010-03-23 17:36:24.000000000 +0100
+--- src/version.c 2010-03-23 17:47:53.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 409,
+ /**/
+
+--
+BRIDGEKEEPER: What is your favorite colour?
+LAUNCELOT: Blue.
+BRIDGEKEEPER: Right. Off you go.
+ "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/source/ap/vim/patches/7.2.410 b/source/ap/vim/patches/7.2.410
new file mode 100644
index 00000000..660b0681
--- /dev/null
+++ b/source/ap/vim/patches/7.2.410
@@ -0,0 +1,78 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.410
+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.2.410
+Problem: Highlighting directories for completion doesn't work properly.
+Solution: Don't halve backslashes when not needed, expaned "~/".
+ (Dominique Pelle)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.2.409/src/ex_getln.c 2010-03-17 19:13:19.000000000 +0100
+--- src/ex_getln.c 2010-03-23 18:00:56.000000000 +0100
+***************
+*** 3948,3959 ****
+ || xp->xp_context == EXPAND_SHELLCMD
+ || xp->xp_context == EXPAND_BUFFERS)
+ {
+- char_u *halved_slash;
+-
+ /* highlight directories */
+! halved_slash = backslash_halve_save(files_found[k]);
+! j = mch_isdir(halved_slash);
+! vim_free(halved_slash);
+ if (showtail)
+ p = L_SHOWFILE(k);
+ else
+--- 3948,3973 ----
+ || xp->xp_context == EXPAND_SHELLCMD
+ || xp->xp_context == EXPAND_BUFFERS)
+ {
+ /* highlight directories */
+! if (xp->xp_numfiles != -1)
+! {
+! char_u *halved_slash;
+! char_u *exp_path;
+!
+! /* Expansion was done before and special characters
+! * were escaped, need to halve backslashes. Also
+! * $HOME has been replaced with ~/. */
+! exp_path = expand_env_save_opt(files_found[k], TRUE);
+! halved_slash = backslash_halve_save(
+! exp_path != NULL ? exp_path : files_found[k]);
+! j = mch_isdir(halved_slash != NULL ? halved_slash
+! : files_found[k]);
+! vim_free(exp_path);
+! vim_free(halved_slash);
+! }
+! else
+! /* Expansion was done here, file names are literal. */
+! j = mch_isdir(files_found[k]);
+ if (showtail)
+ p = L_SHOWFILE(k);
+ else
+*** ../vim-7.2.409/src/version.c 2010-03-23 17:49:19.000000000 +0100
+--- src/version.c 2010-03-23 18:04:25.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 410,
+ /**/
+
+--
+BRIDGEKEEPER: What is your favorite colour?
+GAWAIN: Blue ... No yelloooooww!
+ "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/source/ap/vim/patches/7.2.411 b/source/ap/vim/patches/7.2.411
new file mode 100644
index 00000000..4a619ee7
--- /dev/null
+++ b/source/ap/vim/patches/7.2.411
@@ -0,0 +1,47 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.411
+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.2.411
+Problem: When parsing 'cino' a comma isn't skipped properly.
+Solution: Skip the comma. (Lech Lorens)
+Files: src/misc1.c
+
+
+*** ../vim-7.2.410/src/misc1.c 2010-03-02 12:37:01.000000000 +0100
+--- src/misc1.c 2010-03-23 18:18:15.000000000 +0100
+***************
+*** 6270,6275 ****
+--- 6270,6277 ----
+ case 'l': ind_keep_case_label = n; break;
+ case '#': ind_hash_comment = n; break;
+ }
++ if (*options == ',')
++ ++options;
+ }
+
+ /* remember where the cursor was when we started */
+*** ../vim-7.2.410/src/version.c 2010-03-23 18:06:47.000000000 +0100
+--- src/version.c 2010-03-23 18:22:13.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 411,
+ /**/
+
+--
+BRIDGEKEEPER: What is your favorite editor?
+GAWAIN: Emacs ... No, Viiiiiiiiiiimmmmmmm!
+ "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE 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/source/ap/vim/patches/7.2.412 b/source/ap/vim/patches/7.2.412
new file mode 100644
index 00000000..d4676950
--- /dev/null
+++ b/source/ap/vim/patches/7.2.412
@@ -0,0 +1,85 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.412
+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.2.412
+Problem: [ or ] followed by mouse click doesn't work.
+Solution: Reverse check for key being a mouse event. (Dominique Pelle)
+Files: src/normal.c
+
+
+*** ../vim-7.2.411/src/normal.c 2010-03-17 13:07:01.000000000 +0100
+--- src/normal.c 2010-05-07 15:46:54.000000000 +0200
+***************
+*** 3196,3202 ****
+ * There are a few special cases where we want certain combinations of
+ * characters to be considered as a single word. These are things like
+ * "->", "/ *", "*=", "+=", "&=", "<=", ">=", "!=" etc. Otherwise, each
+! * character is in it's own class.
+ */
+ if (c != NUL && vim_strchr((char_u *)"-+*/%<>&|^!=", c) != NULL)
+ return 1;
+--- 3196,3202 ----
+ * There are a few special cases where we want certain combinations of
+ * characters to be considered as a single word. These are things like
+ * "->", "/ *", "*=", "+=", "&=", "<=", ">=", "!=" etc. Otherwise, each
+! * character is in its own class.
+ */
+ if (c != NUL && vim_strchr((char_u *)"-+*/%<>&|^!=", c) != NULL)
+ return 1;
+***************
+*** 4085,4091 ****
+ /*
+ * Command character that's ignored.
+ * Used for CTRL-Q and CTRL-S to avoid problems with terminals that use
+! * xon/xoff
+ */
+ static void
+ nv_ignore(cap)
+--- 4085,4091 ----
+ /*
+ * Command character that's ignored.
+ * Used for CTRL-Q and CTRL-S to avoid problems with terminals that use
+! * xon/xoff.
+ */
+ static void
+ nv_ignore(cap)
+***************
+*** 6523,6529 ****
+ * [ or ] followed by a middle mouse click: put selected text with
+ * indent adjustment. Any other button just does as usual.
+ */
+! else if (cap->nchar >= K_LEFTMOUSE && cap->nchar <= K_RIGHTRELEASE)
+ {
+ (void)do_mouse(cap->oap, cap->nchar,
+ (cap->cmdchar == ']') ? FORWARD : BACKWARD,
+--- 6523,6529 ----
+ * [ or ] followed by a middle mouse click: put selected text with
+ * indent adjustment. Any other button just does as usual.
+ */
+! else if (cap->nchar >= K_RIGHTRELEASE && cap->nchar <= K_LEFTMOUSE)
+ {
+ (void)do_mouse(cap->oap, cap->nchar,
+ (cap->cmdchar == ']') ? FORWARD : BACKWARD,
+*** ../vim-7.2.411/src/version.c 2010-03-23 18:22:40.000000000 +0100
+--- src/version.c 2010-05-07 15:51:35.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 412,
+ /**/
+
+--
+I have a drinking problem -- I don't have a drink!
+
+ /// 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/source/ap/vim/patches/7.2.413 b/source/ap/vim/patches/7.2.413
new file mode 100644
index 00000000..40a65925
--- /dev/null
+++ b/source/ap/vim/patches/7.2.413
@@ -0,0 +1,452 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.413
+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.2.413
+Problem: Large file support is incorrect.
+Solution: Add AC_SYS_LARGEFILE to configure. (James Vega)
+Files: src/configure.in, src/config.h.in, src/auto/configure
+
+
+*** ../vim-7.2.412/src/configure.in 2010-03-10 16:27:27.000000000 +0100
+--- src/configure.in 2010-04-01 15:06:04.000000000 +0200
+***************
+*** 2669,2674 ****
+--- 2669,2678 ----
+ usleep utime utimes)
+ AC_FUNC_FSEEKO
+
++ dnl define _LARGE_FILES, _FILE_OFFSET_BITS and _LARGEFILE_SOURCE when
++ dnl appropriate, so that off_t is 64 bits when needed.
++ AC_SYS_LARGEFILE
++
+ dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
+ AC_MSG_CHECKING(for st_blksize)
+ AC_TRY_COMPILE(
+*** ../vim-7.2.412/src/config.h.in 2010-02-24 14:46:58.000000000 +0100
+--- src/config.h.in 2010-04-01 15:10:49.000000000 +0200
+***************
+*** 196,201 ****
+--- 196,206 ----
+ #undef HAVE_UTIME
+ #undef HAVE_BIND_TEXTDOMAIN_CODESET
+
++ /* Define, if needed, for accessing large files. */
++ #undef _LARGE_FILES
++ #undef _FILE_OFFSET_BITS
++ #undef _LARGEFILE_SOURCE
++
+ /* Define if you do not have utime(), but do have the utimes() function. */
+ #undef HAVE_UTIMES
+
+*** ../vim-7.2.412/src/auto/configure 2010-03-10 16:27:27.000000000 +0100
+--- src/auto/configure 2010-05-07 16:01:08.000000000 +0200
+***************
+*** 821,826 ****
+--- 821,827 ----
+ with_gnome
+ with_motif_lib
+ with_tlib
++ enable_largefile
+ enable_acl
+ enable_gpm
+ enable_sysmouse
+***************
+*** 1485,1490 ****
+--- 1486,1492 ----
+ --enable-nextaw-check If auto-select GUI, check for neXtaw default=yes
+ --enable-carbon-check If auto-select GUI, check for Carbon default=yes
+ --disable-gtktest Do not try to compile and run a test GTK program
++ --disable-largefile omit support for large files
+ --disable-acl Don't check for ACL support.
+ --disable-gpm Don't use gpm (Linux mouse daemon).
+ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).
+***************
+*** 14345,14350 ****
+--- 14347,14709 ----
+ fi
+
+
++ # Check whether --enable-largefile was given.
++ if test "${enable_largefile+set}" = set; then
++ enableval=$enable_largefile;
++ fi
++
++ if test "$enable_largefile" != no; then
++
++ { $as_echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
++ $as_echo_n "checking for special C compiler options needed for large files... " >&6; }
++ if test "${ac_cv_sys_largefile_CC+set}" = set; then
++ $as_echo_n "(cached) " >&6
++ else
++ ac_cv_sys_largefile_CC=no
++ if test "$GCC" != yes; then
++ ac_save_CC=$CC
++ while :; do
++ # IRIX 6.2 and later do not support large files by default,
++ # so use the C compiler's -n32 option if that helps.
++ cat >conftest.$ac_ext <<_ACEOF
++ /* confdefs.h. */
++ _ACEOF
++ cat confdefs.h >>conftest.$ac_ext
++ cat >>conftest.$ac_ext <<_ACEOF
++ /* end confdefs.h. */
++ #include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++ We can't simply define LARGE_OFF_T to be 9223372036854775807,
++ since some C++ compilers masquerading as C compilers
++ incorrectly reject 9223372036854775807. */
++ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
++ && LARGE_OFF_T % 2147483647 == 1)
++ ? 1 : -1];
++ int
++ main ()
++ {
++
++ ;
++ return 0;
++ }
++ _ACEOF
++ rm -f conftest.$ac_objext
++ if { (ac_try="$ac_compile"
++ case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++ esac
++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++ $as_echo "$ac_try_echo") >&5
++ (eval "$ac_compile") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest.$ac_objext; then
++ break
++ else
++ $as_echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++
++
++ fi
++
++ rm -f core conftest.err conftest.$ac_objext
++ CC="$CC -n32"
++ rm -f conftest.$ac_objext
++ if { (ac_try="$ac_compile"
++ case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++ esac
++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++ $as_echo "$ac_try_echo") >&5
++ (eval "$ac_compile") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest.$ac_objext; then
++ ac_cv_sys_largefile_CC=' -n32'; break
++ else
++ $as_echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++
++
++ fi
++
++ rm -f core conftest.err conftest.$ac_objext
++ break
++ done
++ CC=$ac_save_CC
++ rm -f conftest.$ac_ext
++ fi
++ fi
++ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
++ $as_echo "$ac_cv_sys_largefile_CC" >&6; }
++ if test "$ac_cv_sys_largefile_CC" != no; then
++ CC=$CC$ac_cv_sys_largefile_CC
++ fi
++
++ { $as_echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
++ $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
++ if test "${ac_cv_sys_file_offset_bits+set}" = set; then
++ $as_echo_n "(cached) " >&6
++ else
++ while :; do
++ cat >conftest.$ac_ext <<_ACEOF
++ /* confdefs.h. */
++ _ACEOF
++ cat confdefs.h >>conftest.$ac_ext
++ cat >>conftest.$ac_ext <<_ACEOF
++ /* end confdefs.h. */
++ #include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++ We can't simply define LARGE_OFF_T to be 9223372036854775807,
++ since some C++ compilers masquerading as C compilers
++ incorrectly reject 9223372036854775807. */
++ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
++ && LARGE_OFF_T % 2147483647 == 1)
++ ? 1 : -1];
++ int
++ main ()
++ {
++
++ ;
++ return 0;
++ }
++ _ACEOF
++ rm -f conftest.$ac_objext
++ if { (ac_try="$ac_compile"
++ case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++ esac
++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++ $as_echo "$ac_try_echo") >&5
++ (eval "$ac_compile") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest.$ac_objext; then
++ ac_cv_sys_file_offset_bits=no; break
++ else
++ $as_echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++
++
++ fi
++
++ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++ cat >conftest.$ac_ext <<_ACEOF
++ /* confdefs.h. */
++ _ACEOF
++ cat confdefs.h >>conftest.$ac_ext
++ cat >>conftest.$ac_ext <<_ACEOF
++ /* end confdefs.h. */
++ #define _FILE_OFFSET_BITS 64
++ #include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++ We can't simply define LARGE_OFF_T to be 9223372036854775807,
++ since some C++ compilers masquerading as C compilers
++ incorrectly reject 9223372036854775807. */
++ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
++ && LARGE_OFF_T % 2147483647 == 1)
++ ? 1 : -1];
++ int
++ main ()
++ {
++
++ ;
++ return 0;
++ }
++ _ACEOF
++ rm -f conftest.$ac_objext
++ if { (ac_try="$ac_compile"
++ case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++ esac
++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++ $as_echo "$ac_try_echo") >&5
++ (eval "$ac_compile") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest.$ac_objext; then
++ ac_cv_sys_file_offset_bits=64; break
++ else
++ $as_echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++
++
++ fi
++
++ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++ ac_cv_sys_file_offset_bits=unknown
++ break
++ done
++ fi
++ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
++ $as_echo "$ac_cv_sys_file_offset_bits" >&6; }
++ case $ac_cv_sys_file_offset_bits in #(
++ no | unknown) ;;
++ *)
++ cat >>confdefs.h <<_ACEOF
++ #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
++ _ACEOF
++ ;;
++ esac
++ rm -rf conftest*
++ if test $ac_cv_sys_file_offset_bits = unknown; then
++ { $as_echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
++ $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
++ if test "${ac_cv_sys_large_files+set}" = set; then
++ $as_echo_n "(cached) " >&6
++ else
++ while :; do
++ cat >conftest.$ac_ext <<_ACEOF
++ /* confdefs.h. */
++ _ACEOF
++ cat confdefs.h >>conftest.$ac_ext
++ cat >>conftest.$ac_ext <<_ACEOF
++ /* end confdefs.h. */
++ #include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++ We can't simply define LARGE_OFF_T to be 9223372036854775807,
++ since some C++ compilers masquerading as C compilers
++ incorrectly reject 9223372036854775807. */
++ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
++ && LARGE_OFF_T % 2147483647 == 1)
++ ? 1 : -1];
++ int
++ main ()
++ {
++
++ ;
++ return 0;
++ }
++ _ACEOF
++ rm -f conftest.$ac_objext
++ if { (ac_try="$ac_compile"
++ case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++ esac
++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++ $as_echo "$ac_try_echo") >&5
++ (eval "$ac_compile") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest.$ac_objext; then
++ ac_cv_sys_large_files=no; break
++ else
++ $as_echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++
++
++ fi
++
++ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++ cat >conftest.$ac_ext <<_ACEOF
++ /* confdefs.h. */
++ _ACEOF
++ cat confdefs.h >>conftest.$ac_ext
++ cat >>conftest.$ac_ext <<_ACEOF
++ /* end confdefs.h. */
++ #define _LARGE_FILES 1
++ #include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++ We can't simply define LARGE_OFF_T to be 9223372036854775807,
++ since some C++ compilers masquerading as C compilers
++ incorrectly reject 9223372036854775807. */
++ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
++ && LARGE_OFF_T % 2147483647 == 1)
++ ? 1 : -1];
++ int
++ main ()
++ {
++
++ ;
++ return 0;
++ }
++ _ACEOF
++ rm -f conftest.$ac_objext
++ if { (ac_try="$ac_compile"
++ case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++ esac
++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++ $as_echo "$ac_try_echo") >&5
++ (eval "$ac_compile") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest.$ac_objext; then
++ ac_cv_sys_large_files=1; break
++ else
++ $as_echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++
++
++ fi
++
++ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++ ac_cv_sys_large_files=unknown
++ break
++ done
++ fi
++ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
++ $as_echo "$ac_cv_sys_large_files" >&6; }
++ case $ac_cv_sys_large_files in #(
++ no | unknown) ;;
++ *)
++ cat >>confdefs.h <<_ACEOF
++ #define _LARGE_FILES $ac_cv_sys_large_files
++ _ACEOF
++ ;;
++ esac
++ rm -rf conftest*
++ fi
++ fi
++
++
+ { $as_echo "$as_me:$LINENO: checking for st_blksize" >&5
+ $as_echo_n "checking for st_blksize... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+*** ../vim-7.2.412/src/version.c 2010-05-07 15:51:59.000000000 +0200
+--- src/version.c 2010-05-07 16:04:29.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 413,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+2. Page yourself over the intercom. Don't disguise your voice.
+
+ /// 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/source/ap/vim/patches/7.2.414 b/source/ap/vim/patches/7.2.414
new file mode 100644
index 00000000..9d5666c3
--- /dev/null
+++ b/source/ap/vim/patches/7.2.414
@@ -0,0 +1,93 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.414
+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.2.414
+Problem: CTRK-K <space> <space> does not produce 0xa0 as expected. (Tony
+ Mechelynck)
+Solution: Remove the Unicode range 0xe000 - 0xefff from digraphs, these are
+ not valid characters.
+Files: src/digraph.c
+
+
+*** ../vim-7.2.413/src/digraph.c 2009-05-13 14:12:14.000000000 +0200
+--- src/digraph.c 2010-04-11 17:28:22.000000000 +0200
+***************
+*** 1933,1977 ****
+ {'7', 'c', 0x3226},
+ {'8', 'c', 0x3227},
+ {'9', 'c', 0x3228},
+! {' ', ' ', 0xe000},
+! {'/', 'c', 0xe001},
+! {'U', 'A', 0xe002},
+! {'U', 'B', 0xe003},
+! {'"', '3', 0xe004},
+! {'"', '1', 0xe005},
+! {'"', '!', 0xe006},
+! {'"', '\'', 0xe007},
+! {'"', '>', 0xe008},
+! {'"', '?', 0xe009},
+! {'"', '-', 0xe00a},
+! {'"', '(', 0xe00b},
+! {'"', '.', 0xe00c},
+! {'"', ':', 0xe00d},
+! {'"', '0', 0xe00e},
+! {'"', '"', 0xe00f},
+! {'"', '<', 0xe010},
+! {'"', ',', 0xe011},
+! {'"', ';', 0xe012},
+! {'"', '_', 0xe013},
+! {'"', '=', 0xe014},
+! {'"', '/', 0xe015},
+! {'"', 'i', 0xe016},
+! {'"', 'd', 0xe017},
+! {'"', 'p', 0xe018},
+! {';', ';', 0xe019},
+! {',', ',', 0xe01a},
+! {'b', '3', 0xe01b},
+! {'C', 'i', 0xe01c},
+! {'f', '(', 0xe01d},
+! {'e', 'd', 0xe01e},
+! {'a', 'm', 0xe01f},
+! {'p', 'm', 0xe020},
+! {'F', 'l', 0xe023},
+! {'G', 'F', 0xe024},
+! {'>', 'V', 0xe025},
+! {'!', '*', 0xe026},
+! {'?', '*', 0xe027},
+! {'J', '<', 0xe028},
+ {'f', 'f', 0xfb00},
+ {'f', 'i', 0xfb01},
+ {'f', 'l', 0xfb02},
+--- 1933,1940 ----
+ {'7', 'c', 0x3226},
+ {'8', 'c', 0x3227},
+ {'9', 'c', 0x3228},
+! /* code points 0xe000 - 0xefff excluded, they have no assigned
+! * characters, only used in proposals. */
+ {'f', 'f', 0xfb00},
+ {'f', 'i', 0xfb01},
+ {'f', 'l', 0xfb02},
+*** ../vim-7.2.413/src/version.c 2010-05-07 16:05:48.000000000 +0200
+--- src/version.c 2010-05-07 16:17:26.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 414,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+4. Put your garbage can on your desk and label it "in".
+
+ /// 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/source/ap/vim/patches/7.2.415 b/source/ap/vim/patches/7.2.415
new file mode 100644
index 00000000..87e7c0b5
--- /dev/null
+++ b/source/ap/vim/patches/7.2.415
@@ -0,0 +1,69 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.415
+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.2.415
+Problem: Win32: Can't open a remote file when starting Vim.
+Solution: Don't invoke cygwin_conv_path() for URLs. (Tomoya Adachi)
+Files: src/main.c
+
+
+*** ../vim-7.2.414/src/main.c 2009-12-16 18:27:29.000000000 +0100
+--- src/main.c 2010-04-12 20:57:44.000000000 +0200
+***************
+*** 1477,1483 ****
+ ++initstr;
+ }
+
+! /* Avoid using evim mode for "editor". */
+ if (TOLOWER_ASC(initstr[0]) == 'e'
+ && (TOLOWER_ASC(initstr[1]) == 'v'
+ || TOLOWER_ASC(initstr[1]) == 'g'))
+--- 1477,1483 ----
+ ++initstr;
+ }
+
+! /* Use evim mode for "evim" and "egvim", not for "editor". */
+ if (TOLOWER_ASC(initstr[0]) == 'e'
+ && (TOLOWER_ASC(initstr[1]) == 'v'
+ || TOLOWER_ASC(initstr[1]) == 'g'))
+***************
+*** 2262,2268 ****
+ * Look for evidence of non-Cygwin paths before we bother.
+ * This is only for when using the Unix files.
+ */
+! if (strpbrk(p, "\\:") != NULL)
+ {
+ char posix_path[PATH_MAX];
+
+--- 2262,2268 ----
+ * Look for evidence of non-Cygwin paths before we bother.
+ * This is only for when using the Unix files.
+ */
+! if (strpbrk(p, "\\:") != NULL && !path_with_url(p))
+ {
+ char posix_path[PATH_MAX];
+
+*** ../vim-7.2.414/src/version.c 2010-05-07 16:18:08.000000000 +0200
+--- src/version.c 2010-05-07 16:34:22.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 415,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+6. In the memo field of all your checks, write "for sexual favors".
+
+ /// 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/source/ap/vim/patches/7.2.416 b/source/ap/vim/patches/7.2.416
new file mode 100644
index 00000000..67bb8080
--- /dev/null
+++ b/source/ap/vim/patches/7.2.416
@@ -0,0 +1,69 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.416
+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.2.416
+Problem: Logtalk.dict is not installed.
+Solution: Add it to the install target. (Markus Heidelberg)
+Files: src/Makefile
+
+
+*** ../vim-7.2.415/src/Makefile 2010-05-07 16:35:12.000000000 +0200
+--- src/Makefile 2010-04-06 20:19:48.000000000 +0200
+***************
+*** 30,36 ****
+ # want to disable using X11 libraries. This speeds up starting Vim,
+ # but the window title will not be set and the X11 selection can not
+ # used.
+! # - Uncomment the line "CONF_OPT_XSMP = --without-xsmp" if you have the
+ # X11 Session Management Protocol (XSMP) library (libSM) but do not
+ # want to use it.
+ # This can speedup Vim startup but Vim loses the ability to catch the
+--- 30,36 ----
+ # want to disable using X11 libraries. This speeds up starting Vim,
+ # but the window title will not be set and the X11 selection can not
+ # used.
+! # - Uncomment the line "CONF_OPT_XSMP = --disable-xsmp" if you have the
+ # X11 Session Management Protocol (XSMP) library (libSM) but do not
+ # want to use it.
+ # This can speedup Vim startup but Vim loses the ability to catch the
+***************
+*** 1882,1888 ****
+ cd $(PLUGSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_PLUG)
+ cd $(DEST_PLUG); chmod $(HELPMOD) *.vim README.txt
+ # install the ftplugin files
+! cd $(FTPLUGSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_FTP)
+ cd $(DEST_FTP); chmod $(HELPMOD) *.vim README.txt
+ # install the compiler files
+ cd $(COMPSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_COMP)
+--- 1882,1888 ----
+ cd $(PLUGSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_PLUG)
+ cd $(DEST_PLUG); chmod $(HELPMOD) *.vim README.txt
+ # install the ftplugin files
+! cd $(FTPLUGSOURCE); $(INSTALL_DATA) *.vim README.txt logtalk.dict $(DEST_FTP)
+ cd $(DEST_FTP); chmod $(HELPMOD) *.vim README.txt
+ # install the compiler files
+ cd $(COMPSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_COMP)
+*** ../vim-7.2.415/src/version.c 2010-05-07 16:34:59.000000000 +0200
+--- src/version.c 2010-05-07 16:53:17.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 416,
+ /**/
+
+--
+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 ///