summaryrefslogtreecommitdiff
path: root/source/ap
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap')
-rwxr-xr-xsource/ap/alsa-utils/alsa-utils.SlackBuild50
-rw-r--r--source/ap/alsa-utils/alsa-utils.alsaconf.diff50
-rwxr-xr-xsource/ap/ash/ash.SlackBuild18
-rw-r--r--source/ap/ash/patches/ash-hetio.patch2
-rwxr-xr-xsource/ap/cdrtools/cdrtools.SlackBuild79
-rw-r--r--source/ap/cdrtools/doinst.sh7
-rwxr-xr-xsource/ap/cupsddk/cupsddk.SlackBuild87
-rw-r--r--source/ap/cupsddk/slack-desc19
-rw-r--r--source/ap/diffutils/diffutils-sdiff-no-waitpid.patch9
-rwxr-xr-xsource/ap/diffutils/diffutils.SlackBuild53
-rwxr-xr-xsource/ap/foomatic-filters/foomatic-filters.SlackBuild28
-rw-r--r--source/ap/ghostscript/ghostscript-pdf2dsc.patch12
-rwxr-xr-xsource/ap/ghostscript/ghostscript.SlackBuild29
-rwxr-xr-xsource/ap/gphoto2/gphoto2.SlackBuild42
-rwxr-xr-xsource/ap/gutenprint/gutenprint.SlackBuild31
-rwxr-xr-xsource/ap/hplip/hplip.SlackBuild36
-rw-r--r--source/ap/hplip/hplip.prevent_segfault.diff23
-rwxr-xr-xsource/ap/jed/jed.SlackBuild27
-rw-r--r--source/ap/jed/jed.mouse.diff17
-rw-r--r--source/ap/jed/jed.multibyte.diff11
-rw-r--r--source/ap/linuxdoc-tools/ChangeLog.txt27
-rwxr-xr-xsource/ap/linuxdoc-tools/arm/build4
-rwxr-xr-xsource/ap/linuxdoc-tools/linuxdoc-tools.build146
-rwxr-xr-xsource/ap/linuxdoc-tools/postbuildfixes.sh8
-rw-r--r--source/ap/linuxdoc-tools/sources/docbook_4.5-4.diff1589
-rw-r--r--source/ap/linuxdoc-tools/sources/gtkdoc-1.13-fixref.patch69
-rw-r--r--source/ap/linuxdoc-tools/sources/linuxdoc-tools.lib64.diff10
-rwxr-xr-xsource/ap/linuxdoc-tools/sources/source.download50
-rwxr-xr-xsource/ap/linuxdoc-tools/trackbuild.linuxdoc-tools15
-rwxr-xr-xsource/ap/lm_sensors/lm_sensors.SlackBuild17
-rwxr-xr-xsource/ap/lsof/lsof.SlackBuild28
-rwxr-xr-xsource/ap/man-pages/man-pages.SlackBuild9
-rwxr-xr-xsource/ap/mc/mc.SlackBuild21
-rwxr-xr-xsource/ap/mpg123/mpg123.SlackBuild157
-rw-r--r--source/ap/mpg123/slack-desc19
-rwxr-xr-xsource/ap/mpg321/mpg321.SlackBuild77
-rw-r--r--source/ap/mpg321/slack-desc19
-rw-r--r--source/ap/mysql/mirror-url1
-rwxr-xr-xsource/ap/mysql/mysql-embedded.build26
-rwxr-xr-xsource/ap/mysql/mysql.SlackBuild85
-rwxr-xr-xsource/ap/nano/nano.SlackBuild29
-rw-r--r--source/ap/pm-utils/README.SLACKWARE42
-rwxr-xr-xsource/ap/pm-utils/pm-utils.SlackBuild65
-rwxr-xr-xsource/ap/powertop/powertop.SlackBuild101
-rw-r--r--source/ap/powertop/slack-desc19
-rwxr-xr-xsource/ap/radeontool/radeontool.SlackBuild39
-rw-r--r--source/ap/radeontool/radeontool.c.diff12
-rw-r--r--source/ap/radeontool/radeontool.info8
-rwxr-xr-xsource/ap/rpm/rpm.SlackBuild17
-rwxr-xr-xsource/ap/sox/sox.SlackBuild26
-rwxr-xr-xsource/ap/sqlite/sqlite.SlackBuild47
-rwxr-xr-xsource/ap/sudo/sudo.SlackBuild45
-rw-r--r--source/ap/sysstat/doinst.sh34
-rw-r--r--source/ap/sysstat/slack-desc10
-rwxr-xr-xsource/ap/sysstat/sysstat.SlackBuild111
-rw-r--r--source/ap/sysstat/sysstat.etc.sysstat.diff46
-rw-r--r--source/ap/sysstat/sysstat.prefix.usr.diff42
-rw-r--r--source/ap/sysstat/sysstat.var.run.diff28
-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
-rwxr-xr-xsource/ap/vim/vim-gvim.SlackBuild31
-rw-r--r--source/ap/vim/vim-runtime-syntax-20100510.diff7471
-rwxr-xr-xsource/ap/vim/vim.SlackBuild31
-rwxr-xr-xsource/ap/xfsdump/xfsdump.SlackBuild27
-rw-r--r--source/ap/xfsdump/xfsdump.destdir.diff42
234 files changed, 30761 insertions, 2435 deletions
diff --git a/source/ap/alsa-utils/alsa-utils.SlackBuild b/source/ap/alsa-utils/alsa-utils.SlackBuild
index c918ba52..14398aab 100755
--- a/source/ap/alsa-utils/alsa-utils.SlackBuild
+++ b/source/ap/alsa-utils/alsa-utils.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,33 +21,47 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=1.0.18
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-$(echo alsa-utils-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-alsa-utils
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-O2 -march=armv4 -mtune=xscale"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "armel" ]; then
+ SLKCFLAGS="-O2 -march=armv4t"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-alsa-utils
-
rm -rf $PKG
mkdir -p $TMP $PKG
-
cd $TMP
rm -rf alsa-utils-$VERSION
-tar xvf $CWD/alsa-utils-$VERSION.tar.bz2 || exit 1
+tar xvf $CWD/alsa-utils-$VERSION.tar.?z* || exit 1
cd alsa-utils-$VERSION || exit 1
zcat $CWD/alsa-utils.alsaconf.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit
@@ -92,12 +106,20 @@ fi
mkdir -p $PKG/usr/doc/alsa-utils-$VERSION
cp -a \
- COPYING ChangeLog INSTALL TODO \
+ COPYING INSTALL TODO \
seq/aconnect/README.aconnect \
seq/aseqnet/README.aseqnet \
$PKG/usr/doc/alsa-utils-$VERSION
cp -a alsamixer/README $PKG/usr/doc/alsa-utils-$VERSION/README.alsamixer
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/ap/alsa-utils/alsa-utils.alsaconf.diff b/source/ap/alsa-utils/alsa-utils.alsaconf.diff
index c20bf72e..92e05b83 100644
--- a/source/ap/alsa-utils/alsa-utils.alsaconf.diff
+++ b/source/ap/alsa-utils/alsa-utils.alsaconf.diff
@@ -1,27 +1,6 @@
---- ./alsaconf/alsaconf.in.orig 2007-05-31 03:07:21.000000000 -0500
-+++ ./alsaconf/alsaconf.in 2007-06-05 19:01:03.000000000 -0500
-@@ -50,7 +50,9 @@
- }
-
- # Check for GNU/Linux distributions
--if [ -f /etc/SuSE-release ]; then
-+if [ -f /etc/slackware-version ]; then
-+ distribution="slackware"
-+elif [ -f /etc/SuSE-release ]; then
- distribution="suse"
- suse_version=$(grep 'VERSION = ' /etc/SuSE-release | sed -e s/'VERSION = '//)
- elif [ -f /etc/UnitedLinux-release ]; then
-@@ -490,6 +492,8 @@
-
- if [ "$distribution" = "debian" ]; then
- rcalsasound=/etc/init.d/alsa
-+elif [ -x /etc/rc.d/rc.alsa ]; then
-+ rcalsasound=/etc/rc.d/rc.alsa
- elif [ -x /etc/init.d/alsasound ]; then
- rcalsasound=/etc/init.d/alsasound
- elif [ -x /usr/sbin/rcalsasound ]; then
---- ./alsaconf/alsaconf.8.orig 2007-05-31 03:07:21.000000000 -0500
-+++ ./alsaconf/alsaconf.8 2007-06-05 19:01:03.000000000 -0500
+diff -Nur alsa-utils-1.0.21.orig/alsaconf/alsaconf.8 alsa-utils-1.0.21/alsaconf/alsaconf.8
+--- alsa-utils-1.0.21.orig/alsaconf/alsaconf.8 2009-08-31 10:13:36.000000000 -0500
++++ alsa-utils-1.0.21/alsaconf/alsaconf.8 2009-11-11 23:45:11.943377777 -0600
@@ -16,8 +16,6 @@
This manual page documents briefly the
.B alsaconf
@@ -52,3 +31,26 @@
-This manual page was written by Jordi Mallach <jordi@debian.org>,
-for the Debian system (but may be used by others).
+This manual page was written by Jordi Mallach <jordi@debian.org>.
+diff -Nur alsa-utils-1.0.21.orig/alsaconf/alsaconf.in alsa-utils-1.0.21/alsaconf/alsaconf.in
+--- alsa-utils-1.0.21.orig/alsaconf/alsaconf.in 2009-08-31 10:13:36.000000000 -0500
++++ alsa-utils-1.0.21/alsaconf/alsaconf.in 2009-11-11 23:44:21.081360666 -0600
+@@ -50,7 +50,9 @@
+ }
+
+ # Check for GNU/Linux distributions
+-if [ -f /etc/SuSE-release ]; then
++if [ -f /etc/slackware-version ]; then
++ distribution="slackware"
++elif [ -f /etc/SuSE-release ]; then
+ distribution="suse"
+ suse_version=$(grep 'VERSION = ' /etc/SuSE-release | sed -e s/'VERSION = '//)
+ elif [ -f /etc/UnitedLinux-release ]; then
+@@ -305,7 +307,7 @@
+ elif [ "$kernel" = "new" ]; then
+ cfgfile="/etc/modprobe.conf"
+ if [ -d /etc/modprobe.d ]; then
+- cfgout="/etc/modprobe.d/50-sound.conf"
++ cfgout="/etc/modprobe.d/sound.conf"
+ cfgoldout="/etc/modprobe.d/sound"
+ if [ ! -f $cfgout ]; then
+ modver=$(modprobe -V | sed -e's/^module-init-tools version //')
diff --git a/source/ap/ash/ash.SlackBuild b/source/ap/ash/ash.SlackBuild
index deaad12d..f83113c2 100755
--- a/source/ap/ash/ash.SlackBuild
+++ b/source/ap/ash/ash.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,8 +21,17 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VERSION=0.4.0
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
CWD=$(pwd)
TMP=${TMP:-/tmp}
@@ -32,7 +41,8 @@ rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-tar xzvf $CWD/ash-$VERSION.tar.gz
+rm -rf ash-$VERSION
+tar xzvf $CWD/ash-$VERSION.tar.gz || exit 1
cd ash-$VERSION
chown -R root:root .
( cd $CWD/patches
diff --git a/source/ap/ash/patches/ash-hetio.patch b/source/ap/ash/patches/ash-hetio.patch
index c416cde5..a6800897 100644
--- a/source/ap/ash/patches/ash-hetio.patch
+++ b/source/ap/ash/patches/ash-hetio.patch
@@ -177,7 +177,7 @@ diff -urN ash-0.4.0/hetio.c ash-0.4.0-/hetio.c
+ out1str("\b \b");
+ --*cursor;
+ memmove(parsenextc + *cursor, parsenextc + *cursor + 1,
-+ BUFSIZ - *cursor + 1);
++ BUFSIZ - (*cursor + 1));
+
+ for (j = *cursor; j < (BUFSIZ - 1); j++) {
+ if (!*(parsenextc + j))
diff --git a/source/ap/cdrtools/cdrtools.SlackBuild b/source/ap/cdrtools/cdrtools.SlackBuild
index 49aa08c0..b72c8a13 100755
--- a/source/ap/cdrtools/cdrtools.SlackBuild
+++ b/source/ap/cdrtools/cdrtools.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,12 +21,21 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=2.01.01a57
+VERSION=${VERSION:-$(echo cdrtools-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
+BUILD=${BUILD:-1}
+
ZISOFSTOOLS=1.0.8
-ARCH=${ARCH:-x86_64}
NUMJOBS=${NUMJOBS:-" -j7 "}
-BUILD=${BUILD:-3}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
CWD=$(pwd)
TMP=${TMP:-/tmp}
@@ -46,21 +55,29 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-INS_BASE=/usr make -e $NUMJOBS || exit 1
+make -e $NUMJOBS INS_BASE=/usr || exit 1
# Without this second run, cdda2wav is skipped...
-INS_BASE=/usr make -e || exit 1
-INS_BASE=$PKG/usr make -e install || exit 1
+make -e INS_BASE=/usr || exit 1
+make -e install INS_BASE=/usr DEST_DIR=$PKG || exit 1
+
+# I don't know why this couldn't be "/etc/cdrtools" or something, but since
+# getty uses it already I'm not going to argue the point.
+mv $PKG/etc/default/cdrecord $PKG/etc/default/cdrecord.new
+
+# These don't need to be in the package, IMHO.
+rm -rf $PKG/usr/include \
+ $PKG/usr/lib/profiled \
+ $PKG/usr/lib/*.a \
+ $PKG/usr/man/man5
+
+# Next big hole? ;) (don't ship rscsi)
+rm -r $PKG/usr/sbin
+rm -f $PKG/etc/default/rscsi $PKG/usr/man/man1/rscsi.1
# Remove dupes:
rm -rf $PKG/usr/share/doc
rmdir $PKG/usr/share
-# I don't know why this couldn't be "/etc/cdrtools" or something, but since
-# getty uses it already I'm not going to argue the point.
-mkdir -p $PKG/etc/default
-cat cdrecord/cdrecord.dfl > $PKG/etc/default/cdrecord.new
-cat rscsi/rscsi.dfl > $PKG/etc/default/rscsi.new
-
mkdir -p $PKG/usr/doc/cdrtools-$VERSION
cp -a \
ABOUT AN-* BUILD CDDL* COMPILE CONTRIBUTING COPYING* Changelog \
@@ -68,7 +85,6 @@ cp -a \
$PKG/usr/doc/cdrtools-$VERSION
chown -R root:root $PKG/usr/doc/cdrtools-$VERSION/*
find $PKG/usr/doc/cdrtools-$VERSION -type f -exec chmod 644 {} \;
-
(
cd mkisofs
mkdir -p $PKG/usr/doc/cdrtools-$VERSION/mkisofs
@@ -87,23 +103,11 @@ find $PKG/usr/doc/cdrtools-$VERSION -type f -exec chmod 644 {} \;
chown root:root $PKG/usr/doc/cdrtools-$VERSION/cdda2wav/*
chmod 644 $PKG/usr/doc/cdrtools-$VERSION/cdda2wav/*
)
-
-# These don't need to be in the package, IMHO.
-rm -rf $PKG/usr/include $PKG/usr/man/man5 $PKG/usr/man/man1/cdda2ogg.1 $PKG/usr/lib/profiled $PKG/usr/lib/*.a
-
-# Fix permissions:
-cd $PKG
-find . -type d -exec chmod 755 {} \;
-chown root:root -R $PKG
-find $PKG/usr/man -type f -exec chmod 644 {} \;
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-chmod 755 $PKG/usr/bin/*
-
-( cd $PKG/usr/bin ; ln -sf mkisofs mkhybrid )
-
-# Next big hole? ;)
-rm -r $PKG/usr/sbin
-rm -f $PKG/usr/doc/cdrtools-$VERSION/README.rscsi
+# The entire ChangeLog is excessive for most users:
+cat $PKG/usr/doc/cdrtools-$VERSION/Changelog | head -n 1000 > $PKG/usr/doc/cdrtools-$VERSION/CL
+mv $PKG/usr/doc/cdrtools-$VERSION/CL $PKG/usr/doc/cdrtools-$VERSION/Changelog
+cat $PKG/usr/doc/cdrtools-$VERSION/mkisofs/ChangeLog | head -n 1000 > $PKG/usr/doc/cdrtools-$VERSION/mkisofs/CL
+mv $PKG/usr/doc/cdrtools-$VERSION/mkisofs/CL $PKG/usr/doc/cdrtools-$VERSION/mkisofs/ChangeLog
mkdir -p $PKG/install
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
@@ -120,16 +124,25 @@ find . \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-./configure --prefix=/usr
+CFLAGS="-O2" ./configure --prefix=/usr --build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
cat mkzftree > $PKG/usr/bin/mkzftree
-chmod 755 $PKG/usr/bin/mkzftree
+chmod 0755 $PKG/usr/bin/mkzftree
cat mkzftree.1 | gzip -9c > $PKG/usr/man/man1/mkzftree.1.gz
mkdir -p $PKG/usr/doc/zisofs-tools-$ZISOFSTOOLS
cp -a \
CHANGES COPYING INSTALL README zisofs.magic \
$PKG/usr/doc/zisofs-tools-$ZISOFSTOOLS
+# Fix permissions:
+cd $PKG
+find . -type d -exec chmod 755 {} \;
+chown root:root -R $PKG
+find $PKG/usr/man -type f -exec chmod 644 {} \;
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+find $PKG/usr/doc/cdrtools-$VERSION -type f -exec chmod 0644 {} \;
+chmod 0755 $PKG/usr/bin/*
+
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
diff --git a/source/ap/cdrtools/doinst.sh b/source/ap/cdrtools/doinst.sh
index 78d62faa..8d3d5627 100644
--- a/source/ap/cdrtools/doinst.sh
+++ b/source/ap/cdrtools/doinst.sh
@@ -1,14 +1,13 @@
-#!/bin/sh
config() {
NEW="$1"
- OLD="`dirname $NEW`/`basename $NEW .new`"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
- elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
config etc/default/cdrecord.new
-config etc/default/rscsi.new
+
diff --git a/source/ap/cupsddk/cupsddk.SlackBuild b/source/ap/cupsddk/cupsddk.SlackBuild
deleted file mode 100755
index 48157ffc..00000000
--- a/source/ap/cupsddk/cupsddk.SlackBuild
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/bin/sh
-
-# Copyright 2009 Robby Workman, Northport, AL, USA
-# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# Slackware build script for cupsddk
-
-
-VERSION=${VERSION:-1.2.3}
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-1}
-
-NUMJOBS=${NUMJOBS:--j6}
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-cupsddk
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-fi
-
-rm -rf $PKG
-mkdir -p $TMP $PKG
-cd $TMP || exit 1
-rm -rf cupsddk-$VERSION
-tar xvf $CWD/cupsddk-${VERSION}-source.tar.bz2 || exit 1
-cd cupsddk-$VERSION || exit 1
-chown -R root:root .
-find . \
- \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --with-docdir=/usr/doc/cupsddk-$VERSION \
- --build=$ARCH-slackware-linux
-
-make $NUMJOBS || make || exit 1
-make install BUILDROOT=$PKG || exit 1
-
-find $PKG | xargs file | grep -e "executable" -e "shared object" \
- | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-
-cp -a \
- *.txt doc/*.html doc/images \
- $PKG/usr/doc/cupsddk-$VERSION
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $TMP/cupsddk-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/source/ap/cupsddk/slack-desc b/source/ap/cupsddk/slack-desc
deleted file mode 100644
index e4afd352..00000000
--- a/source/ap/cupsddk/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|' on
-# the right side marks the last column you can put a character in. You must make
-# exactly 11 lines for the formatting to be correct. It's also customary to
-# leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-cupsddk: cupsddk (CUPS Driver Development Kit)
-cupsddk:
-cupsddk: The CUPS Driver Development Kit (DDK) provides a suite of standard
-cupsddk: drivers, a PPD file compiler, and other utilities that can be used
-cupsddk: to develop printer drivers for CUPS and other printing environments.
-cupsddk: CUPS provides a portable printing layer for UNIX®-based operatin
-cupsddk: systems. The CUPS DDK provides the means for mass-producing PPD
-cupsddk: files and drivers/filters for CUPS-based printer drivers.
-cupsddk:
-cupsddk:
-cupsddk:
diff --git a/source/ap/diffutils/diffutils-sdiff-no-waitpid.patch b/source/ap/diffutils/diffutils-sdiff-no-waitpid.patch
index a41b1164..c8eefb44 100644
--- a/source/ap/diffutils/diffutils-sdiff-no-waitpid.patch
+++ b/source/ap/diffutils/diffutils-sdiff-no-waitpid.patch
@@ -1,6 +1,7 @@
---- diffutils-2.8.4/src/sdiff.c.orig 2002-06-17 00:55:42.000000000 -0500
-+++ diffutils-2.8.4/src/sdiff.c 2003-01-08 03:04:02.000000000 -0600
-@@ -692,7 +692,7 @@
+diff -Nur diffutils-2.9.orig/src/sdiff.c diffutils-2.9.new/src/sdiff.c
+--- diffutils-2.9.orig/src/sdiff.c 2010-02-11 03:39:17.000000000 -0600
++++ diffutils-2.9.new/src/sdiff.c 2010-02-14 02:28:19.077953690 -0600
+@@ -715,7 +715,7 @@
ck_fclose (out);
{
@@ -9,7 +10,7 @@
int werrno = 0;
#if ! (HAVE_WORKING_FORK || HAVE_WORKING_VFORK)
-@@ -701,11 +701,6 @@
+@@ -724,11 +724,6 @@
werrno = errno;
#else
ck_fclose (diffout);
diff --git a/source/ap/diffutils/diffutils.SlackBuild b/source/ap/diffutils/diffutils.SlackBuild
index 50ac985d..f338b71d 100755
--- a/source/ap/diffutils/diffutils.SlackBuild
+++ b/source/ap/diffutils/diffutils.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005-2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,13 +21,23 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=2.8.1
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-3}
+PKGNAM=diffutils
+VERSION=3.0
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-diffutils
+PKG=$TMP/package-${PKGNAM}
if [ "$ARCH" = "i386" ]; then
SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
@@ -37,15 +47,17 @@ elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
+else
+ SLKCFLAGS="-O2"
fi
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -rf diffutils-$VERSION
-tar xzvf $CWD/diffutils-$VERSION.tar.gz
-cd diffutils-$VERSION
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz
+cd $PKGNAM-$VERSION
chown -R root:root .
find . \
@@ -61,17 +73,17 @@ touch man/sdiff.1
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
--program-prefix="" \
--program-suffix="" \
- $ARCH-slackware-linux
+ --build=$ARCH-slackware-linux
make || exit 1
make install DESTDIR=$PKG || exit 1
-( cd $PKG
- find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
- find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-)
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
# Compress and if needed symlink the man pages:
if [ -d $PKG/usr/man ]; then
@@ -96,15 +108,22 @@ if [ -d $PKG/usr/info ]; then
)
fi
-mkdir -p $PKG/usr/doc/diffutils-$VERSION
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
- ABOUT-NLS AUTHORS COPYING INSTALLME NEWS README THANKS \
- $PKG/usr/doc/diffutils-$VERSION
+ AUTHORS COPYING NEWS README THANKS TODO \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cd $PKG
-makepkg -l y -c n $TMP/diffutils-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/ap/foomatic-filters/foomatic-filters.SlackBuild b/source/ap/foomatic-filters/foomatic-filters.SlackBuild
index fbf94903..9454f675 100755
--- a/source/ap/foomatic-filters/foomatic-filters.SlackBuild
+++ b/source/ap/foomatic-filters/foomatic-filters.SlackBuild
@@ -22,10 +22,19 @@
PKGNAM=foomatic-filters
-VERSION=${VERSION:-4.0.2}
-ARCH=${ARCH:-x86_64}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
NUMJOBS=${NUMJOBS:-" -j7 "}
if [ "$ARCH" = "i486" ]; then
@@ -37,6 +46,9 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
CWD=$(pwd)
@@ -48,7 +60,7 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf ${PKGNAM}-${VERSION}
-tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
cd ${PKGNAM}-$VERSION || exit 1
# Make sure ownerships and permissions are sane:
@@ -111,9 +123,17 @@ fi
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
- COPYING ChangeLog README STANDARD_installation TODO USAGE \
+ COPYING README STANDARD_installation TODO USAGE \
$PKG/usr/doc/${PKGNAM}-$VERSION
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
mkdir -p $PKG/install
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/ap/ghostscript/ghostscript-pdf2dsc.patch b/source/ap/ghostscript/ghostscript-pdf2dsc.patch
new file mode 100644
index 00000000..31b6b544
--- /dev/null
+++ b/source/ap/ghostscript/ghostscript-pdf2dsc.patch
@@ -0,0 +1,12 @@
+diff -up ghostscript-8.71/lib/pdf2dsc.ps.pdf2dsc ghostscript-8.71/lib/pdf2dsc.ps
+--- ghostscript-8.71/lib/pdf2dsc.ps.pdf2dsc 2010-02-20 15:50:51.287734970 +0000
++++ ghostscript-8.71/lib/pdf2dsc.ps 2010-02-20 15:51:02.902609964 +0000
+@@ -116,7 +116,7 @@ systemdict /.setsafe known { .setsafe }
+ DSCfile PDFname write==only
+ ( \(r\) file { DELAYSAFER { .setsafe } if } stopped pop\n) puts
+ ( pdfopen begin\n) puts
+- ( copy_trailer_attrs\n) puts
++ ( process_trailer_attrs\n) puts
+ (%%EndSetup\n) puts
+
+ /.hasPageLabels false def % see "Page Labels" in the PDF Reference
diff --git a/source/ap/ghostscript/ghostscript.SlackBuild b/source/ap/ghostscript/ghostscript.SlackBuild
index b0bb34ba..a17d3428 100755
--- a/source/ap/ghostscript/ghostscript.SlackBuild
+++ b/source/ap/ghostscript/ghostscript.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,10 +22,18 @@
PKGNAM=ghostscript
-VERSION=${VERSION:-8.70}
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-1}
-
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
CWD=$(pwd)
TMP=${TMP:-/tmp}
@@ -42,6 +50,9 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
cd $TMP
@@ -49,6 +60,8 @@ rm -rf ${PKGNAM}-${VERSION}
tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
cd ${PKGNAM}-$VERSION
+zcat $CWD/ghostscript-pdf2dsc.patch.gz | patch -p1 --verbose || exit 1
+
## Regenerate ./configure:
#sh autogen.sh
@@ -74,9 +87,9 @@ find . \
--program-prefix= \
--program-suffix= \
--build=$ARCH-slackware-linux
- make
- make install
- make install DESTDIR=$PKG
+ make || exit 1
+ make install || exit 1
+ make install DESTDIR=$PKG || exit 1
) || exit 1
# Configure:
diff --git a/source/ap/gphoto2/gphoto2.SlackBuild b/source/ap/gphoto2/gphoto2.SlackBuild
index 9670b082..31575b6f 100755
--- a/source/ap/gphoto2/gphoto2.SlackBuild
+++ b/source/ap/gphoto2/gphoto2.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,15 +21,25 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-PRGNAM=gphoto2
-VERSION=2.4.5
-ARCH=${ARCH:-x86_64}
+PKGNAM=gphoto2
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
+
NUMJOBS=${NUMJOBS:--j6}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-$PRGNAM
+PKG=$TMP/package-$PKGNAM
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
@@ -37,14 +47,16 @@ elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
+else
+ SLKCFLAGS="-O2"
fi
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1
-cd $PRGNAM-$VERSION || exit 1
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
chown -R root.root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -85,14 +97,22 @@ if [ -d $PKG/usr/man ]; then
)
fi
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
AUTHORS COPYING* INSTALL NEWS README TODO \
- $PKG/usr/doc/$PRGNAM-$VERSION
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
-/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/ap/gutenprint/gutenprint.SlackBuild b/source/ap/gutenprint/gutenprint.SlackBuild
index 94fb1cbc..e713eefb 100755
--- a/source/ap/gutenprint/gutenprint.SlackBuild
+++ b/source/ap/gutenprint/gutenprint.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,9 +21,18 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=5.2.4
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-1}
+VERSION=${VERSION:-$(echo gutenprint-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -36,6 +45,9 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
CWD=$(pwd)
@@ -100,10 +112,15 @@ cp -a \
mv $PKG/usr/share/gutenprint/doc/* $PKG/usr/doc/gutenprint-${VERSION}
rmdir $PKG/usr/share/gutenprint/doc
-# If you want 1MB of ChangeLog, it's in the source...
-rm -f $PKG/usr/doc/gutenprint-${VERSION}/ChangeLog
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
-# Big... again, it's in the source if you want it.
+# Big... it's in the source if you want it.
rm -f $PKG/usr/share/gutenprint/samples/profile.jpg
rm -f $PKG/usr/doc/gutenprint-${VERSION}/*.pdf
diff --git a/source/ap/hplip/hplip.SlackBuild b/source/ap/hplip/hplip.SlackBuild
index 64462a78..fd944d22 100755
--- a/source/ap/hplip/hplip.SlackBuild
+++ b/source/ap/hplip/hplip.SlackBuild
@@ -2,8 +2,8 @@
# Slackware build script for hplip
-# Copyright 2006-2009 Robby Workman, Northport, Alabama, USA
-# Copyright 2006-2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006-2010 Robby Workman, Northport, Alabama, USA
+# Copyright 2006-2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,13 +23,22 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-PRGNAM=hplip
-VERSION=${VERSION:-3.9.4b}
-ARCH=${ARCH:-x86_64}
+PKGNAM=hplip
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
@@ -39,19 +48,22 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-$PRGNAM
+PKG=$TMP/package-$PKGNAM
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1
-cd $PRGNAM-$VERSION || exit 1
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
chown -R root:root .
find . \
@@ -60,9 +72,6 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Fix a segfault bug
-zcat $CWD/hplip.prevent_segfault.diff.gz | patch -p1 || exit 1
-
# Fix udev rules for current versions of udev
sed -i 's/SYSFS/ATTR/g' data/rules/*.rules
# Fix ownership in udev rules file
@@ -81,6 +90,7 @@ CXXFLAGS="$SLKCFLAGS" \
--with-docdir=/usr/doc/hplip-$VERSION \
--with-hpppddir=/usr/share/cups/model/HP \
--with-drvdir=/usr/share/cups/drv/hp \
+ --enable-hpijs-install \
--enable-shadow-build \
--enable-scan-build \
--enable-gui-build \
@@ -108,5 +118,5 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cd $PKG
-/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/ap/hplip/hplip.prevent_segfault.diff b/source/ap/hplip/hplip.prevent_segfault.diff
deleted file mode 100644
index 1021a2e6..00000000
--- a/source/ap/hplip/hplip.prevent_segfault.diff
+++ /dev/null
@@ -1,23 +0,0 @@
-Thanks to Tim Waugh <twaugh redhat com> for the patch
-Prevent crash when DEVICE_URI/PRINTER environment variables are not
- set (https://bugzilla.redhat.com/show_bug.cgi?id=479808 comment 6)
-
-diff -Nur hplip-3.9.4b.old/prnt/hpijs/hpijs.cpp hplip-3.9.4b.new/prnt/hpijs/hpijs.cpp
---- hplip-3.9.4b.old/prnt/hpijs/hpijs.cpp 2009-04-29 15:36:54.000000000 -0500
-+++ hplip-3.9.4b.new/prnt/hpijs/hpijs.cpp 2009-06-09 00:41:44.684172840 -0500
-@@ -218,8 +218,14 @@
- // call dbus here
- const char *user_name = " ";
- const char *title = " ";
-+ char *device_uri = getenv ("DEVICE_URI");
-+ char *printer = getenv("PRINTER");
- int job_id = 0;
-- SendDbusMessage (getenv ("DEVICE_URI"), getenv("PRINTER"),
-+ if (!device_uri)
-+ device_uri = "";
-+ if (!printer)
-+ printer = "";
-+ SendDbusMessage (device_uri, printer,
- EVENT_PRINT_FAILED_MISSING_PLUGIN,
- user_name, job_id, title);
- BUG("unable to set device=%s, err=%d\n", svalue, r);
diff --git a/source/ap/jed/jed.SlackBuild b/source/ap/jed/jed.SlackBuild
index 68c851ff..d6da7b48 100755
--- a/source/ap/jed/jed.SlackBuild
+++ b/source/ap/jed/jed.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,11 +20,21 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=0.99-18
-PKGVER=0.99_18
-ARCH=${ARCH:-x86_64}
+VERSION=0.99-19
+PKGVER=0.99_19
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
NUMJOBS=${NUMJOBS:-" -j7 "}
-BUILD=${BUILD:-3}
if [ "$ARCH" = "i386" ]; then
SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
@@ -34,6 +44,8 @@ elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
+else
+ SLKCFLAGS="-O2"
fi
CWD=$(pwd)
@@ -45,8 +57,6 @@ cd $TMP
rm -rf jed-$VERSION
tar xvf $CWD/jed-$VERSION.tar.bz2 || exit 1
cd jed-$VERSION
-zcat $CWD/jed.mouse.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
-zcat $CWD/jed.multibyte.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
chown -R root:root .
find . \
@@ -59,13 +69,14 @@ JED_ROOT=/usr/share/jed \
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
+ --mandir=/usr/man \
--with-slang=/usr \
--build=$ARCH-slackware-linux
make clean
make all rgrep $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-cp src/objs/rgrep $PKG/usr/bin
+cp src/*objs/rgrep $PKG/usr/bin
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
diff --git a/source/ap/jed/jed.mouse.diff b/source/ap/jed/jed.mouse.diff
deleted file mode 100644
index 4ff60716..00000000
--- a/source/ap/jed/jed.mouse.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- ./src/Makefile.in.orig 2006-02-15 21:09:50.000000000 -0600
-+++ ./src/Makefile.in 2006-06-25 23:10:19.000000000 -0500
-@@ -52,10 +52,10 @@
- #---------------------------------------------------------------------------
- # 1. Linux GPM Mouse support
- # Uncomment next FOUR lines for GPM mouse support
--#MOUSEFLAGS = -DUSE_GPM_MOUSE
--#MOUSELIB = -lgpm
--#GPMMOUSEO = gpmmouse.o
--#OBJGPMMOUSEO = $(OBJDIR)/$(GPMMOUSEO)
-+MOUSEFLAGS = -DUSE_GPM_MOUSE
-+MOUSELIB = -lgpm
-+GPMMOUSEO = gpmmouse.o
-+OBJGPMMOUSEO = $(OBJDIR)/$(GPMMOUSEO)
-
-
- # 2. XFree86 XRENDERFONT (Anti-aliased font) support for XJED
diff --git a/source/ap/jed/jed.multibyte.diff b/source/ap/jed/jed.multibyte.diff
deleted file mode 100644
index 266fece7..00000000
--- a/source/ap/jed/jed.multibyte.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./src/misc.c.orig 2006-03-04 01:55:05.000000000 -0600
-+++ ./src/misc.c 2006-06-25 23:14:32.000000000 -0500
-@@ -741,7 +741,7 @@
-
- void jed_ungetkey_wchar (SLwchar_Type wc)
- {
-- SLuchar_Type *b, buf[SLUTF8_MAX_MBLEN];
-+ SLuchar_Type *b, buf[JED_MAX_MULTIBYTE_SIZE];
-
- if (NULL == (b = jed_wchar_to_multibyte (wc, buf)))
- return;
diff --git a/source/ap/linuxdoc-tools/ChangeLog.txt b/source/ap/linuxdoc-tools/ChangeLog.txt
index 86f1eb7f..ef6c0a2c 100644
--- a/source/ap/linuxdoc-tools/ChangeLog.txt
+++ b/source/ap/linuxdoc-tools/ChangeLog.txt
@@ -1,3 +1,30 @@
+Wed Feb 10 10:02:16 GMT 2010
+ Stuart Winter <mozes@slackware.com>
+ linuxdoc-tools 0.9.66, build 2.
+ * Applied an upstream patch to gtk-doc-1.13, fixing problems
+ with gtkdoc-fixxref.
+ * Updated build script to work with the new rpm2tgz which now
+ packages all src RPM contents into the root of the tar archive
+ rather than a sub directory.
+
+Tue Jan 12 20:42:57 GMT 2010
+ Stuart Winter <mozes@slackware.com>
+ linuxdoc-tools 0.9.66, build 1.
+ * Upgraded to linuxdoc-tools 0.9.66
+ * Upgraded to gnome-doc-utils 0.19.1
+ * Upgraded to gtk-doc 1.13
+ * Upgraded to AsciiDoc 8.5.2.
+ * Upgraded to docbook-xsl 1.75.2.
+ * Upgraded to docbook-xsl-doc 1.75.2.
+
+Tue Nov 10 18:28:49 GMT 2009
+ Stuart Winter <mozes@slackware.com>
+ linuxdoc-tools-0.9.65, build 1.
+ * Upgraded to linuxdoc-tools 0.9.65
+ * Upgraded to gnome-doc-utils-0.18.0
+ * Upgraded to xmlto-0.0.23
+ * Upgraded to asciidoc-8.5.1
+
Sun Aug 2 19:07:43 BST 2009
Stuart Winter <mozes@slackware.com>
linuxdoc-tools-0.9.56, build 5.
diff --git a/source/ap/linuxdoc-tools/arm/build b/source/ap/linuxdoc-tools/arm/build
index d59da327..3f29e62c 100755
--- a/source/ap/linuxdoc-tools/arm/build
+++ b/source/ap/linuxdoc-tools/arm/build
@@ -9,9 +9,9 @@ source /usr/share/slackdev/buildkit.sh
# Package metadata:
export PKGNAM=linuxdoc-tools
-export VERSION=${VERSION:-0.9.56}
+export VERSION=${VERSION:-0.9.66}
export PKGARCH=${PKGARCH:-arm}
-export BUILD=${BUILD:-1}
+export BUILD=${BUILD:-2}
export PKGSERIES=${PKGSERIES:-ap}
export SLACKPACKAGE=$PKGNAM-$VERSION-$PKGARCH-$BUILD.tgz
export PKGEXT=${PKGEXT:-tgz}
diff --git a/source/ap/linuxdoc-tools/linuxdoc-tools.build b/source/ap/linuxdoc-tools/linuxdoc-tools.build
index 8d28ea33..cd95c0f0 100755
--- a/source/ap/linuxdoc-tools/linuxdoc-tools.build
+++ b/source/ap/linuxdoc-tools/linuxdoc-tools.build
@@ -14,22 +14,22 @@
###############################################################################
# Version of LDT (which is also the .t?z package version)
-LINUXDOCTOOLSVER=0.9.56
+LINUXDOCTOOLSVER=$PKGVERSION
# Bundled package versions:
SGMLDTD3VER=3.1
SGMLDTD4VER=4.5
XMLDTDVER=4.5
-XSLSTYLESHEETSVER=1.75.1
+XSLSTYLESHEETSVER=1.75.2
DSSSLSTYLESHEETSVER=1.79
SGMLCOMMONVER=0.6.3
OPENJADEVER=1.3.3-pre1
OPENSPVER=1.5.2
-GNOMEDOCUTILSVER=0.17.2
-GTKDOCVER=1.11
+GNOMEDOCUTILSVER=0.19.1
+GTKDOCVER=1.13
SGMLSPLVER=1.03ii
-XMLTOVER=0.0.22
-ASCIIDOCVER=8.4.5
+XMLTOVER=0.0.23
+ASCIIDOCVER=8.5.2
DOCBOOKUTILSVER=0.6.14
# Determine the general CFLAGS for the known architectures:
@@ -61,8 +61,8 @@ esac
# Extract source:
cd $TMP
-tar xvf $CWD/sources/asciidoc-$ASCIIDOCVER.tar.gz || exit 1
-cd asciidoc-$ASCIIDOCVER
+tar xvf $CWD/sources/asciidoc-$ASCIIDOCVER.tar.*z*
+cd asciidoc-$ASCIIDOCVER || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -92,12 +92,12 @@ cp -fav \
# Extract source. We're using a source RPM since it contains a number of
# patches that we need:
cd $TMP
+mkdir sgml-common && cd sgml-common
rpm2tgz $CWD/sources/sgml-common-${SGMLCOMMONVER}*.src.rpm
-tar xvf sgml-common-*src.tgz
-cd sgml-common-$SGMLCOMMONVER-* || exit 1
+tar xvf sgml-common-*src.tgz || exit 1
# The real source archive is stored inside the source RPM, you see:
-tar xvf sgml-common-$SGMLCOMMONVER.tgz || exit 1
-cd sgml-common-$SGMLCOMMONVER
+tar xvf sgml-common-$SGMLCOMMONVER.tgz
+cd sgml-common-$SGMLCOMMONVER || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -138,7 +138,7 @@ install-catalog --add /etc/sgml/sgml-docbook.cat \
# Copy docs:
mkdir -vpm755 /usr/doc/sgml-common-$SGMLCOMMONVER
cp -fav \
- COPYING AUTHORS INSTALL NEWS README ChangeLog ../sgml-common-CHANGES \
+ COPYING AUTHORS INSTALL NEWS README ChangeLog \
/usr/doc/sgml-common-$SGMLCOMMONVER
####################### Install docbooks ############################
@@ -151,12 +151,7 @@ cd sgml-dtd
# but they version number the archive with the latest version.
tar xvf $CWD/sources/docbook_*orig*.tar.gz
cd docbook* || exit 1
-zcat $CWD/sources/docbook_*.diff.gz | patch -p1 || exit 1
-# Don't apply the patches because whilst I know that the problem we have
-# on Slackware does not exist on Debian, I want to keep the Slackware
-# build in line with Linux From Scratch, since their documentation is
-# excellent.
-#for i in debian/patches/*.dpatch ; do patch --verbose -p1 < $i ; done
+chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
@@ -169,6 +164,7 @@ find . \
###############
( cd docbook-$SGMLDTD3VER
+ pwd
# Remove the ENT definitions from the catalog file:
sed -i -e '/ISO 8879/d' docbook.cat
@@ -213,6 +209,7 @@ EOF
( cd docbook-$SGMLDTD4VER
+ pwd
# Remove the ENT definitions from the catalog file:
sed -i -e '/ISO 8879/d' -e '/gml/d' docbook.cat
@@ -246,7 +243,7 @@ EOF
# Copy docs:
mkdir -vpm755 /usr/doc/sgml-dtd4-$SGMLDTD4VER
cp -fav \
- ChangeLog README \
+ README \
/usr/doc/sgml-dtd4-$SGMLDTD4VER/
)
@@ -255,11 +252,11 @@ EOF
# Extract source:
cd $TMP
+mkdir opensp && cd opensp
rpm2tgz $CWD/sources/opensp-${OPENSPVER}*.src.rpm
tar xvf opensp*src.tgz
-cd opensp-${OPENSPVER}* || exit 1
-tar xvf OpenSP-$OPENSPVER.tar.gz || exit 1
-cd OpenSP-$OPENSPVER
+tar xvf OpenSP-$OPENSPVER.tar.gz
+cd OpenSP-$OPENSPVER || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -275,7 +272,8 @@ patch --verbose -p1 < ../opensp-sigsegv.patch || exit 1
# Configure without optimisation. OpenSP & OpenJade
# are sensitive to optimisations, resulting in segfaults,
-# particularly on the ARM platform.
+# particularly on the ARM platform. Apparently -O1 will work but
+# let's just leave it as is.
#
# This is configured not to build the documentation. If anybody really needs
# it, let me know and I'll adjust the build script - it's just a PITA to
@@ -306,24 +304,31 @@ make install DESTDIR=/ || exit 1
# Rename sx to sgml2xml & create symlinks:
mv -f /usr/bin/osx /usr/bin/osgml2xml
( cd /usr/bin ; ln -vfs osgml2xml osx )
-mv -f /usr/man/man1/osx.1 /usr/man/man1/osgml2xml.1
-( cd /usr/man/man1 ; ln -vfs osgml2xml.1 osx.1 )
# Create symlinks to binaries:
( cd /usr/bin
for file in nsgmls sgmlnorm spam spent sgml2xml ; do
- rm -f $file
+ rm -fv $file
ln -vfs o$file $file
done
)
# Fix man pages:
-( cd /usr/man/man1
- for file in nsgmls sgmlnorm spam spent sgml2xml ; do
- rm -f ${file}.1*
- ln -vfs o${file}.1 ${file}.1
- done
-)
+# Sorry, but OpenSP needs xmlto installed to create its man pages and documentation.
+# Due to build dependency order, we build xmlto later on. I did try and move xmlto earlier
+# in the build but didn't get the build order correct. If anybody REALLY misses this documentation,
+# email mozes@slackware.com and I'll have another go at adjusting the build order.
+#
+# Building man pages has been disabled with ./configure --disable-doc-build.
+#
+#( cd /usr/man/man1
+# mv -fv osx.1 osgml2xml.1
+# ln -vfs osgml2xml.1 osx.1
+# for file in nsgmls sgmlnorm spam spent sgml2xml ; do
+# rm -f ${file}.1*
+# ln -vfs o${file}.1 ${file}.1
+# done
+#)
# Rename docs directory:
mv -fv /usr/doc/OpenSP /usr/doc/OpenSP-$OPENSPVER
@@ -334,7 +339,7 @@ mv -fv /usr/doc/OpenSP /usr/doc/OpenSP-$OPENSPVER
# Extract source:
cd $TMP
-tar xvf $CWD/sources/openjade-${OPENJADEVER}.tar.gz
+tar xvf $CWD/sources/openjade-${OPENJADEVER}.tar.*z*
cd openjade-${OPENJADEVER} || exit 1
chown -R root:root .
find . \
@@ -394,13 +399,9 @@ echo "SYSTEM \"http://www.oasis-open.org/docbook/xml/${XMLDTDVER}/docbookx.dtd\"
mkdir -vpm755 /usr/doc/openjade-$OPENJADEVER
cp -fav \
COPYING NEWS README VERSION \
- doc/* dsssl/README.jadetex pubtext jadedoc unicode \
+ doc/* dsssl/README.jadetex pubtext jadedoc \
/usr/doc/openjade-$OPENJADEVER
-# The original package has this file, but it has most of the world's
-# documentation too; we'll leave it in for the time being but I don't like it.
-#rm -f /usr/doc/openjade-$OPENJADEVER/doc/Makefile
-
####################### Build dsssl-stylesheets ####################
# Extract source:
@@ -409,7 +410,7 @@ mkdir docbook-dsssl-$DSSSLSTYLESHEETSVER
cd docbook-dsssl-$DSSSLSTYLESHEETSVER
tar xvf $CWD/sources/docbook-dsssl-$DSSSLSTYLESHEETSVER.tar.bz2 || exit 1
tar xvf $CWD/sources/docbook-dsssl-doc-$DSSSLSTYLESHEETSVER.tar.bz2 || exit 1
-cd docbook-dsssl-$DSSSLSTYLESHEETSVER
+cd docbook-dsssl-$DSSSLSTYLESHEETSVER || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -448,11 +449,11 @@ cp -fav \
# Extract source:
cd $TMP
+mkdir docbook-utils && cd docbook-utils
rpm2tgz $CWD/sources/docbook-utils-${DOCBOOKUTILSVER}*.src.rpm
tar xvf docbook-utils-*src.tgz
-cd docbook-utils-${DOCBOOKUTILSVER}* || exit 1
-tar xvf docbook-utils-$DOCBOOKUTILSVER.tar.gz || exit 1
-cd docbook-utils-$DOCBOOKUTILSVER
+tar xvf docbook-utils-$DOCBOOKUTILSVER.tar.gz
+cd docbook-utils-$DOCBOOKUTILSVER || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -462,6 +463,8 @@ find . \
# Apply patches:
for i in \
+ docbook-utils-rtfmanpage.patch \
+ docbook-utils-sgmlinclude.patch \
docbook-utils-2ndspaces.patch \
docbook-utils-grepnocolors.patch \
docbook-utils-spaces.patch \
@@ -657,17 +660,15 @@ cp -favv \
# Extract source:
cd $TMP
-mkdir docbook-xsl-$XSLSTYLESHEETSVER
-cd docbook-xsl-$XSLSTYLESHEETSVER
+mkdir docbook-style-xsl && cd docbook-style-xsl
rpm2tgz $CWD/sources/docbook-style-xsl-${XSLSTYLESHEETSVER}*.src.rpm
tar xvf docbook-style-xsl*.tgz
-cd docbook-style-xsl-$XSLSTYLESHEETSVER* || exit 1
tar xvf docbook-xsl-$XSLSTYLESHEETSVER.tar.bz2
# This unpacks atop of the main tree:
tar xvf docbook-xsl-doc-$XSLSTYLESHEETSVER.tar.bz2
# Enter unpacked sources:
-cd docbook-xsl-$XSLSTYLESHEETSVER
+cd docbook-xsl-$XSLSTYLESHEETSVER || exit 1
chown -R root:root .
find . \
@@ -730,8 +731,8 @@ cp -fav doc/* README* RELEASE-NOTES* NEWS* \
# Extract source:
cd $TMP
-tar xvf $CWD/sources/xmlto-$XMLTOVER.tar.bz2 || exit 1
-cd xmlto-$XMLTOVER
+tar xvf $CWD/sources/xmlto-$XMLTOVER.tar.*z*
+cd xmlto-$XMLTOVER || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -796,11 +797,10 @@ cp -fav \
# Extract source:
cd $TMP
-#rpm2tgz $CWD/sources/linuxdoc-tools-${LINUXDOCTOOLSVER}*.src.rpm
-#tar xvf linuxdoc-tools-$LINUXDOCTOOLSVER*.tgz
-#cd linuxdoc-tools-$LINUXDOCTOOLSVER* || exit 1
-#tar xvf linuxdoc-tools_$LINUXDOCTOOLSVER.tar.gz
-tar xvf $CWD/sources/linuxdoc-tools_$LINUXDOCTOOLSVER*.tar.gz
+mkdir linuxdoc-tools && cd linuxdoc-tools
+rpm2tgz $CWD/sources/linuxdoc-tools-${LINUXDOCTOOLSVER}*.src.rpm
+tar xvf linuxdoc-tools*.src.tgz
+tar xvf linuxdoc-tools_$LINUXDOCTOOLSVER.tar.gz
cd linuxdoc-tools-$LINUXDOCTOOLSVER || exit 1
chown -R root:root .
@@ -810,14 +810,18 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# Remove Tex from the $PATH so that we don't build formats of the linuxdoc-tools
+# guide which don't work with tetex-3. These do work with texlive, but Slackware doesn't
+# ship that, and just how many alternate versions of the documentation do we need anyway? :-)
+OPATH=$PATH
+export PATH=$( echo $PATH | sed -e 's?:/usr/share/texmf/bin??g' -e 's?/usr/share/texmf/bin:??g' )
+
# Apply patches (these are included in the source rpm):
-#for i in \
-# linuxdoc-tools-0.9.13-letter.patch \
-# linuxdoc-tools-0.9.20-lib64.patch ; do
-# patch --verbose -p1 < ../$i
-#done || exit 1
-# Add lib64 in Perl's path on a 64bit machine:
-patch --verbose -p1 < $CWD/sources/linuxdoc-tools.lib64.diff || exit 1
+for i in \
+ linuxdoc-tools-0.9.13-letter.patch \
+ linuxdoc-tools-0.9.20-lib64.patch ; do
+ patch --verbose -p1 < ../$i
+done || exit 1
# Find out what our Vendor perl directory is:
eval $(perl '-V:installvendorlib')
@@ -835,9 +839,9 @@ mkdir -p $PKG/$installvendorlib
# --with-texdir=/usr/share/texmf/tex/latex/ \
# Adjust doc dir location:
-sed -i 's?share/doc/linuxdoc-tools?doc/linuxdoc-tools-'"$$LINUXDOCTOOLSVER"'?g' Makefile
+sed -i 's?share/doc/linuxdoc-tools?doc/linuxdoc-tools-'"$LINUXDOCTOOLSVER"'?g' Makefile
-#( cd entity-map && autoconf && ./configure )
+( cd entity-map && autoconf && ./configure --prefix=/usr )
# Build serial. This does build in parallel but
# I find linuxdoc-tools to be fragile between versions:
@@ -857,8 +861,8 @@ make install \
# Install shell scripts for sgml2{txt,latex,info}
for i in txt latex info; do \
- install -vpm755 debian/addition/sgml2$$i \
- /usr/bin/sgml2$$i; \
+ install -vpm755 debian/addition/sgml2$i \
+ /usr/bin/sgml2$i; \
done
# Install info page:
@@ -869,12 +873,15 @@ cat debian/linuxdoc-tools.info-base doc/guide.info > /usr/info/linuxdoc-sgml.inf
# 'linuxdoc-tools', let's put our changelog into here:
install -vpm644 $CWD/ChangeLog.txt /usr/doc/linuxdoc-tools-$LINUXDOCTOOLSVER/Slackware-ChangeLog.txt
+# Restore $PATH:
+export PATH=$OPATH
+
####################### Build gnome-doc-utils #######################
# Extract source:
cd $TMP
-tar xvf $CWD/sources/gnome-doc-utils-$GNOMEDOCUTILSVER.tar.bz2
-cd gnome-doc-utils-*
+tar xvf $CWD/sources/gnome-doc-utils-$GNOMEDOCUTILSVER.tar.*z*
+cd gnome-doc-utils-* || exit 1
chown -R root:root .
find . \
@@ -892,6 +899,7 @@ CFLAGS="$SLKCFLAGS" \
--localstatedir=/var \
--mandir=/usr/man \
--disable-scrollkeeper \
+ --enable-build-utils \
--build=$ARCH-slackware-linux$HOSTTARGET || exit 1
# No parallel build here because it doesn't work:
@@ -919,6 +927,9 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# Apply an upstreamed fix for gtk-doc-1.13:
+bzcat $CWD/sources/gtkdoc-1.13-fixref.patch.bz2 | patch --verbose -p1 || exit 1
+
# Configure:
./configure \
--prefix=/usr \
@@ -944,3 +955,4 @@ cp -fav \
rm -rf /install
mkdir -vpm755 /install
install -vpm644 $CWD/slack-desc /install
+#EOF
diff --git a/source/ap/linuxdoc-tools/postbuildfixes.sh b/source/ap/linuxdoc-tools/postbuildfixes.sh
index b9e305ee..8781faf7 100755
--- a/source/ap/linuxdoc-tools/postbuildfixes.sh
+++ b/source/ap/linuxdoc-tools/postbuildfixes.sh
@@ -1,9 +1,9 @@
#!/bin/bash
-# Once altertrack has determined what the contents of the package
+# Once slacktrack has determined what the contents of the package
# should be, it copies them into $SLACKTRACKFAKEROOT
# From here we can make modifications to the package's contents
-# immediately prior to the invocation of makepkg: altertrack will
+# immediately prior to the invocation of makepkg: slacktrack will
# do nothing else with the contents of the package after the execution
# of this script.
@@ -20,8 +20,8 @@ fi
# Incase you had CUPS running:
rm -rf etc/cups etc/printcap
-# crond:
-rm -rf var/spool/cron
+# crond & mail (just incase you got a delivery!)
+rm -rf var/spool/{cron,mail}
rmdir var/spool
# perllocal.pod files don't belong in packages.
diff --git a/source/ap/linuxdoc-tools/sources/docbook_4.5-4.diff b/source/ap/linuxdoc-tools/sources/docbook_4.5-4.diff
deleted file mode 100644
index 1993d3f6..00000000
--- a/source/ap/linuxdoc-tools/sources/docbook_4.5-4.diff
+++ /dev/null
@@ -1,1589 +0,0 @@
---- docbook-4.5.orig/debian/patches/00list
-+++ docbook-4.5/debian/patches/00list
-@@ -0,0 +1,4 @@
-+01_remove_entity_sets_and_dcl_from_catalogs
-+10_fix_101779_mention_artheader_to_articleinfo_change
-+11_fix_dbpoolx_mod_header_comment_pubid
-+12_fix_256119_and_turn_on_sgml_mode
---- docbook-4.5.orig/debian/patches/01_remove_entity_sets_and_dcl_from_catalogs.dpatch
-+++ docbook-4.5/debian/patches/01_remove_entity_sets_and_dcl_from_catalogs.dpatch
-@@ -0,0 +1,567 @@
-+#! /bin/sh /usr/share/dpatch/dpatch-run
-+## 01_remove_entity_sets_and_dcl_from_catalogs.dpatch by
-+## Mark Eichin <eichin@kitten.gen.ma.us> and Adam Di Carlo <aph@debian.org>.
-+##
-+## All lines beginning with `## DP:' are a description of the patch.
-+## DP: This patch:
-+## DP: * removes all SGML declarations from the catalogs, for more info, see
-+## DP: debian/README.docbook.dcl
-+## DP: * removes the ISO entity pointers since they are supplied by sgml-data
-+## DP: * removes Public-IDs for DocBook XML
-+## DP: * forces Public-ID rather than the System-ID in DTD declarations
-+## DP: (closes: <URL:http://bugs.debian.org/97330>)
-+## DP:
-+## DP: <URL:http://packages.debian.org/changelogs/pool/main/d/docbook/current/changelog#versionversion4.4-1>
-+## DP: <URL:http://packages.debian.org/changelogs/pool/main/d/docbook/current/changelog#versionversion4.1-5>
-+## DP: <URL:http://packages.debian.org/changelogs/pool/main/d/docbook/current/changelog#versionversion4.1-2>
-+## DP: <URL:http://packages.debian.org/changelogs/pool/main/d/docbook/current/changelog#versionversion3.0-4>
-+
-+@DPATCH@
-+diff -urNad docbook-4.5~/docbook-2.4.1/docbook.cat docbook-4.5/docbook-2.4.1/docbook.cat
-+--- docbook-4.5~/docbook-2.4.1/docbook.cat 1996-04-16 08:53:16.000000000 +0200
-++++ docbook-4.5/docbook-2.4.1/docbook.cat 2007-03-09 16:39:46.000000000 +0100
-+@@ -27,8 +27,13 @@
-+ -- ...................................................................... --
-+ -- SGML declaration associated with DocBook ............................. --
-+
-+-SGMLDECL "docbook.dcl"
-+-DTDDECL "-//Davenport//DTD DocBook V2.4.1//EN" "docbook.dcl"
-++-- disabled, see README.docbook.dcl --
-++-- SGMLDECL "docbook.dcl" --
-++-- DTDDECL "-//Davenport//DTD DocBook V2.4.1//EN" "docbook.dcl" --
-++
-++ -- ...................................................................... --
-++ -- Prefer PUBID to SYSID ................................................ --
-++OVERRIDE YES
-+
-+ -- ...................................................................... --
-+ -- DocBook driver file .................................................. --
-+@@ -43,28 +48,5 @@
-+ PUBLIC "-//Davenport//ELEMENTS DocBook Document Hierarchy V2.4.1//EN" "dbhier.mod"
-+ PUBLIC "-//Davenport//ELEMENTS DocBook Additional General Entities//EN" "dbgenent.mod"
-+
-+- -- ...................................................................... --
-+- -- ISO entity sets ...................................................... --
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "iso-dia.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" "iso-num.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" "iso-pub.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" "iso-tech.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" "iso-lat1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" "iso-lat2.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" "iso-grk1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" "iso-grk2.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" "iso-grk3.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" "iso-grk4.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" "iso-amsa.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" "iso-amsb.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" "iso-amsc.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" "iso-amsn.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" "iso-amso.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" "iso-amsr.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" "iso-box.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" "iso-cyr1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" "iso-cyr2.gml"
-+-
-+ -- End of DocBook catalog data V2.4.1 ................................... --
-+ -- ...................................................................... --
-+diff -urNad docbook-4.5~/docbook-3.0/docbook.cat docbook-4.5/docbook-3.0/docbook.cat
-+--- docbook-4.5~/docbook-3.0/docbook.cat 1996-12-10 16:35:22.000000000 +0100
-++++ docbook-4.5/docbook-3.0/docbook.cat 2007-03-09 16:44:17.000000000 +0100
-+@@ -27,7 +27,12 @@
-+ -- ...................................................................... --
-+ -- SGML declaration associated with DocBook ............................. --
-+
-+-DTDDECL "-//Davenport//DTD DocBook V3.0//EN" "docbook.dcl"
-++-- disabled, see README.docbook.dcl --
-++-- DTDDECL "-//Davenport//DTD DocBook V3.0//EN" "docbook.dcl" --
-++
-++ -- ...................................................................... --
-++ -- Prefer PUBID to SYSID ................................................ --
-++OVERRIDE YES
-+
-+ -- ...................................................................... --
-+ -- DocBook driver file .................................................. --
-+@@ -42,28 +47,5 @@
-+ PUBLIC "-//Davenport//ELEMENTS DocBook Document Hierarchy V3.0//EN" "dbhier.mod"
-+ PUBLIC "-//Davenport//ENTITIES DocBook Additional General Entities V3.0//EN" "dbgenent.mod"
-+
-+- -- ...................................................................... --
-+- -- ISO entity sets ...................................................... --
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "iso-dia.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" "iso-num.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" "iso-pub.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" "iso-tech.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" "iso-lat1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" "iso-lat2.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" "iso-grk1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" "iso-grk2.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" "iso-grk3.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" "iso-grk4.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" "iso-amsa.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" "iso-amsb.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" "iso-amsc.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" "iso-amsn.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" "iso-amso.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" "iso-amsr.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" "iso-box.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" "iso-cyr1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" "iso-cyr2.gml"
-+-
-+ -- End of catalog data for DocBook V3.0 ................................. --
-+ -- ...................................................................... --
-+diff -urNad docbook-4.5~/docbook-3.1/docbook.cat docbook-4.5/docbook-3.1/docbook.cat
-+--- docbook-4.5~/docbook-3.1/docbook.cat 1999-02-02 06:53:32.000000000 +0100
-++++ docbook-4.5/docbook-3.1/docbook.cat 2007-03-09 16:44:12.000000000 +0100
-+@@ -19,7 +19,12 @@
-+ -- ...................................................................... --
-+ -- SGML declaration associated with DocBook ............................. --
-+
-+-DTDDECL "-//OASIS//DTD DocBook V3.1//EN" "docbook.dcl"
-++-- disabled, see README.docbook.dcl --
-++-- DTDDECL "-//OASIS//DTD DocBook V3.1//EN" "docbook.dcl" --
-++
-++ -- ...................................................................... --
-++ -- Prefer PUBID to SYSID ................................................ --
-++OVERRIDE YES
-+
-+ -- ...................................................................... --
-+ -- DocBook driver file .................................................. --
-+@@ -36,28 +41,5 @@
-+ PUBLIC "-//OASIS//ENTITIES DocBook Notations V3.1//EN" "dbnotn.mod"
-+ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V3.1//EN" "dbcent.mod"
-+
-+- -- ...................................................................... --
-+- -- ISO entity sets ...................................................... --
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "iso-dia.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" "iso-num.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" "iso-pub.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" "iso-tech.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" "iso-lat1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" "iso-lat2.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" "iso-grk1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" "iso-grk2.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" "iso-grk3.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" "iso-grk4.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" "iso-amsa.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" "iso-amsb.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" "iso-amsc.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" "iso-amsn.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" "iso-amso.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" "iso-amsr.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" "iso-box.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" "iso-cyr1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" "iso-cyr2.gml"
-+-
-+ -- End of catalog data for DocBook V3.1 ................................. --
-+ -- ...................................................................... --
-+diff -urNad docbook-4.5~/docbook-4.0/docbook.cat docbook-4.5/docbook-4.0/docbook.cat
-+--- docbook-4.5~/docbook-4.0/docbook.cat 2000-05-18 21:27:28.000000000 +0200
-++++ docbook-4.5/docbook-4.0/docbook.cat 2007-03-09 16:45:08.000000000 +0100
-+@@ -19,7 +19,12 @@
-+ -- ...................................................................... --
-+ -- SGML declaration associated with DocBook ............................. --
-+
-+-DTDDECL "-//OASIS//DTD DocBook V4.0//EN" "docbook.dcl"
-++-- disabled, see README.docbook.dcl --
-++-- DTDDECL "-//OASIS//DTD DocBook V4.0//EN" "docbook.dcl" --
-++
-++ -- ...................................................................... --
-++ -- Prefer PUBID to SYSID ................................................ --
-++OVERRIDE YES
-+
-+ -- ...................................................................... --
-+ -- DocBook driver file .................................................. --
-+@@ -36,28 +41,5 @@
-+ PUBLIC "-//OASIS//ENTITIES DocBook Notations V4.0//EN" "dbnotn.mod"
-+ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.0//EN" "dbcent.mod"
-+
-+- -- ...................................................................... --
-+- -- ISO entity sets ...................................................... --
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "iso-dia.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" "iso-num.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" "iso-pub.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" "iso-tech.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" "iso-lat1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" "iso-lat2.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" "iso-grk1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" "iso-grk2.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" "iso-grk3.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" "iso-grk4.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" "iso-amsa.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" "iso-amsb.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" "iso-amsc.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" "iso-amsn.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" "iso-amso.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" "iso-amsr.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" "iso-box.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" "iso-cyr1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" "iso-cyr2.gml"
-+-
-+ -- End of catalog data for DocBook V4.0 ................................. --
-+ -- ...................................................................... --
-+diff -urNad docbook-4.5~/docbook-4.1/docbook.cat docbook-4.5/docbook-4.1/docbook.cat
-+--- docbook-4.5~/docbook-4.1/docbook.cat 2000-06-19 16:50:28.000000000 +0200
-++++ docbook-4.5/docbook-4.1/docbook.cat 2007-03-09 16:53:00.000000000 +0100
-+@@ -19,7 +19,12 @@
-+ -- ...................................................................... --
-+ -- SGML declaration associated with DocBook ............................. --
-+
-+-DTDDECL "-//OASIS//DTD DocBook V4.1//EN" "docbook.dcl"
-++-- disabled, see README.docbook.dcl --
-++-- DTDDECL "-//OASIS//DTD DocBook V4.1//EN" "docbook.dcl" --
-++
-++ -- ...................................................................... --
-++ -- Prefer PUBID to SYSID ................................................ --
-++OVERRIDE YES
-+
-+ -- ...................................................................... --
-+ -- DocBook driver file .................................................. --
-+@@ -36,28 +41,5 @@
-+ PUBLIC "-//OASIS//ENTITIES DocBook Notations V4.1//EN" "dbnotn.mod"
-+ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.1//EN" "dbcent.mod"
-+
-+- -- ...................................................................... --
-+- -- ISO entity sets ...................................................... --
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "iso-dia.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" "iso-num.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" "iso-pub.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" "iso-tech.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" "iso-lat1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" "iso-lat2.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" "iso-grk1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" "iso-grk2.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" "iso-grk3.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" "iso-grk4.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" "iso-amsa.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" "iso-amsb.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" "iso-amsc.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" "iso-amsn.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" "iso-amso.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" "iso-amsr.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" "iso-box.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" "iso-cyr1.gml"
-+-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" "iso-cyr2.gml"
-+-
-+ -- End of catalog data for DocBook V4.1 ................................. --
-+ -- ...................................................................... --
-+diff -urNad docbook-4.5~/docbook-4.2/docbook.cat docbook-4.5/docbook-4.2/docbook.cat
-+--- docbook-4.5~/docbook-4.2/docbook.cat 2002-07-17 18:14:28.000000000 +0200
-++++ docbook-4.5/docbook-4.2/docbook.cat 2007-03-09 16:42:30.000000000 +0100
-+@@ -22,9 +22,6 @@
-+ PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
-+ "docbook.dtd"
-+
-+-PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-+- "docbookx.dtd"
-+-
-+ -- ...................................................................... --
-+ -- DocBook modules ...................................................... --
-+
-+@@ -49,65 +46,5 @@
-+ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.2//EN"
-+ "dbcentx.mod"
-+
-+- -- ...................................................................... --
-+- -- ISO entity sets ...................................................... --
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN"
-+- "iso-dia.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN"
-+- "iso-num.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN"
-+- "iso-pub.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN"
-+- "iso-tech.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN"
-+- "iso-lat1.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN"
-+- "iso-lat2.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN"
-+- "iso-grk1.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN"
-+- "iso-grk2.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN"
-+- "iso-grk3.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN"
-+- "iso-grk4.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN"
-+- "iso-amsa.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN"
-+- "iso-amsb.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN"
-+- "iso-amsc.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN"
-+- "iso-amsn.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN"
-+- "iso-amso.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN"
-+- "iso-amsr.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN"
-+- "iso-box.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN"
-+- "iso-cyr1.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN"
-+- "iso-cyr2.gml"
-+-
-+ -- End of catalog data for DocBook V4.2 ................................. --
-+ -- ...................................................................... --
-+diff -urNad docbook-4.5~/docbook-4.3/docbook.cat docbook-4.5/docbook-4.3/docbook.cat
-+--- docbook-4.5~/docbook-4.3/docbook.cat 2004-03-31 13:44:16.000000000 +0200
-++++ docbook-4.5/docbook-4.3/docbook.cat 2007-03-09 16:53:47.000000000 +0100
-+@@ -22,9 +22,6 @@
-+ PUBLIC "-//OASIS//DTD DocBook V4.3//EN"
-+ "docbook.dtd"
-+
-+-PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
-+- "docbookx.dtd"
-+-
-+ -- ...................................................................... --
-+ -- DocBook modules ...................................................... --
-+
-+@@ -49,65 +46,5 @@
-+ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.3//EN"
-+ "dbcentx.mod"
-+
-+- -- ...................................................................... --
-+- -- ISO entity sets ...................................................... --
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN"
-+- "iso-dia.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN"
-+- "iso-num.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN"
-+- "iso-pub.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN"
-+- "iso-tech.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN"
-+- "iso-lat1.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN"
-+- "iso-lat2.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN"
-+- "iso-grk1.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN"
-+- "iso-grk2.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN"
-+- "iso-grk3.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN"
-+- "iso-grk4.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN"
-+- "iso-amsa.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN"
-+- "iso-amsb.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN"
-+- "iso-amsc.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN"
-+- "iso-amsn.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN"
-+- "iso-amso.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN"
-+- "iso-amsr.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN"
-+- "iso-box.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN"
-+- "iso-cyr1.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN"
-+- "iso-cyr2.gml"
-+-
-+ -- End of catalog data for DocBook V4.3 ................................. --
-+ -- ...................................................................... --
-+diff -urNad docbook-4.5~/docbook-4.4/docbook.cat docbook-4.5/docbook-4.4/docbook.cat
-+--- docbook-4.5~/docbook-4.4/docbook.cat 2005-01-27 14:59:49.000000000 +0100
-++++ docbook-4.5/docbook-4.4/docbook.cat 2007-03-09 16:54:12.000000000 +0100
-+@@ -22,9 +22,6 @@
-+ PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
-+ "docbook.dtd"
-+
-+-PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
-+- "docbookx.dtd"
-+-
-+ -- ...................................................................... --
-+ -- DocBook modules ...................................................... --
-+
-+@@ -52,65 +49,5 @@
-+ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.4//EN"
-+ "dbcentx.mod"
-+
-+- -- ...................................................................... --
-+- -- ISO entity sets ...................................................... --
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN"
-+- "iso-dia.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN"
-+- "iso-num.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN"
-+- "iso-pub.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN"
-+- "iso-tech.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN"
-+- "iso-lat1.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN"
-+- "iso-lat2.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN"
-+- "iso-grk1.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN"
-+- "iso-grk2.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN"
-+- "iso-grk3.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN"
-+- "iso-grk4.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN"
-+- "iso-amsa.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN"
-+- "iso-amsb.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN"
-+- "iso-amsc.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN"
-+- "iso-amsn.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN"
-+- "iso-amso.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN"
-+- "iso-amsr.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN"
-+- "iso-box.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN"
-+- "iso-cyr1.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN"
-+- "iso-cyr2.gml"
-+-
-+ -- End of catalog data for DocBook V4.4 ................................. --
-+ -- ...................................................................... --
-+diff -urNad docbook-4.5~/docbook-4.5/docbook.cat docbook-4.5/docbook-4.5/docbook.cat
-+--- docbook-4.5~/docbook-4.5/docbook.cat 2006-10-03 15:27:50.000000000 +0200
-++++ docbook-4.5/docbook-4.5/docbook.cat 2007-03-09 16:54:41.000000000 +0100
-+@@ -22,9 +22,6 @@
-+ PUBLIC "-//OASIS//DTD DocBook V4.5//EN"
-+ "docbook.dtd"
-+
-+-PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-+- "docbookx.dtd"
-+-
-+ -- ...................................................................... --
-+ -- DocBook modules ...................................................... --
-+
-+@@ -52,65 +49,5 @@
-+ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.5//EN"
-+ "dbcentx.mod"
-+
-+- -- ...................................................................... --
-+- -- ISO entity sets ...................................................... --
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN"
-+- "iso-dia.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN"
-+- "iso-num.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN"
-+- "iso-pub.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN"
-+- "iso-tech.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN"
-+- "iso-lat1.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN"
-+- "iso-lat2.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN"
-+- "iso-grk1.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN"
-+- "iso-grk2.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN"
-+- "iso-grk3.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN"
-+- "iso-grk4.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN"
-+- "iso-amsa.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN"
-+- "iso-amsb.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN"
-+- "iso-amsc.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN"
-+- "iso-amsn.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN"
-+- "iso-amso.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN"
-+- "iso-amsr.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN"
-+- "iso-box.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN"
-+- "iso-cyr1.gml"
-+-
-+-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN"
-+- "iso-cyr2.gml"
-+-
-+ -- End of catalog data for DocBook V4.5 ................................. --
-+ -- ...................................................................... --
---- docbook-4.5.orig/debian/patches/11_fix_dbpoolx_mod_header_comment_pubid.dpatch
-+++ docbook-4.5/debian/patches/11_fix_dbpoolx_mod_header_comment_pubid.dpatch
-@@ -0,0 +1,60 @@
-+#! /bin/sh /usr/share/dpatch/dpatch-run
-+## 11_fix_dbpoolx_mod_header_comment_pubid.dpatch by Adam Di Carlo <aph@debian.org>
-+## and Daniel Leidert (dale) <daniel.leidert@wgdd.de>.
-+##
-+## All lines beginning with `## DP:' are a description of the patch.
-+## DP: The header in dbpoolx.mod references a wrong Public-ID. This patch
-+## DP: simply fixes the header comment.
-+## DP:
-+## DP: Reported upstream:
-+## DP: <URL:http://sourceforge.net/tracker/index.php?func=detail&aid=1679712&group_id=21935&atid=384107>
-+
-+@DPATCH@
-+diff -urNad docbook-4.5~/docbook-4.2/dbpoolx.mod docbook-4.5/docbook-4.2/dbpoolx.mod
-+--- docbook-4.5~/docbook-4.2/dbpoolx.mod 2002-07-17 18:14:25.000000000 +0200
-++++ docbook-4.5/docbook-4.2/dbpoolx.mod 2007-03-10 08:31:23.000000000 +0100
-+@@ -50,7 +50,7 @@
-+ declaration that uses the public identifier shown below:
-+
-+ <!ENTITY % dbpool PUBLIC
-+- "-//OASIS//ELEMENTS DocBook XML Information Pool V4.2//EN"
-++ "-//OASIS//ELEMENTS DocBook Information Pool V4.2//EN"
-+ "dbpoolx.mod">
-+ %dbpool;
-+
-+diff -urNad docbook-4.5~/docbook-4.3/dbpoolx.mod docbook-4.5/docbook-4.3/dbpoolx.mod
-+--- docbook-4.5~/docbook-4.3/dbpoolx.mod 2004-03-31 13:43:24.000000000 +0200
-++++ docbook-4.5/docbook-4.3/dbpoolx.mod 2007-03-10 08:31:49.000000000 +0100
-+@@ -50,7 +50,7 @@
-+ declaration that uses the public identifier shown below:
-+
-+ <!ENTITY % dbpool PUBLIC
-+- "-//OASIS//ELEMENTS DocBook XML Information Pool V4.3//EN"
-++ "-//OASIS//ELEMENTS DocBook Information Pool V4.3//EN"
-+ "dbpoolx.mod">
-+ %dbpool;
-+
-+diff -urNad docbook-4.5~/docbook-4.4/dbpoolx.mod docbook-4.5/docbook-4.4/dbpoolx.mod
-+--- docbook-4.5~/docbook-4.4/dbpoolx.mod 2005-01-27 14:59:45.000000000 +0100
-++++ docbook-4.5/docbook-4.4/dbpoolx.mod 2007-03-10 08:32:00.000000000 +0100
-+@@ -50,7 +50,7 @@
-+ declaration that uses the public identifier shown below:
-+
-+ <!ENTITY % dbpool PUBLIC
-+- "-//OASIS//ELEMENTS DocBook XML Information Pool V4.4//EN"
-++ "-//OASIS//ELEMENTS DocBook Information Pool V4.4//EN"
-+ "dbpoolx.mod">
-+ %dbpool;
-+
-+diff -urNad docbook-4.5~/docbook-4.5/dbpoolx.mod docbook-4.5/docbook-4.5/dbpoolx.mod
-+--- docbook-4.5~/docbook-4.5/dbpoolx.mod 2006-10-03 15:27:50.000000000 +0200
-++++ docbook-4.5/docbook-4.5/dbpoolx.mod 2007-03-10 08:32:10.000000000 +0100
-+@@ -50,7 +50,7 @@
-+ declaration that uses the public identifier shown below:
-+
-+ <!ENTITY % dbpool PUBLIC
-+- "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN"
-++ "-//OASIS//ELEMENTS DocBook Information Pool V4.5//EN"
-+ "dbpoolx.mod">
-+ %dbpool;
-+
---- docbook-4.5.orig/debian/patches/12_fix_256119_and_turn_on_sgml_mode.dpatch
-+++ docbook-4.5/debian/patches/12_fix_256119_and_turn_on_sgml_mode.dpatch
-@@ -0,0 +1,117 @@
-+#! /bin/sh /usr/share/dpatch/dpatch-run
-+## 12_fix_256119_and_turn_on_sgml_mode.dpatch by Daniel Leidert (dale) <daniel.leidert@wgdd.de>
-+##
-+## All lines beginning with `## DP:' are a description of the patch.
-+## DP: Fixes broken element declarations by adding the tag omission characters
-+## DP: for SGML and enable SGML features
-+## DP: (closes: <URL:http://bugs.debian.org/256119>).
-+## DP:
-+## DP: <URL:http://packages.debian.org/changelogs/pool/main/d/docbook/current/changelog#versionversion4.4-1>
-+
-+@DPATCH@
-+diff -urNad docbook-4.5~/docbook-4.3/dbpoolx.mod docbook-4.5/docbook-4.3/dbpoolx.mod
-+--- docbook-4.5~/docbook-4.3/dbpoolx.mod 2007-03-10 09:01:12.000000000 +0100
-++++ docbook-4.5/docbook-4.3/dbpoolx.mod 2007-03-10 09:01:13.000000000 +0100
-+@@ -633,6 +633,9 @@
-+
-+ <!-- xml:base: base URI -->
-+
-++<![%sgml.features;[
-++<!ENTITY % xml-base.attrib "">
-++]]>
-+ <!ENTITY % xml-base.attrib
-+ "xml:base CDATA #IMPLIED">
-+
-+diff -urNad docbook-4.5~/docbook-4.3/docbookx.dtd docbook-4.5/docbook-4.3/docbookx.dtd
-+--- docbook-4.5~/docbook-4.3/docbookx.dtd 2004-03-31 13:43:20.000000000 +0200
-++++ docbook-4.5/docbook-4.3/docbookx.dtd 2007-03-10 09:01:13.000000000 +0100
-+@@ -59,7 +59,7 @@
-+ <!-- ...................................................................... -->
-+ <!-- Enable SGML features ................................................. -->
-+
-+-<!ENTITY % sgml.features "IGNORE">
-++<!ENTITY % sgml.features "INCLUDE">
-+ <![%sgml.features;[
-+ <!ENTITY % xml.features "IGNORE">
-+ ]]>
-+diff -urNad docbook-4.5~/docbook-4.3/htmltblx.mod docbook-4.5/docbook-4.3/htmltblx.mod
-+--- docbook-4.5~/docbook-4.3/htmltblx.mod 2004-03-31 13:43:24.000000000 +0200
-++++ docbook-4.5/docbook-4.3/htmltblx.mod 2007-03-10 09:01:13.000000000 +0100
-+@@ -63,6 +63,9 @@
-+ >
-+
-+ <!-- Does not contain lang or dir because they are in %common.attribs -->
-++<![%sgml.features;[
-++<!ENTITY % i18n "">
-++]]>
-+ <!ENTITY % i18n
-+ "xml:lang NMTOKEN #IMPLIED"
-+ >
-+@@ -92,11 +95,11 @@
-+ "valign (top|middle|bottom|baseline) #IMPLIED"
-+ >
-+
-+-<!ELEMENT colgroup (col)*>
-+-<!ELEMENT col EMPTY>
-+-<!ELEMENT tr (th|td)+>
-+-<!ELEMENT th (%para.char.mix; | %tabentry.mix;)*>
-+-<!ELEMENT td (%para.char.mix; | %tabentry.mix;)*>
-++<!ELEMENT colgroup %ho; (col)*>
-++<!ELEMENT col %ho; EMPTY>
-++<!ELEMENT tr %ho; (th|td)+>
-++<!ELEMENT th %ho; (%para.char.mix; | %tabentry.mix;)*>
-++<!ELEMENT td %ho; (%para.char.mix; | %tabentry.mix;)*>
-+
-+ <!ATTLIST colgroup
-+ %attrs;
-+@@ -206,7 +209,7 @@
-+ summary CDATA #IMPLIED
-+ width CDATA #IMPLIED
-+ border CDATA #IMPLIED
-+- rules (none | groups | rows | cols | all) #IMPLIED
-++ rules CDATA #IMPLIED
-+ cellspacing CDATA #IMPLIED
-+ cellpadding CDATA #IMPLIED
-+ align (left|center|right) #IMPLIED
-+diff -urNad docbook-4.5~/docbook-4.4/docbookx.dtd docbook-4.5/docbook-4.4/docbookx.dtd
-+--- docbook-4.5~/docbook-4.4/docbookx.dtd 2005-01-27 14:59:45.000000000 +0100
-++++ docbook-4.5/docbook-4.4/docbookx.dtd 2007-03-10 09:01:13.000000000 +0100
-+@@ -61,7 +61,7 @@
-+ <!-- ...................................................................... -->
-+ <!-- Enable SGML features ................................................. -->
-+
-+-<!ENTITY % sgml.features "IGNORE">
-++<!ENTITY % sgml.features "INCLUDE">
-+ <![%sgml.features;[
-+ <!ENTITY % xml.features "IGNORE">
-+ ]]>
-+diff -urNad docbook-4.5~/docbook-4.4/htmltblx.mod docbook-4.5/docbook-4.4/htmltblx.mod
-+--- docbook-4.5~/docbook-4.4/htmltblx.mod 2005-01-27 14:59:45.000000000 +0100
-++++ docbook-4.5/docbook-4.4/htmltblx.mod 2007-03-10 09:01:13.000000000 +0100
-+@@ -63,6 +63,9 @@
-+ >
-+
-+ <!-- Does not contain lang or dir because they are in %common.attribs -->
-++<![%sgml.features;[
-++<!ENTITY % i18n "">
-++]]>
-+ <!ENTITY % i18n
-+ "xml:lang NMTOKEN #IMPLIED"
-+ >
-+@@ -92,11 +95,11 @@
-+ "valign (top|middle|bottom|baseline) #IMPLIED"
-+ >
-+
-+-<!ELEMENT colgroup (col)*>
-+-<!ELEMENT col EMPTY>
-+-<!ELEMENT tr (th|td)+>
-+-<!ELEMENT th (%para.char.mix; | %tabentry.mix; | table | informaltable)*>
-+-<!ELEMENT td (%para.char.mix; | %tabentry.mix; | table | informaltable)*>
-++<!ELEMENT colgroup %ho; (col)*>
-++<!ELEMENT col %ho; EMPTY>
-++<!ELEMENT tr %ho; (th|td)+>
-++<!ELEMENT th %ho; (%para.char.mix; | %tabentry.mix; | table | informaltable)*>
-++<!ELEMENT td %ho; (%para.char.mix; | %tabentry.mix; | table | informaltable)*>
-+
-+ <!ATTLIST colgroup
-+ %attrs;
---- docbook-4.5.orig/debian/patches/10_fix_101779_mention_artheader_to_articleinfo_change.dpatch
-+++ docbook-4.5/debian/patches/10_fix_101779_mention_artheader_to_articleinfo_change.dpatch
-@@ -0,0 +1,33 @@
-+#! /bin/sh /usr/share/dpatch/dpatch-run
-+## 10_fix_101779_mention_artheader_to_articleinfo_change.dpatch by
-+## Adam Di Carlo <aph@debian.org>.
-+##
-+## All lines beginning with `## DP:' are a description of the patch.
-+## DP: The removal of ArtHeader in 4.0 is not documented in ChangeLog. This
-+## DP: patch fixes it (closes: <URL:http://bugs.debian.org/bug=101779>).
-+## DP:
-+## DP: <URL:http://packages.debian.org/changelogs/pool/main/d/docbook/current/changelog#versionversion4.1-5>
-+
-+@DPATCH@
-+diff -urNad docbook-4.5~/ChangeLog.upstream docbook-4.5/ChangeLog.upstream
-+--- docbook-4.5~/ChangeLog.upstream 2007-03-09 14:36:17.000000000 +0100
-++++ docbook-4.5/ChangeLog.upstream 2007-03-14 19:35:01.000000000 +0100
-+@@ -475,6 +475,7 @@
-+ - Added synopsis markup for modern programming languages (e.g, object
-+ oriented languages like Java, C++, and IDL)
-+ - Renamed DocInfo to PrefaceInfo, ChapterInfo, AppendixInfo, etc.
-++ (and ArtHeader to ArticleInfo)
-+
-+ Other:
-+
-+diff -urNad docbook-4.5~/docbook-4.1/40chg.txt docbook-4.5/docbook-4.1/40chg.txt
-+--- docbook-4.5~/docbook-4.1/40chg.txt 2000-06-19 16:50:28.000000000 +0200
-++++ docbook-4.5/docbook-4.1/40chg.txt 2007-03-14 19:34:21.000000000 +0100
-+@@ -29,6 +29,7 @@
-+ - Added synopsis markup for modern programming languages (e.g, object
-+ oriented languages like Java, C++, and IDL)
-+ - Renamed DocInfo to PrefaceInfo, ChapterInfo, AppendixInfo, etc.
-++ (and ArtHeader to ArticleInfo)
-+ - Comment was renamed Remark
-+ - InterfaceDefinition was removed
-+
---- docbook-4.5.orig/debian/examples/docbk.sgml
-+++ docbook-4.5/debian/examples/docbk.sgml
-@@ -0,0 +1,2 @@
-+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook//EN">
-+<book></book>
---- docbook-4.5.orig/debian/examples/docbk42.sgml
-+++ docbook-4.5/debian/examples/docbk42.sgml
-@@ -0,0 +1,2 @@
-+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.2//EN">
-+<book></book>
---- docbook-4.5.orig/debian/examples/docbk43.sgml
-+++ docbook-4.5/debian/examples/docbk43.sgml
-@@ -0,0 +1,2 @@
-+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.3//EN">
-+<book></book>
---- docbook-4.5.orig/debian/examples/docbk44.sgml
-+++ docbook-4.5/debian/examples/docbk44.sgml
-@@ -0,0 +1,2 @@
-+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.4//EN">
-+<book></book>
---- docbook-4.5.orig/debian/examples/docbk45.sgml
-+++ docbook-4.5/debian/examples/docbk45.sgml
-@@ -0,0 +1,2 @@
-+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.5//EN">
-+<book></book>
---- docbook-4.5.orig/debian/examples/Makefile
-+++ docbook-4.5/debian/examples/Makefile
-@@ -0,0 +1,22 @@
-+SRCS := $(wildcard *.sgml)
-+NSGMLS := $(shell if command -v onsgmls 2>/dev/null; then \
-+ : ;\
-+ elif command -v nsgmls 2>/dev/null; then \
-+ : ;\
-+ else \
-+ echo "false" ;\
-+ echo "warning: no nsgmls found" >&2 ;\
-+ fi)
-+
-+NSGMLSARGS=
-+
-+.PHONY: validate
-+validate: $(addsuffix .nsgmls,$(SRCS))
-+
-+%.nsgmls : %
-+ $(NSGMLS) -E1 -wall $(NSGMLSARGS) -gues $<
-+
-+.PHONY: clean
-+clean:
-+ rm -f *.html *~
-+
---- docbook-4.5.orig/debian/control
-+++ docbook-4.5/debian/control
-@@ -0,0 +1,33 @@
-+Source: docbook
-+Section: text
-+Priority: optional
-+Maintainer: Debian XML/SGML Group <debian-xml-sgml-pkgs@lists.alioth.debian.org>
-+Uploaders: Adam Di Carlo <aph@debian.org>, Daniel Leidert (dale) <daniel.leidert@wgdd.de>
-+Build-Depends: debhelper (>= 4.1.31), dpatch
-+Standards-Version: 3.7.2
-+Homepage: http://www.oasis-open.org/docbook/sgml/
-+XS-Vcs-Browser: http://svn.debian.org/wsvn/debian-xml-sgml/packages/docbook/trunk/
-+XS-Vcs-Svn: svn://svn.debian.org/svn/debian-xml-sgml/packages/docbook/
-+
-+Package: docbook
-+Architecture: all
-+Depends: sgml-data (>= 1.5.0), ${misc:Depends}
-+Conflicts: docbook-xml (<= 4.4-4)
-+Suggests: psgml, docbook-dsssl, docbook-xml, docbook-defguide
-+Description: standard SGML representation system for technical documents
-+ DocBook is an SGML document type definition (DTD) that is well-suited
-+ to books, articles, or reference documentation about technical
-+ matters, systems, or software (although it is by no means limited to
-+ these applications). It has emerged as an open and standard DTD in the
-+ software industry, and is used as the documentation system of choice
-+ for many free software projects.
-+ .
-+ This package contains the SGML DTD for DocBook, which describes
-+ the formal structure for documents following this format. If you
-+ wish to author DocBook documents using XML rather than SGML, use the
-+ 'docbook-xml' package. You will need other packages in order to edit
-+ (psgml), validate (opensp) or format (docbook-xsl, docbook-dsssl)
-+ DocBook documents.
-+ .
-+ This package includes the 2.4.1, 3.0, 3.1, 4.0, 4.1, 4.2, 4.3, 4.4 and
-+ 4.5 versions of the DocBook SGML DTD.
---- docbook-4.5.orig/debian/compat
-+++ docbook-4.5/debian/compat
-@@ -0,0 +1 @@
-+4
---- docbook-4.5.orig/debian/watch
-+++ docbook-4.5/debian/watch
-@@ -0,0 +1,4 @@
-+# See uscan(1) for format
-+
-+version=3
-+http://www.oasis-open.org/docbook/sgml/4\.([\d]+)/docbook-([\d\.]+).zip
---- docbook-4.5.orig/debian/docbook.examples
-+++ docbook-4.5/debian/docbook.examples
-@@ -0,0 +1 @@
-+debian/examples/*
---- docbook-4.5.orig/debian/changelog
-+++ docbook-4.5/debian/changelog
-@@ -0,0 +1,362 @@
-+docbook (4.5-4) unstable; urgency=low
-+
-+ * debian/control: Homepage field transition.
-+ (Suggests): Added docbook-defguide.
-+ * debian/docbook.postinst: Removed. Contains only pre-etch legacy stuff.
-+ * debian/README.Debian: Removed or replaced references to non-existing
-+ packages.
-+ * debian/watch: Added watch file.
-+
-+ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Wed, 26 Sep 2007 21:21:26 +0200
-+
-+docbook (4.5-3) unstable; urgency=medium
-+
-+ * debian/control (Maintainer, Uploaders): Set the Debian XML/SGML team as
-+ maintainer.
-+ * debian/docbook.examples: Fixed examples location: will re-add them back
-+ to the package.
-+ * debian/rules: Removed bashisms (closes: #422114). Thanks to Sebastian
-+ Dröge for the report.
-+
-+ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Thu, 03 May 2007 19:46:21 +0200
-+
-+docbook (4.5-2) unstable; urgency=low
-+
-+ * Upload to unstable.
-+
-+ [ Daniel Leidert ]
-+ * debian/rules (get-orig-source): Make the target compatible with the "Best
-+ Packaging Practices" reference.
-+
-+ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Sat, 14 Apr 2007 19:49:00 +0200
-+
-+docbook (4.5-1) experimental; urgency=low
-+
-+ * New upstream release DocBook SGML 4.5 added (closes: #413166).
-+
-+ [ Daniel Leidert ]
-+ * catalog: Made latest DocBook SGML 4.5 the default (closes: #413304).
-+ * debian/control: Added XS-Vcs-Browser and XS-Vcs-Svn fields.
-+ (Build-Depends-Indep): Fixed debhelper build dependency to be listed in
-+ Build-Depends.
-+ (Build-Depends): Added dpatch.
-+ (Uploaders): Added the Debian XML/SGML group and myself (closes: #358522).
-+ (Standards-Version): Bump to latest standards version 3.7.2.
-+ (Description): Added newly added DocBook version.
-+ * debian/copyright: Updated the packaging and copyright information.
-+ * debian/rules: Added get-orig-source and dpatch targets. Cleaned the file a
-+ lot. The installation of files was moved from the external
-+ install_docbook.sh script to dh_install calls. The .links, .install and
-+ .sgmlcatalogs debhelper files are created by debian/rules itself (atm I
-+ don't remove them in the clean target).
-+ (binary-indep): Fixed the dh_installdocs call to include Adams
-+ README.docbook.dcl, that was not included in the package.
-+ (debian/docbook.install, debian/docbook.links): Made the dbgenent.mod
-+ files config-files.
-+ * debian/patches/00list: Added. Moved all existing changes to dpatch patches
-+ and enabled them here.
-+ * debian/patches/01_remove_entity_sets_and_dcl_from_catalogs.dpatch: Added.
-+ * debian/patches/10_fix_101779_mention_artheader_to_articleinfo_change.dpatch:
-+ Added.
-+ * debian/patches/11_fix_dbpoolx_mod_header_comment_pubid.dpatch: Added.
-+ * debian/patches/12_fix_256119_and_turn_on_sgml_mode.dpatch: Added.
-+ * debian/examples/docbk*.sgml: Added two new examples for DocBook 4.5 and
-+ added the missing newlines to the existing examples.
-+ * debian/docbook.examples: Added.
-+ * debian/postinst: Renamed to docbook.postinst.
-+ * debian/README.debian: Renamed to README.Debian.
-+ * debian/install_docbook.sh: Removed. See debian/rules changes.
-+ * debian/TODO: Removed (implemented the only item).
-+ * debian/watch: Removed (empty).
-+
-+ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Sat, 10 Mar 2007 09:32:33 +0100
-+
-+docbook (4.4-1) unstable; urgency=low
-+
-+ * acknowledge NMU; closes: #301786
-+ * new upstream version; closes: #339774
-+ * docbook4{3,4}/docbookx.dtd: turn on SGML mode
-+ * docbook4{3,4}: sync with dbpoolx.mod and htmltblx.mod from
-+ docbook-xml; closes: #256119
-+ * conflict with docbook-xml prior to 4.4-5, otherwise the 4.3 and 4.4
-+ DTDs don't work
-+ * docbook4.3 catalog: don't provide "-//OASIS//DTD DocBook XML V4.3//EN"
-+ * add really basic docbook 4.2, 4.3, and 4.4 books to test with
-+
-+ -- Adam Di Carlo <aph@debian.org> Thu, 25 May 2006 19:09:05 -0400
-+
-+docbook (4.3-1.1) unstable; urgency=high
-+
-+ * Non-maintainer upload.
-+ * High-urgency upload for sarge-targetted RC bugfix.
-+ * Drop use of symlinks for finding dangling links, as we can do the
-+ same using a find command; thanks to Joey Hess for the patch.
-+ Closes: #301786.
-+
-+ -- Steve Langasek <vorlon@debian.org> Wed, 6 Apr 2005 11:24:24 -0700
-+
-+docbook (4.3-1) unstable; urgency=low
-+
-+ * new upstream version; closes: #243666
-+ * make the usual array of minor corrections in upstream catalogs
-+ * minor package description changes
-+ * postinst legacy remove is more conditional and more robust; hopefully,
-+ closes: #242833
-+ * really don't register "-//OASIS//DTD DocBook XML V4.2//EN" in
-+ catalog.xml
-+
-+ -- Adam Di Carlo <aph@debian.org> Tue, 15 Jun 2004 22:15:02 -0400
-+
-+docbook (4.2-3) unstable; urgency=low
-+
-+ * stop providing "-//OASIS//DTD DocBook XML V4.2//EN", that is in the
-+ docbook-xml package
-+ * policy compliance updated to 3.5.8, no changes needed
-+ * debhelper 4 compat mode
-+ * use new dh_installcatalog, it simplifies our maintainer scripts
-+ * remove build-depends on M4, we don't need to process maintainer
-+ scripts anymore
-+ * remove suggests on sp or jade or docbook-xml, add suggests for
-+ docbook-dsssl and docbook-doc
-+ * improve the package synopsis and description, add the Homepage
-+ * stop using sgml-catalog-check.pl from sgml-data during build, the
-+ /usr/share/sgml symlinking is no longer needed (SGML Policy update
-+ pending)
-+
-+ -- Adam Di Carlo <aph@debian.org> Tue, 25 Feb 2003 02:18:52 -0500
-+
-+docbook (4.2-2) unstable; urgency=low
-+
-+ * SGML catalogs should be named 'catalog' according to policy; retain
-+ the 'docbook.cat' as a symlink in case anyone is using that directly
-+
-+ -- Adam Di Carlo <aph@debian.org> Mon, 20 Jan 2003 04:44:52 -0500
-+
-+docbook (4.2-1) unstable; urgency=low
-+
-+ * new upstream version, closes: #155105
-+ * latest DocBook version bumped to 4.2
-+
-+ -- Adam Di Carlo <aph@debian.org> Wed, 7 Aug 2002 01:12:49 -0400
-+
-+docbook (4.1.99really4.2.cr1-2) unstable; urgency=low
-+
-+ * oops, remove ISO entity sets from docbook 4.2cr1 catalog
-+ * minor typo in generalized.cat fixed
-+
-+ -- Adam Di Carlo <aph@debian.org> Sun, 31 Mar 2002 01:40:26 -0500
-+
-+docbook (4.1.99really4.2.cr1-1) unstable; urgency=low
-+
-+ * new upstream version, pre-release of docbook 4.2;
-+ note that docbook 4.1 is still considered the latest version and
-+ latest 4.x version until 4.2 is actually released
-+ * policy checked up to 3.5.6, no changes required
-+ * disable DTDDECL in generalized.cat, I think this just slipped through
-+ * debian/rules: some housekeeping
-+
-+ -- Adam Di Carlo <aph@debian.org> Sun, 31 Mar 2002 01:28:04 -0500
-+
-+docbook (4.1-6) unstable; urgency=low
-+
-+ * another cut at the package description, hopefully it satisfies the
-+ user; closes: #112021
-+ * debian/rules: installing *everything* as documentation was not my
-+ intention in the last release, fix that
-+ * require sgml-data 1.5.3 or better, which calls an element an element
-+ when making the creepy symlinks; closes: #51043
-+
-+ -- Adam Di Carlo <aph@debian.org> Tue, 2 Oct 2001 03:06:21 -0400
-+
-+docbook (4.1-5) unstable; urgency=low
-+
-+ * all docbook catalog files now have "OVERRIDE YES", which forces the
-+ PUBID rather than the SYSID in DTD declarations; closes: #97330
-+ * correct upstream 40chg.txt to notate the change from ArtHeader to
-+ ArticleInfo; closes: #101779
-+ * README.Debian rewritten; closes: #106379
-+ * it's apparently not nice to call dh_installdocs more than once per
-+ package, so stop doing that; closes#98440
-+
-+ -- Adam Di Carlo <aph@debian.org> Tue, 2 Oct 2001 01:49:30 -0400
-+
-+docbook (4.1-4) unstable; urgency=low
-+
-+ * debian/rules: re-work fix for files in debian not preserving execute
-+ bit
-+ closes: #90627
-+
-+ -- Adam Di Carlo <aph@debian.org> Sun, 8 Apr 2001 14:37:42 -0400
-+
-+docbook (4.1-3) unstable; urgency=low
-+
-+ * debian/control: build-depends-indep includes m4
-+ * debian/rules: cope with my local CVS not preserving executable bit,
-+ making the source unbuildable
-+ closes: #90627
-+
-+ -- Adam Di Carlo <aph@debian.org> Thu, 22 Mar 2001 02:23:56 -0500
-+
-+docbook (4.1-2) unstable; urgency=low
-+
-+ * disable docbook.dcl as DTDDECL, otherwise lots of otherwise valid SGML
-+ files will break (when using DTDDECL comprehending processors like
-+ OpenJade, anyhow). For more info, see README.docbook.dcl.
-+ * include docbook 4.0
-+ closes: #68666
-+
-+ -- Adam Di Carlo <aph@debian.org> Wed, 21 Mar 2001 03:37:38 -0500
-+
-+docbook (4.1-1) unstable; urgency=low
-+
-+ * new maintainer, with permission from Mark Eichin
-+ closes: #19682, #19683, #36956, #47375, #50243, #51032, #68033
-+ closes: #87325, #88679
-+ * debian/control: require new sgml-base and sgml-data; suggest
-+ docbook-xml; fix a grammar error in the description
-+ * transition to new SGML standard system, /usr/share/sgml, and delegated
-+ catalogs
-+ closes: #90034
-+ * rework the maintainer scripts accordingly; use m4 to dynamically set
-+ some variables; move the removal work from postrm to prerm; don't
-+ bother scrubbing legacy junk in prerm, since postinst configure
-+ already ran, what's the point?
-+ * provide new catalog entries for just referring to DocBook, generalized
-+ to mean the last recommended DocBook, or the latest DocBook v4, or the
-+ latest DocBook v3.
-+ * delegated catalogs have proper DTDDECLs
-+ closes: #63046 (again)
-+ * debian/rules: stop using debstd
-+ closes: #90122
-+ * already fixed in earlier versions
-+ closes: #90125
-+ * debian/control: add Build-Depends-Indep; update standards to 3.5.2
-+ * debian/copyright: update maintainership info and add coverage of the
-+ debian integration scripts
-+
-+ -- Adam Di Carlo <aph@debian.org> Mon, 19 Mar 2001 01:56:38 -0500
-+
-+docbook (4.1-0.2) unstable; urgency=low
-+
-+ * non-maintainer upload
-+ * sgml-data/sgml-catalog-check.pl location moved
-+ closes: #88679
-+ * debian/postrm: fix some of the legacy FPI removal logic
-+ closes: #87325
-+ * debian/postinst: analogous fix, and remove some scrubbing of the SGML
-+ catalog which really seemed overreaching (such as fudging with
-+ SGMLDECL, and stuff which really ought to be handled by
-+ install-sgmlcatalog)
-+
-+ -- Adam Di Carlo <aph@debian.org> Sat, 17 Mar 2001 16:54:59 -0500
-+
-+docbook (4.1-0.1) unstable; urgency=low
-+
-+ * NMU because Mark lacks time.
-+ * New upstream release (Closes: #68033).
-+ * Do not include 4.0 DTD because 4.1 has no user-level changes from
-+ 4.0.
-+ * Install doc files into /usr/share/doc/ as per policy (Closes:
-+ #50243, #51032).
-+ * Uncommented DTDDECL entries from the catalog (Closes: #63046).
-+ * Updated download location and copyright notice.
-+ * Commented out obsolete line in debian/watch.
-+
-+ -- Yann Dirson <dirson@debian.org> Tue, 1 Aug 2000 01:01:59 +0200
-+
-+docbook (3.1-2) unstable; urgency=low
-+
-+ * debian/control: fix Maintainer realname for consistency.
-+
-+ -- Mark W. Eichin <eichin@thok.org> Wed, 3 Nov 1999 16:14:46 -0500
-+
-+docbook (3.1-1) unstable; urgency=low
-+
-+ * Thanks for all the work; closing the bugs for real and updating my
-+ email addresses. closes: #19682, #19683, #36956, #47375.
-+
-+ -- Mark W. Eichin <eichin@thok.org> Wed, 3 Nov 1999 00:43:12 -0500
-+
-+docbook (3.1-0.4) unstable; urgency=low
-+
-+ * NMU so it can be removed when install-sgmlcatalog isn't present.
-+ (Closes: #47375).
-+
-+ -- J.H.M. Dassen (Ray) <jdassen@debian.org> Sat, 30 Oct 1999 14:31:46 +0200
-+
-+docbook (3.1-0.3) unstable; urgency=low
-+
-+ * non-maintainer release, blessed by Mark Eichin
-+ * at the suggestion of Norm Walsh, retain DTD and entity file name
-+ (closes Bug#36956) -- he also suggests that we don't split entities
-+ into a separate dir, which is a reasonable thought, but I leave it to
-+ others to file a bug if they agree with Norm.
-+
-+ -- Adam Di Carlo <aph@debian.org> Sat, 22 May 1999 16:43:06 -0400
-+
-+docbook (3.1-0.2) unstable; urgency=low
-+
-+ * non-maintainer release
-+ * docbook.cat: fix problems with some system identifiers, bugs I
-+ introduced
-+ * use script from sgml-data to create nice SGML links (completes closing
-+ of Bug#19682)
-+
-+ -- Adam Di Carlo <aph@debian.org> Fri, 26 Mar 1999 04:25:09 -0500
-+
-+docbook (3.1-0.1) unstable; urgency=low
-+
-+ * non-maintainer release
-+ * new upstream version (blessed by Mark Eichin)
-+ * deliver docbook 2.4.1, 3.0, and 3.1 DTDs (closes Bug#19683)
-+ * put DTDs, entities, and declarations in standard locations under
-+ /usr/lib/sgml; make symlinks under there too in compliance with the
-+ sgml-base subpolicy (closes Bug#19682)
-+ * debian/control: bump standards version to 2.5.0, reconcile priority to
-+ what it is in the archive, update description
-+ * debian/rules: some modularization
-+ * debian/copyright: updated
-+ * README.debian: adding some pointer on other packages and the home page
-+
-+ -- Adam Di Carlo <aph@debian.org> Fri, 26 Mar 1999 01:36:31 -0500
-+
-+docbook (3.0-5) unstable; urgency=low
-+
-+ * debian/rules: use install -m 0644 so text files don't get installed
-+ gratuitously executable (lintian).
-+
-+ -- Mark Eichin <eichin@kitten.gen.ma.us> Wed, 29 Apr 1998 05:39:56 -0400
-+
-+docbook (3.0-4) unstable; urgency=low
-+
-+ * docbook.cat: comment out DTDDECL to avoid warnings from jade. Removed
-+ ISO entity pointers, since they are now supplied by sgml-data.
-+
-+ -- Mark Eichin <eichin@kitten.gen.ma.us> Tue, 7 Apr 1998 02:39:48 -0400
-+
-+docbook (3.0-3) unstable; urgency=low
-+
-+ * debian/postinst, debian/postrm: use sgml-base like jade does.
-+ * debian/control: depend on sgml-base now.
-+
-+ -- Mark W. Eichin <eichin@kitten.gen.ma.us> Tue, 4 Nov 1997 18:18:18 -0500
-+
-+docbook (3.0-2) unstable; urgency=low
-+
-+ * debian/{postinst, postrm}: change md5sum markers to make them easier
-+ to find later (and consistent with jade); add cleanup of older form.
-+
-+ -- Mark W. Eichin <eichin@kitten.gen.ma.us> Tue, 1 Jul 1997 01:08:31 -0400
-+
-+docbook (3.0-1) unstable; urgency=low
-+
-+ * Initial Release.
-+ * docbook.cat: point to davenport subdir.
-+ * rules: install everything, under binary-indep.
-+ * debian/{postinst, postrm}: use md5sum markers to add/remove catalog
-+ entries. Also nuke SGMLDECL line (by wrapping it in an sgml -- comment
-+ --.)
-+
-+ -- Mark Eichin <eichin@kitten.gen.ma.us> Mon, 30 Jun 1997 14:11:38 -0400
-+
-+
---- docbook-4.5.orig/debian/copyright
-+++ docbook-4.5/debian/copyright
-@@ -0,0 +1,39 @@
-+This package was debianized by Mark Eichin <eichin@thok.org> on Mon,
-+30 Jun 1997 14:11:38 -0400. It is currently maintained by Adam Di
-+Carlo <aph@debian.org> and the Debian XML/SGML group
-+<debian-xml-sgml-devel@lists.alioth.debian.org>. No changes were made
-+to the upstream version of these materials, although the provided SGML
-+Open catalogs were trimmed or enhanced to suit Debian's SGML
-+infrastructure. All Debian integration scripts and packages are under
-+the GPL v2 or better, a copy of which can be found on Debian systems
-+in '/usr/share/common-licenses/GPL'.
-+
-+Download:
-+
-+ The original upstream materials may be downloaded from
-+ <URL:http://www.oasis-open.org/docbook/sgml/>. This process is
-+ transparent via the `get-orig-source' target in debian/rules.
-+
-+Copyright:
-+
-+ Copyright 1992-2006 HaL Computer Systems, Inc.,
-+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
-+ Corporation, orman Walsh, un Microsystems, Inc., and the
-+ Organization for the Advancement of Structured Information
-+ Standards (OASIS).
-+
-+License and Warranty:
-+
-+ Permission to use, copy, modify and distribute the DocBook DTD and
-+ its accompanying documentation for any purpose and without fee is
-+ hereby granted in perpetuity, provided that the above copyright
-+ notice and this paragraph appear in all copies. The copyright
-+ holders make no representation about the suitability of the DTD for
-+ any purpose. It is provided "as is" without expressed or implied
-+ warranty.
-+
-+ If you modify the DocBook DTD in any way, except for declaring and
-+ referencing additional sets of general entities and declaring
-+ additional notations, label your DTD as a variant of DocBook. See
-+ the maintenance documentation for more information.
-+
---- docbook-4.5.orig/debian/rules
-+++ docbook-4.5/debian/rules
-@@ -0,0 +1,121 @@
-+#!/usr/bin/make -f
-+# Made with the aid of debmake, by Christoph Lameter,
-+# based on the sample debian/rules file for GNU hello by Ian Jackson.
-+
-+PACKAGE := docbook
-+
-+include /usr/share/dpatch/dpatch.make
-+
-+
-+debian/docbook.install:
-+ set -ex ; \
-+ touch $@ ; \
-+ for db in docbook-* ; do \
-+ dbver=`echo $${db} | sed -e 's/docbook-//g'` ; \
-+ for file in $${db}/*.dcl $${db}/*.dtd $${db}/*.mod ; do \
-+ if [ $${file} != $${db}/dbgenent.mod ] ; then \
-+ echo "$${file} usr/share/sgml/docbook/dtd/$${dbver}" >> $@ ; \
-+ else \
-+ echo "$${file} etc/sgml/docbook/$${dbver}" >> $@ ; \
-+ fi ; \
-+ done ; \
-+ done
-+
-+debian/docbook.links:
-+ set -ex ; \
-+ touch $@ ; \
-+ for db in docbook-* ; do \
-+ dbver=`echo $${db} | sed -e 's/docbook-//g'` ; \
-+ [ -f $${db}/dbgenent.mod ] && \
-+ echo -n "etc/sgml/docbook/$${dbver}/dbgenent.mod " >> $@ && \
-+ echo "usr/share/sgml/docbook/dtd/$${dbver}/dbgenent.mod" >> $@ ; \
-+ [ -f $${db}/docbook.cat ] && \
-+ echo "usr/share/sgml/docbook/dtd/$${dbver}/catalog usr/share/sgml/docbook/dtd/$${dbver}/docbook.cat" >> $@ ; \
-+ done
-+
-+debian/docbook.sgmlcatalogs:
-+ set -ex ; \
-+ touch $@ ; \
-+ echo "catalog /usr/share/sgml/docbook/dtd/catalog" > $@ ; \
-+ for db in docbook-* ; do \
-+ dbver=`echo $${db} | sed -e 's/docbook-//g'` ; \
-+ [ -f $${db}/docbook.cat ] && \
-+ echo "$${db}/docbook.cat /usr/share/sgml/docbook/dtd/$${dbver}/catalog" >> $@ ; \
-+ done
-+
-+build: patch-stamp build-stamp
-+
-+build-stamp: debian/docbook.install debian/docbook.links debian/docbook.sgmlcatalogs
-+ dh_testdir
-+ touch build-stamp
-+
-+clean: unpatch
-+ dh_testdir
-+ dh_testroot
-+ rm -f build-stamp patch-stamp
-+ rm -f debian/docbook.install \
-+ debian/docbook.links \
-+ debian/docbook.sgmlcatalogs
-+ dh_clean
-+
-+install: build
-+ dh_testdir
-+ dh_testroot
-+ dh_clean -k
-+ dh_installdirs
-+
-+binary-indep: build
-+ dh_testdir
-+ dh_testroot
-+ dh_installchangelogs ChangeLog.upstream
-+ dh_install
-+ dh_installdocs debian/README.docbook.dcl
-+ dh_installexamples
-+ dh_installcatalogs
-+ dh_link
-+ find $(CURDIR)/debian/$(PACKAGE) -type l -follow >/dev/null # exits 1 on broken links
-+ dh_compress
-+ dh_fixperms
-+ dh_installdeb
-+ dh_gencontrol
-+ dh_md5sums
-+ dh_builddeb
-+
-+binary-arch: build
-+
-+binary: binary-indep binary-arch
-+
-+.PHONY: build clean binary binary-arch binary-indep
-+
-+# This following code is used to create the .orig.tar.gz tarball.
-+# Use it to prepare it for a new release.
-+
-+version=$(shell dpkg-parsechangelog | sed -n -e 's/^Version: \(.*\)-[^-]*/\1/p')
-+
-+.PHONY: get-orig-source
-+get-orig-source:
-+ set -ex ; \
-+ TMPDIR=`mktemp -d docbook-$(version).orig` ; \
-+ touch "$$TMPDIR"/ChangeLog.upstream ; \
-+ for db in 4.5 4.4 4.3 4.2 ; do \
-+ mkdir -p "$$TMPDIR"/docbook-$${db} ; \
-+ dbzip=docbook-$${db}.zip ; \
-+ wget -P "$$TMPDIR" http://www.oasis-open.org/docbook/sgml/$${db}/"$$dbzip" ; \
-+ unzip -d "$$TMPDIR"/docbook-$${db} "$$TMPDIR"/"$$dbzip" ; \
-+ rm -f "$$TMPDIR"/"$$dbzip" ; \
-+ [ -f "$$TMPDIR"/docbook-$${db}/ChangeLog ] && \
-+ cat "$$TMPDIR"/docbook-$${db}/ChangeLog >> "$$TMPDIR"/ChangeLog.upstream ; \
-+ done; \
-+ for db in 4.1 4.0 3.1 3.0 2.4.1 ; do \
-+ mkdir -p "$$TMPDIR"/docbook-$${db} ; \
-+ dbver=`echo $${db} | sed -e 's/\.//g'` ; \
-+ dbzip=docbk"$$dbver".zip ; \
-+ wget -P "$$TMPDIR" http://www.oasis-open.org/docbook/sgml/$${db}/"$$dbzip" ; \
-+ unzip -d "$$TMPDIR"/docbook-$${db} "$$TMPDIR"/"$$dbzip" ; \
-+ rm -f "$$TMPDIR"/"$$dbzip" ; \
-+ cat "$$TMPDIR"/docbook-$${db}/"$$dbver"chg.txt >> "$$TMPDIR"/ChangeLog.upstream ; \
-+ done ; \
-+ find "$$TMPDIR" -type f ! -perm 644 -exec chmod 644 "{}" ";" ; \
-+ GZIP=-9 tar -czf $(CURDIR)/docbook_${version}.orig.tar.gz "$$TMPDIR" ; \
-+ rm -rf "$$TMPDIR"
-+
---- docbook-4.5.orig/debian/README.docbook.dcl
-+++ docbook-4.5/debian/README.docbook.dcl
-@@ -0,0 +1,98 @@
-+From: Adam Di Carlo <adam@onshore.com>
-+Subject: DOCBOOK: objection to docbook.dcl
-+To: docbook@lists.oasis-open.org
-+Cc: docbook-tc@oasis-open.org
-+Date: Wed, 21 Mar 2001 02:35:31 -0500
-+
-+
-+Shipped with the DocBook DTDs from 2.4.1 and up is 'docbook.dcl', an
-+SGML declaration for use with DocBook documents. However, this
-+declartion is unnecessarily restrictive, to the level where it is
-+rather cumbersome to implement.
-+
-+My argument is that the DocBook declaration should diverge from the SP
-+(and OpenSP) implied declarations only where the divergance expresses
-+a real necessity to diverge. This is based on the principle that
-+software (including SGML parsers) should be tolerant of what they
-+accept. The unnecessarily broad divergance of the shipped Docbook
-+declaration puts a burden on document engineers using DocBook.
-+
-+I am considering here only the DocBook SGML DTD, since I presume the
-+Declaration is rather irrelevant for XML files, since all XML files
-+have the same XML declaration applied to them.
-+
-+I consider here 'docbook.dcl' as shipped with DocBook 4.1.
-+
-+Major problems:
-+
-+ OMITTAG is turned off (why?)
-+
-+ NAMELEN is too short
-+
-+ Document Character set is too restrictive
-+
-+ SUBDOC is turned off (why?)
-+
-+
-+Description:
-+
-+* OMITTAG is turned off
-+
-+'OMITTAG' is turned off in 'docbook.dcl', disallowing markup
-+minimization of any sort. This is on in the implied declaration of
-+both Jade and OpenJade. This creates problems because documents using
-+the default declaration for their parser will have a valid document,
-+but if the user decides to be more fasidious and user the docbook SGML
-+declaration, sudden their document will not be valid.
-+
-+The major problem is that trying to turn this on will make a large
-+number of existing SGML DocBook instances invalid.
-+
-+
-+* NAMELEN is too short
-+
-+The NAMELEN quantity set in docbook.dcl is set to 45, rather than the
-+default SP NAMELEN of 99999999.
-+
-+A number of users have complained of problems due to this limitation
-+(do a google search on 'docbook namelen' to see what I mean) in any
-+cases (such as the SUSE Linux distribution) where the declaration is
-+enforced.
-+
-+Quoting <URL:http://xml.coverpages.org/wlw14.html>:
-+
-+ Care should be used when changing these since creating a variant
-+ syntax may make it difficult for some SGML systems to process
-+ documents created with that syntax. The best means of guaranteeing
-+ portability between different SGML systems and applications is to
-+ use the reference concrete syntax as much as possible.
-+
-+One wonders why we need to diverge from the reference concrete syntax
-+here.
-+
-+
-+* Document Character set it too restrictive
-+
-+As an example, to workaround limitations in the support of KOI-R SDATA
-+entities in Jade and OpenJade, KOI-R users have to use unicode
-+entities. With the docbook.dcl file, these entities are disallowed,
-+although they are perfectly valid with the implied SP declaration.
-+Example of being disallowed:
-+
-+ jade:/usr/share/sgml/entities/sgml-iso-entities-8879.1986/ISOcyr1.ent:1:16:E: \
-+ "1072" is not a character number in the document character set
-+
-+
-+* SUBDOC is turned off
-+
-+Why is it necessary to disallow SUBDOC in DocBook SGML documents?
-+Seems like some authors may wish to use this, even if its not fully
-+supported by existing stylesheets.
-+
-+
-+
-+I hope I got my facts correct, and that this commentary is useful.
-+
-+--
-+.....Adam Di Carlo....adam@onshore.com.....<URL:http://www.onshored.com/>
-+
---- docbook-4.5.orig/debian/README.Debian
-+++ docbook-4.5/debian/README.Debian
-@@ -0,0 +1,35 @@
-+ DocBook DTDs for Debian GNU/Linux
-+ ---------------------------------
-+
-+DocBook is an SGML DTD for software documentation. It is very
-+thorough, and is used by many different organization to produce books,
-+articles, references, and even manual pages.
-+
-+The home page for DocBook is <URL:http://www.oasis-open.org/docbook/>.
-+
-+A wonderful introduction and reference is available in the
-+docbook-defguide package, which can also be read online at
-+<URL:http://www.docbook.org/tdg/>.
-+
-+To format DocBook documents, you'll need a style-sheet package, either
-+docbook-dsssl or docbook-xsl, depending on what styling language you
-+would like to use.
-+
-+There are far too many other packages to describe here, both for
-+authors, editors, stylers, or information architects. A list of such
-+packages may be perused, for instance, using 'apt-cache search
-+docbook'.
-+
-+If you have a question about how to work with DocBook, there are many
-+mailing lists available; see <URL:http://www.docbook.org/>.
-+
-+If you have suggestions or questions regarding debian-specific issues,
-+please consult the debian-sgml@lists.debian.org mailing list,
-+<URL:http://lists.debian.org/>.
-+
-+--
-+.....Adam Di Carlo....adam@onshore.com.....<URL:http://www.onshored.com/>
-+(previously, Mark Eichin <eichin@thok.org>, Mon, 30 Jun 1997 14:11:38 -0400)
-+
-+
-+
---- docbook-4.5.orig/catalog
-+++ docbook-4.5/catalog
-@@ -0,0 +1,19 @@
-+ -- ...................................................................... --
-+ -- Prefer PUBID to SYSID ................................................ --
-+OVERRIDE YES
-+
-+ -- latest DocBook --
-+PUBLIC "-//OASIS//DTD DocBook//EN" "4.5/docbook.dtd"
-+ -- disabled, see README.docbook.dcl --
-+-- DTDDECL "-//OASIS//DTD DocBook//EN" "4.5/docbook.dcl" --
-+
-+ -- latest DocBook v4--
-+PUBLIC "-//OASIS//DTD DocBook V4//EN" "4.5/docbook.dtd"
-+ -- disabled, see README.docbook.dcl --
-+-- DTDDECL "-//OASIS//DTD DocBook V4//EN" "4.5/docbook.dcl" --
-+
-+ -- latest DocBook v3--
-+PUBLIC "-//OASIS//DTD DocBook V3//EN" "3.1/docbook.dtd"
-+ -- disabled, see README.docbook.dcl --
-+-- DTDDECL "-//OASIS//DTD DocBook V3//EN" "3.1/docbook.dcl" --
-+
diff --git a/source/ap/linuxdoc-tools/sources/gtkdoc-1.13-fixref.patch b/source/ap/linuxdoc-tools/sources/gtkdoc-1.13-fixref.patch
new file mode 100644
index 00000000..89b062de
--- /dev/null
+++ b/source/ap/linuxdoc-tools/sources/gtkdoc-1.13-fixref.patch
@@ -0,0 +1,69 @@
+diff -up gtk-doc-1.13/gtkdoc-fixxref.in.fix-fixxref gtk-doc-1.13/gtkdoc-fixxref.in
+--- gtk-doc-1.13/gtkdoc-fixxref.in.fix-fixxref 2009-12-17 14:36:51.000000000 -0500
++++ gtk-doc-1.13/gtkdoc-fixxref.in 2010-01-06 17:56:55.457121567 -0500
+@@ -168,36 +168,38 @@ foreach my $dir (@EXTRA_DIRS) {
+ }
+ }
+
+-open (INPUT, "$MODULE-sections.txt")
+- || die "Can't open $MODULE-sections.txt: $!";
+-my $subsection = "";
+-while (<INPUT>) {
+- if (m/^#/) {
+- next;
+-
+- } elsif (m/^<SECTION>/) {
+- $subsection = "";
+- } elsif (m/^<SUBSECTION\s*(.*)>/i) {
+- $subsection = $1;
+- } elsif (m/^<SUBSECTION>/) {
+- next;
+- } elsif (m/^<TITLE>(.*)<\/TITLE>/) {
+- next;
+- } elsif (m/^<FILE>(.*)<\/FILE>/) {
+- next;
+- } elsif (m/^<INCLUDE>(.*)<\/INCLUDE>/) {
+- next;
+- } elsif (m/^<\/SECTION>/) {
+- next;
+- } elsif (m/^(\S+)/) {
+- my $symbol=CreateValidSGMLID($1);
+-
+- if ($subsection eq "Standard" || $subsection eq "Private") {
+- $NoLinks{$symbol} = 1;
++if (defined($MODULE)) {
++ open (INPUT, "$MODULE-sections.txt")
++ || die "Can't open $MODULE-sections.txt: $!";
++ my $subsection = "";
++ while (<INPUT>) {
++ if (m/^#/) {
++ next;
++
++ } elsif (m/^<SECTION>/) {
++ $subsection = "";
++ } elsif (m/^<SUBSECTION\s*(.*)>/i) {
++ $subsection = $1;
++ } elsif (m/^<SUBSECTION>/) {
++ next;
++ } elsif (m/^<TITLE>(.*)<\/TITLE>/) {
++ next;
++ } elsif (m/^<FILE>(.*)<\/FILE>/) {
++ next;
++ } elsif (m/^<INCLUDE>(.*)<\/INCLUDE>/) {
++ next;
++ } elsif (m/^<\/SECTION>/) {
++ next;
++ } elsif (m/^(\S+)/) {
++ my $symbol=CreateValidSGMLID($1);
++
++ if ($subsection eq "Standard" || $subsection eq "Private") {
++ $NoLinks{$symbol} = 1;
++ }
+ }
+ }
++ close (INPUT);
+ }
+-close (INPUT);
+
+ &FixCrossReferences ($MODULE_DIR);
+
diff --git a/source/ap/linuxdoc-tools/sources/linuxdoc-tools.lib64.diff b/source/ap/linuxdoc-tools/sources/linuxdoc-tools.lib64.diff
deleted file mode 100644
index 4741f2e2..00000000
--- a/source/ap/linuxdoc-tools/sources/linuxdoc-tools.lib64.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- linuxdoc-tools-0.9.20/bin/linuxdoc.in.orig 2002-09-10 14:31:56.000000000 -0400
-+++ linuxdoc-tools-0.9.20/bin/linuxdoc.in 2002-09-10 14:32:32.000000000 -0400
-@@ -23,6 +23,7 @@
-
- use lib "@DATADIR@";
- use lib "@prefix@/perl5";
-+use lib "@prefix@/lib64/perl5";
- use lib "@prefix@/lib/perl5";
- use lib "@prefix@/share/perl5";
-
diff --git a/source/ap/linuxdoc-tools/sources/source.download b/source/ap/linuxdoc-tools/sources/source.download
index 479033e0..41000902 100755
--- a/source/ap/linuxdoc-tools/sources/source.download
+++ b/source/ap/linuxdoc-tools/sources/source.download
@@ -2,55 +2,73 @@
# they contain patches required to either fix build or runtime problems,
# and it's easier to maintain this hunk of a package when the patches &
# sources are self contained.
+#
+# Some sources have been recompressed with LZMA for better compression results.
# linuxdoc-tools:
# This provides things such as sgml2txt.
-wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/linuxdoc-tools-0.9.65-1.fc12.src.rpm
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/linuxdoc-tools-0.9.66-4.fc13.src.rpm
+
# OpenSP:
# http://openjade.sourceforge.net/download.html
# wget -c http://kent.dl.sourceforge.net/sourceforge/openjade/OpenSP-1.5.2.tar.gz
#
-wget -c http://download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/opensp-1.5.2-11.fc11.src.rpm
+wget -c http://download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/opensp-1.5.2-12.fc12.src.rpm
+
# OpenJade:
# http://openjade.sourceforge.net/
wget -c http://downloads.sourceforge.net/openjade/openjade-1.3.3-pre1.tar.gz
+
# sgmltools-common.
# It's broken and needs patching so we'll use Fedora's.
#wget -c ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/sgml-common-0.6.3.tgz
-wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/sgml-common-0.6.3-29.fc12.src.rpm
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/sgml-common-0.6.3-31.fc13.src.rpm
+
# DocBook docs:
# http://www.oasis-open.org/docbook/sgml/
#
#wget -c http://www.oasis-open.org/docbook/sgml/3.1/docbk31.zip
#wget -c http://www.docbook.org/sgml/4.5/docbook-4.5.zip
-# We use Debian's source instead because they patch the docbooks which make them work!
+# We use Debian's source because it's more convenient since they package all versions in one archive:
wget -c http://ftp.de.debian.org/debian/pool/main/d/docbook/docbook_4.5.orig.tar.gz
-wget -c http://ftp.de.debian.org/debian/pool/main/d/docbook/docbook_4.5-4.diff.gz
+
# http://www.linuxfromscratch.org/blfs/view/stable/pst/docbook-dsssl.html
-#
-wget -c ftp://ftp.fu-berlin.de/unix/linux/mirrors/gentoo/distfiles/docbook-dsssl-1.79.tar.bz2
+# Check versions:
+# http://sourceforge.net/projects/docbook/files/
+wget -c ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/docbook-dsssl-1.79.tar.bz2
wget -c http://switch.dl.sourceforge.net/sourceforge/docbook/docbook-dsssl-doc-1.79.tar.bz2
# Why don't they put the patches into the distributed source...???
#wget -c ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/docbook-utils-0.6.14.tar.gz
-wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/docbook-utils-0.6.14-17.fc12.src.rpm
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/docbook-utils-0.6.14-23.fc13.src.rpm
+
#
wget -c http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip
# https://sourceforge.net/project/showfiles.php?group_id=21935&package_id=16608
-#wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/docbook-style-xsl-1.75.1-1.fc12.src.rpm
-wget -c http://downloads.sourceforge.net/docbook/docbook-xsl-1.71.1.tar.bz2
-wget -c http://downloads.sourceforge.net/docbook/docbook-xsl-doc-1.71.1.tar.bz2
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/docbook-style-xsl-1.75.2-5.fc13.src.rpm
+
+
+# We use the Fedora "docbook-style-xsl" SRPM for this rather than the original source which is why
+# these "docbook-xsl*" files aren't in our sources directory.
+#wget -c "http://downloads.sourceforge.net/project/docbook/docbook-xsl/1.75.2/docbook-xsl-1.75.2.tar.bz2?use_mirror=freefr"
+##wget -c "http://downloads.sourceforge.net/project/docbook/docbook-xsl-doc/1.75.2/docbook-xsl-doc-1.75.2.tar.bz2?use_mirror=freefr"
+
# gnome-doc-utils, needed to build gtk-doc:
-wget -c http://ftp.gnome.org/pub/GNOME/sources/gnome-doc-utils/0.17/gnome-doc-utils-0.17.2.tar.bz2
+wget -c http://ftp.acc.umu.se/pub/GNOME/sources/gnome-doc-utils/0.19/gnome-doc-utils-0.19.1.tar.bz2
+
# gtk-doc:
-wget -c http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/1.11/gtk-doc-1.11.tar.bz2
+# When upgrading this, it's worth checking the Fedora SRPM. For version 1.13
+# we're carrying a fix for gtk-doc-fixref. Make sure newer versions don't need
+# any patches!
+wget -c http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/1.13/gtk-doc-1.13.tar.bz2
+
# sgmlspl
# http://www.cs.indiana.edu/~asengupt/sgml/SGMLSpm/DOC/HTML/sgmlspl/sgmlspl.html
@@ -58,10 +76,12 @@ wget -c http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/1.11/gtk-doc-1.11.tar.bz2
wget -c http://ftp.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii.orig.tar.gz
wget -c http://ftp.de.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii-32.diff.gz
+
# xmlto
# https://fedorahosted.org/releases/x/m/xmlto
-wget -c --no-check-certificate http://fedorahosted.org/releases/x/m/xmlto/xmlto-0.0.22.tar.bz2
+wget -c --no-check-certificate https://fedorahosted.org/releases/x/m/xmlto/xmlto-0.0.23.tar.bz2
+
# AsciiDoc
# http://www.methods.co.nz/asciidoc/
-wget -c http://downloads.sourceforge.net/sourceforge/asciidoc/asciidoc-8.4.5.tar.gz
+wget -c "http://downloads.sourceforge.net/project/asciidoc/asciidoc/8.5.2/asciidoc-8.5.2.tar.gz?use_mirror=ignum"
diff --git a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
index 6eddaf4e..9533bd86 100755
--- a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
+++ b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
@@ -20,17 +20,18 @@
# Package info:
PKGNAM=linuxdoc-tools
-# Automatically determine architecture for build & packaging:
+# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
+ *) export ARCH=$( uname -m ) ;;
esac
fi
-BUILD=${BUILD:-5}
-PKGVERSION=0.9.56 # use the version of linuxdoc-tools as the package version.
+export PKGVERSION=0.9.66 # use the version of linuxdoc-tools as the package version.
+BUILD=${BUILD:-2}
PKGEXT=${PKGEXT:-txz}
export CWD=$PWD
@@ -49,6 +50,7 @@ rm -rf /usr/share/doc/linuxdoc-tools
rm -rf /usr/share/sgml
rm -rf /usr/share/xml/{docbook,xml-iso-entities*} # can't wipe the entire dir because of libglade
rm -rf ~/.texmf-var/ # created by docbook-utils
+rm -rf ~/.texlive* # incase you were using Texlive rather than Textex-3
####################################################################
@@ -75,4 +77,7 @@ slacktrack $TFS \
-l $CWD/build.$ARCH.log \
-R $CWD/postbuildfixes.sh \
-b $PKGSTORE \
- -YQOcp $PKGNAM-$PKGVERSION-$ARCH-$BUILD.$PKGEXT ./linuxdoc-tools.build
+ -rYQOcp $PKGNAM-$PKGVERSION-$ARCH-$BUILD.$PKGEXT ./linuxdoc-tools.build
+
+# Compress build log:
+xz -fvz $CWD/build.$ARCH.log
diff --git a/source/ap/lm_sensors/lm_sensors.SlackBuild b/source/ap/lm_sensors/lm_sensors.SlackBuild
index 72ad373d..83785a56 100755
--- a/source/ap/lm_sensors/lm_sensors.SlackBuild
+++ b/source/ap/lm_sensors/lm_sensors.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,11 +22,18 @@
PKGNAM=lm_sensors
-VERSION=${VERSION:-3.1.1}
-ARCH=${ARCH:-x86_64}
-NUMJOBS=${NUMJOBS:-" -j7 "}
+VERSION=${VERSION:-3.1.2}
BUILD=${BUILD:-1}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
if [ "$ARCH" = "x86_64" ]; then
LIBDIRSUFFIX="64"
@@ -34,6 +41,8 @@ else
LIBDIRSUFFIX=""
fi
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}
diff --git a/source/ap/lsof/lsof.SlackBuild b/source/ap/lsof/lsof.SlackBuild
index afcef167..6a141cc3 100755
--- a/source/ap/lsof/lsof.SlackBuild
+++ b/source/ap/lsof/lsof.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,10 +21,19 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=4.78
-ARCH=${ARCH:-x86_64}
+VERSION=${VERSION:-$(echo lsof_*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d _ | rev)}
BUILD=${BUILD:-1}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-lsof
@@ -34,10 +43,10 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf lsof_$VERSION
-tar xjvf $CWD/lsof_$VERSION.tar.bz2
-cd lsof_$VERSION
-tar xvf lsof_${VERSION}_src.tar
-cd lsof_${VERSION}_src
+tar xjvf $CWD/lsof_$VERSION.tar.bz2 || exit 1
+cd lsof_$VERSION || exit 1
+tar xvf lsof_${VERSION}_src.tar || exit 1
+cd lsof_${VERSION}_src || exit 1
chown -R root:root .
find . \
@@ -69,8 +78,3 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
makepkg -l y -c n $TMP/lsof-$VERSION-$ARCH-$BUILD.txz
-# Clean up the extra stuff:
-if [ "$1" = "--cleanup" ]; then
- rm -rf $TMP/lsof-$VERSION
- rm -rf $PKG
-fi
diff --git a/source/ap/man-pages/man-pages.SlackBuild b/source/ap/man-pages/man-pages.SlackBuild
index 26b7bb57..8930798b 100755
--- a/source/ap/man-pages/man-pages.SlackBuild
+++ b/source/ap/man-pages/man-pages.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008-2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008-2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,9 +20,9 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=${VERSION:-3.22}
+VERSION=${VERSION:-$(echo man-pages-3.*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
ARCH=noarch
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
CWD=$(pwd)
TMP=${TMP:-/tmp}
@@ -33,9 +33,10 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf man-pages-$VERSION
-tar xvf $CWD/man-pages-$VERSION.tar.bz2
+tar xf $CWD/man-pages-$VERSION.tar.bz2
tar xf $CWD/man-pages-posix-2003-a.tar.bz2
chown -R root:root man-pages-$VERSION man-pages-posix-2003-a
+chmod -R a-s,u+rw,go+r-w man-pages-$VERSION man-pages-posix-2003-a
find man-pages-$VERSION \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
diff --git a/source/ap/mc/mc.SlackBuild b/source/ap/mc/mc.SlackBuild
index 8beae8b4..d4f00205 100755
--- a/source/ap/mc/mc.SlackBuild
+++ b/source/ap/mc/mc.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,10 +21,19 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=20090714_git
-ARCH=${ARCH:-x86_64}
+VERSION=${VERSION:-$(echo mc-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
BUILD=${BUILD:-1}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
NUMJOBS=${NUMJOBS:-" -j7 "}
if [ "$ARCH" = "i486" ]; then
@@ -33,6 +42,8 @@ elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
+else
+ SLKCFLAGS="-O2"
fi
CWD=$(pwd)
@@ -52,7 +63,9 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-./autogen.sh
+if [ ! -x ./configure ]; then
+ ./autogen.sh
+fi
CFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/ap/mpg123/mpg123.SlackBuild b/source/ap/mpg123/mpg123.SlackBuild
new file mode 100755
index 00000000..5ac3b53a
--- /dev/null
+++ b/source/ap/mpg123/mpg123.SlackBuild
@@ -0,0 +1,157 @@
+#!/bin/sh
+# Copyright 2006-2010 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=mpg123
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+ TARGET="x86"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+ TARGET=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+ TARGET="x86-64"
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+ TARGET="arm_nofpu"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+ TARGET=""
+fi
+
+# configure --help shows the following re TARGET:
+# --with-cpu=i386_fpu Use code optimized for i386 processors with floating point arithmetic
+# --with-cpu=i386_nofpu Use code optimized for i386 processors with fixed point arithmetic (experimental)
+# --with-cpu=i486 Use code optimized for i486 processors (only usable alone!)
+# --with-cpu=i586 Use code optimized for i586 processors
+# --with-cpu=i586_dither Use code optimized for i586 processors with dithering (noise shaping), adds 256K to binary size
+# --with-cpu=3dnow Use code optimized for 3DNow processors
+# --with-cpu=3dnowext Use code optimized for 3DNowExt processors (K6-3+, Athlon)
+# --with-cpu=3dnowext_alone Really only 3DNowExt decoder, without 3DNow fallback for flexible rate
+# --with-cpu=mmx Use code optimized for MMX processors
+# --with-cpu=mmx_alone Really only MMX decoder, without i586 fallback for flexible rate
+# --with-cpu=sse Use code optimized for SSE processors
+# --with-cpu=sse_alone Really only SSE decoder, without i586 fallback for flexible rate
+# --with-cpu=x86 Pack all x86 opts into one binary (excluding i486, including dither)
+# --with-cpu=x86-64 Use code optimized for x86-64 processors (AMD64 and Intel64, including dithered generic)
+# --with-cpu=arm_nofpu Use code optimized for ARM processors with fixed point arithmetic (experimental)
+
+rm -rf $PKG
+mkdir -p $PKG $TMP
+cd $TMP
+rm -rf ${PKGNAM}-${VERSION}
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
+cd ${PKGNAM}-$VERSION || exit 1
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/${PKGNAM}-$VERSION \
+ --with-cpu=$TARGET \
+ --with-audio=alsa,oss \
+ --with-default-audio=alsa \
+ --with-optimization=2 \
+ --build=$ARCH-slackware-linux
+
+# Build and install:
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Add compat symlinks for mpg321:
+( cd $PKG/usr/bin ; ln -s mpg123 mpg321 )
+( cd $PKG/usr/man/man1 ; ln -sf mpg123.1 mpg321.1 )
+
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.*
+ )
+ done
+ )
+fi
+
+# Compress info files, if any:
+if [ -d $PKG/usr/info ]; then
+ ( cd $PKG/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ AUTHORS COPYING INSTALL NEWS* README TODO doc \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/ap/mpg123/slack-desc b/source/ap/mpg123/slack-desc
new file mode 100644
index 00000000..00bd3478
--- /dev/null
+++ b/source/ap/mpg123/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+mpg123: mpg123 (a command-line mp3 player)
+mpg123:
+mpg123: mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for
+mpg123: layers 1, 2, and 3 (MPEG 1.0 layer 3 aka MP3 most commonly tested).
+mpg123:
+mpg123: It is free software licensed under LGPL 2.1.
+mpg123:
+mpg123: Homepage: http://mpg123.org/
+mpg123:
+mpg123:
+mpg123:
diff --git a/source/ap/mpg321/mpg321.SlackBuild b/source/ap/mpg321/mpg321.SlackBuild
deleted file mode 100755
index 340c3270..00000000
--- a/source/ap/mpg321/mpg321.SlackBuild
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-VERSION=0.2.10
-ARCH=${ARCH:-x86_64}
-NUMJOBS=${NUMJOBS:-" -j7 "}
-BUILD=${BUILD:-2}
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-mpg321
-
-rm -rf $PKG
-mkdir -p $TMP $PKG
-
-cd $TMP
-tar xvf $CWD/mpg321-$VERSION.tar.gz || exit 1
-cd mpg321-$VERSION || exit 1
-
-CFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --build=$ARCH-slackware-linux
-
-make $NUMJOBS || make || exit 1
-
-strip mpg321
-mkdir -p $PKG/usr/bin
-cat mpg321 > $PKG/usr/bin/mpg321
-chmod 755 $PKG/usr/bin/mpg321
-( cd $PKG/usr/bin ; rm -f mpg123 ; ln -sf mpg321 mpg123 )
-
-mkdir -p $PKG/usr/man/man1
-cat mpg321.1 | gzip -9c > $PKG/usr/man/man1/mpg321.1.gz
-
-mkdir -p $PKG/usr/doc/mpg321-$VERSION
-cp -a \
- AUTHORS BUGS COPYING ChangeLog HACKING INSTALL NEWS \
- README README.remote THANKS TODO \
- $PKG/usr/doc/mpg321-$VERSION
-chown -R root:root $PKG/usr/doc/mpg321-$VERSION
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-# Build the package:
-cd $PKG
-/sbin/makepkg -l y -c n $TMP/mpg321-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/source/ap/mpg321/slack-desc b/source/ap/mpg321/slack-desc
deleted file mode 100644
index 81b435b5..00000000
--- a/source/ap/mpg321/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in. You must
-# make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-mpg321: mpg321 (a command-line mp3 player)
-mpg321:
-mpg321: mpg321 is a free command-line mp3 player, which uses the mad audio
-mpg321: decoding library. mpg321 is written to be a drop-in replacement for
-mpg321: the mpg123 player for front-ends such as gqmpeg and programs which use
-mpg321: mpg123 to decode mp3 files (like gtoaster, and other CD-recording
-mpg321: software).
-mpg321:
-mpg321: mpg321 requires libao.so from the oggutils package.
-mpg321:
-mpg321:
diff --git a/source/ap/mysql/mirror-url b/source/ap/mysql/mirror-url
deleted file mode 100644
index 37be0283..00000000
--- a/source/ap/mysql/mirror-url
+++ /dev/null
@@ -1 +0,0 @@
-http://mysql.he.net/Downloads/MySQL-5.0/mysql-5.0.82.tar.gz
diff --git a/source/ap/mysql/mysql-embedded.build b/source/ap/mysql/mysql-embedded.build
index 9b06d386..2ac77f31 100755
--- a/source/ap/mysql/mysql-embedded.build
+++ b/source/ap/mysql/mysql-embedded.build
@@ -3,10 +3,19 @@
# by: David Cantrell <david@slackware.com>
# Currently maintained by: Patrick Volkerding <volkerdi@slackware.com>
-VERSION=5.0.84
-ARCH=${ARCH:-x86_64}
+VERSION=${VERSION:-$(echo mysql-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-mysql
@@ -20,6 +29,9 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
rm -rf $PKG
@@ -29,15 +41,21 @@ rm -rf mysql-$VERSION
tar xvf $CWD/mysql-$VERSION.tar.?z* || exit 1
cd mysql-$VERSION
+if ls $CWD/*.diff.gz 1> /dev/null 2> /dev/null ; then
+ for patch in $CWD/*.diff.gz ; do
+ zcat $patch | patch -p1 --verbose || exit 1
+ done
+fi
+
CFLAGS="$SLKCFLAGS -fPIC" CXXFLAGS="$SLKCFLAGS -fPIC" \
./configure --prefix=/usr --libdir=/usr/lib${LIBDIRSUFFIX} \
--datadir=/usr/share --sysconfdir=/etc/mysql \
--libexecdir=/usr/sbin --localstatedir=/var/lib/mysql \
--without-docs --without-man --without-server \
- --with-embedded-server --without-innodb --without-bench \
+ --with-embedded-server --without-innodb \
--without-berkeley-db --without-row-based-replication \
--without-readline --disable-shared --with-charset=utf8 \
- --without-debug --with-pthread --without-openssl --without-query-cache \
+ --without-debug --with-pthread --without-ssl --without-query-cache \
--without-geometry --with-pic
make -j6 || make || exit 1
diff --git a/source/ap/mysql/mysql.SlackBuild b/source/ap/mysql/mysql.SlackBuild
index 16ba3efa..cf846ffe 100755
--- a/source/ap/mysql/mysql.SlackBuild
+++ b/source/ap/mysql/mysql.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,11 +25,20 @@
# Currently maintained by: Patrick Volkerding <volkerdi@slackware.com>
-VERSION=5.0.84
-ARCH=${ARCH:-x86_64}
-NUMJOBS=${NUMJOBS:-" -j7 "}
-BUILD=${BUILD:-1}
+VERSION=${VERSION:-$(echo mysql-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+NUMJOBS=${NUMJOBS:-" -j7 "}
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-mysql
@@ -43,6 +52,9 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
rm -rf $PKG
@@ -51,6 +63,13 @@ cd $TMP
rm -rf mysql-$VERSION
tar xvf $CWD/mysql-$VERSION.tar.?z* || exit 1
cd mysql-$VERSION
+
+if ls $CWD/*.diff.gz 1> /dev/null 2> /dev/null ; then
+ for patch in $CWD/*.diff.gz ; do
+ zcat $patch | patch -p1 --verbose || exit 1
+ done
+fi
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -70,13 +89,13 @@ CXX=gcc \
--mandir=/usr/man \
--infodir=/usr/info \
--enable-assembler \
- --with-raid \
--without-debug \
--enable-thread-safe-client \
- --without-bench \
--with-extra-charsets=complex \
- --with-vio \
- --with-openssl \
+ --with-ssl=/usr \
+ --enable-largefile \
+ --with-innodb \
+ --with-readline \
--build=$ARCH-slackware-linux
#
# --without-readline
@@ -84,6 +103,22 @@ CXX=gcc \
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG
+# install additional headers needed for building external engine plugins
+for i in sql include regex; do
+ for j in $i/*.h; do
+ install -m 644 $j $PKG/usr/include/mysql/
+ done
+done
+
+mkdir -p $PKG/usr/include/mysql/atomic
+for i in include/atomic/*.h; do
+ install -m 644 $i $PKG/usr/include/mysql/atomic/
+done
+
+# The ./configure option to omit this has gone away, so we'll omit it
+# the old-fashioned way. It's all in the source tarball if you need it.
+rm -rf $PKG/usr/sql-bench
+
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
@@ -94,13 +129,15 @@ cp support-files/my-{huge,large,medium,small}.cnf $PKG/etc
# Install docs
mkdir -p $PKG/usr/doc/mysql-$VERSION/Docs
cp -a \
- COPYING* MIRRORS README* \
+ COPYING* EXCEPTIONS* INSTALL-SOURCE README* \
$PKG/usr/doc/mysql-$VERSION
( cd Docs
+ # Seems most of the Docs/* are gone, but we'll leave the cp stuff
+ # in case it returns.
cp -a INSTALL-BINARY *.html *.txt Flags \
$PKG/usr/doc/mysql-$VERSION/Docs )
-# Too large to justify since the .html version is right there:
-rm $PKG/usr/doc/mysql-$VERSION/Docs/manual.txt
+## Too large to justify since the .html version is right there:
+#rm $PKG/usr/doc/mysql-$VERSION/Docs/manual.txt
find $PKG/usr/doc/mysql-$VERSION -type f -exec chmod 0644 {} \;
# This is the directory where databases are stored
@@ -127,20 +164,20 @@ zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cat $CWD/slack-desc > $PKG/install/slack-desc
# Add some handy library symlinks:
-if [ -r $PKG/usr/lib${LIBDIRSUFFIX}/mysql/libmysqlclient.so.15 ]; then
+if [ -r $PKG/usr/lib${LIBDIRSUFFIX}/mysql/libmysqlclient.so.16 ]; then
( cd $PKG/usr/lib${LIBDIRSUFFIX}
- rm -f libmysqlclient.so libmysqlclient.so.15
+ rm -f libmysqlclient.so libmysqlclient.so.16
ln -sf mysql/libmysqlclient.so .
- ln -sf mysql/libmysqlclient.so.15 .
+ ln -sf mysql/libmysqlclient.so.16 .
)
else
exit 1
fi
-if [ -r $PKG/usr/lib${LIBDIRSUFFIX}/mysql/libmysqlclient_r.so.15 ]; then
+if [ -r $PKG/usr/lib${LIBDIRSUFFIX}/mysql/libmysqlclient_r.so.16 ]; then
( cd $PKG/usr/lib${LIBDIRSUFFIX}
- rm -f libmysqlclient_r.so libmysqlclient_r.so.15
+ rm -f libmysqlclient_r.so libmysqlclient_r.so.16
ln -sf mysql/libmysqlclient_r.so .
- ln -sf mysql/libmysqlclient_r.so.15 .
+ ln -sf mysql/libmysqlclient_r.so.16 .
)
else
exit 1
@@ -172,11 +209,15 @@ if [ -d $PKG/usr/info ]; then
)
fi
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
# Build package:
cd $PKG
/sbin/makepkg -l y -c n $TMP/mysql-$VERSION-$ARCH-$BUILD.txz
-if [ "$1" == "--cleanup" ]; then
- cd $TMP
- rm -rf mysql-$VERSION
-fi
diff --git a/source/ap/nano/nano.SlackBuild b/source/ap/nano/nano.SlackBuild
index 7a1440e0..c6e3c3ad 100755
--- a/source/ap/nano/nano.SlackBuild
+++ b/source/ap/nano/nano.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,11 +22,20 @@
PKGNAM=nano
-VERSION=${VERSION:-2.0.9}
-ARCH=${ARCH:-x86_64}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
+BUILD=${BUILD:-1}
+
NUMJOBS=${NUMJOBS:-" -j7 "}
-BUILD=${BUILD:-2}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
@@ -34,6 +43,8 @@ elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
+else
+ SLKCFLAGS="-O2"
fi
CWD=$(pwd)
@@ -44,7 +55,7 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf ${PKGNAM}-${VERSION}
-tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
cd ${PKGNAM}-$VERSION || exit 1
# Make sure ownerships and permissions are sane:
@@ -109,6 +120,14 @@ cp -a \
doc/faq.html doc/nanorc.sample \
$PKG/usr/doc/${PKGNAM}-$VERSION
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/ap/pm-utils/README.SLACKWARE b/source/ap/pm-utils/README.SLACKWARE
index 07162439..26ff48d8 100644
--- a/source/ap/pm-utils/README.SLACKWARE
+++ b/source/ap/pm-utils/README.SLACKWARE
@@ -1,5 +1,5 @@
README.SLACKWARE
-20090414 - rworkman@slackware.com
+20100319 - rworkman@slackware.com
===============================================================================
PLEASE READ THIS ENTIRE FILE BEFORE REPORTING PROBLEMS OR ASKING FOR HELP!
@@ -29,21 +29,21 @@ it works at all.
Here's the short version of using suspend to disk:
Stanza in /etc/lilo.conf should look something like this:
- image = /boot/vmlinuz-generic-smp-2.6.29.1-smp
+ image = /boot/vmlinuz-generic-smp-2.6.33.1-smp
initrd = /boot/initrd.gz
- append = "resume=/dev/hda2"
- root = /dev/hda1
- label = Slackware
+ append = "resume=/dev/sda2"
+ root = /dev/sda1
+ label = genericsmp.s
read-only
/etc/mkinitrd.conf should look something like this:
MODULE_LIST="jfs"
- ROOTDEV="/dev/hda1"
+ ROOTDEV="/dev/sda1"
ROOTFS="jfs"
- RESUMEDEV="/dev/hda2"
+ RESUMEDEV="/dev/sda2"
mkinitrd command invocation would be this:
- mkinitrd -c -k 2.6.29.1-smp -F
+ mkinitrd -c -k 2.6.33.1-smp -F
All of the above assumes at least a cursory understanding of what those
commands and parameters do. If it's not clear, don't attempt it on a
@@ -51,14 +51,17 @@ system that you can't easily reinstall without concern.
==============================================================================
-If it works for you, and/or you want to automate it a bit, you'll find
-some sample acpi event declarations and scripts here:
- http://rlworkman.net/conf/acpi/
-A better option is to use the power manager daemon included with your choice
-of desktop environment (both kde and xfce have one).
+Once you confirm that a suspend and resume cycle works as expected, you might
+automate the process with some acpi magic, but a better option is to use the
+power manager daemon included with your choice of desktop environment (both
+kde and xfce have one).
==============================================================================
+/* TODO: these links are now dead. That's mostly okay, because the vast
+ majority of the hardware out there these days doesn't require any quirks
+ at all any more. Hopefully you won't be in the minority :-) */
+
If it doesn't work by default for you, consider having a look at
http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-index.html
for some debugging hints. Pay particular attention to this page:
@@ -76,14 +79,14 @@ needed to add for successful suspend/resume to rworkman@slackware.com
If you need the system to do certain operations before going to sleep and
then undo them (or perhaps do something new) when waking back up, pm-utils
supports something called "hooks." The hooks installed by packages (not only
-pm-utils itself) should be in /usr/lib/pm-utils/sleep.d/, while any hooks
+pm-utils itself) should be in /usr/lib(64)/pm-utils/sleep.d/, while any hooks
installed by the local system administrator (e.g. things that are only an
issue on that one machine) should be in /etc/pm/sleep.d/.
Looking at some of the existing hooks should give you a decent idea of their
capabilities; as a head start, the functions used in the hooks are declared
-in /usr/lib/pm-utils/functions, which is inherited elsewhere by
-/usr/lib/pm-utils/pm-functions. Note that an error exit code on any hook
+in /usr/lib(64)/pm-utils/functions, which is inherited elsewhere by
+/usr/lib(64)/pm-utils/pm-functions. Note that an error exit code on any hook
will cause the sleep operation to fail, so if you don't care whether your
hook executes successfully, be sure to return an exit code of 0 (success) if
you don't want the suspend operation to fail. Some other exit codes are
@@ -101,15 +104,18 @@ ship its own hook.
KNOWN ISSUES
+/* TODO: remove? I've gotten *zero* mails about either of these since
+ we've been shipping pm-utils */
+
**** If you encounter either of these, mail rworkman@slackware.com ****
If your alsa drivers don't correctly save and restore state across a sleep /
resume cycle (due to a buggy driver), then you will need to add the drivers
to a custom file named /etc/pm/config.d/defaults (create the file if it does
not exist already) in a variable named "SUSPEND_MODULES" - see the file at
-/usr/lib/pm-utils/defaults for proper format.
+/usr/lib(64)/pm-utils/defaults for proper format.
-The /usr/lib/pm-utils/sleep.d/90clock does not run by default. It added
+The /usr/lib(64)/pm-utils/sleep.d/90clock does not run by default. It added
over a second to suspend, and the vast majority of hardware does not need it
to keep the clocks in sync. If you need this hook, you can set the
NEED_CLOCK_SYNC environment variable in a custom /etc/pm/config.d/defaults
diff --git a/source/ap/pm-utils/pm-utils.SlackBuild b/source/ap/pm-utils/pm-utils.SlackBuild
index 26e60714..0b9eacd1 100755
--- a/source/ap/pm-utils/pm-utils.SlackBuild
+++ b/source/ap/pm-utils/pm-utils.SlackBuild
@@ -2,8 +2,8 @@
# Slackware build script for pm-utils
-# Copyright 2008, 2009 Robby Workman, Northport, Alabama, USA
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010 Robby Workman, Northport, Alabama, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,16 +23,27 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-PRGNAM=pm-utils
-VERSION=1.2.5
-ARCH=${ARCH:-x86_64}
+PKGNAM=pm-utils
+VERSION=$(echo ${PKGNAM}-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
BUILD=${BUILD:-1}
+QUIRKS=20100316 # Version of the quirks database
+
NUMJOBS=${NUMJOBS:-" -j7 "}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-$PRGNAM
+PKG=$TMP/package-$PKGNAM
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
@@ -43,14 +54,17 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1
-cd $PRGNAM-$VERSION || exit 1
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -63,19 +77,21 @@ CFLAGS="$SLKCFLAGS" \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
--mandir=/usr/man \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-( cd $PKG
- find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \
- xargs strip --strip-unneeded 2> /dev/null
- find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \
- xargs strip --strip-unneeded 2> /dev/null
-)
+# Now let's add the video quirks
+PM_UTILS_LIBDIR="/usr/lib${LIBDIRSUFFIX}/pm-utils"
+mkdir -p $PKG/$PM_UTILS_LIBDIR/video-quirks
+tar xf $CWD/pm-quirks-$QUIRKS.tar.xz -C $PKG/$PM_UTILS_LIBDIR/video-quirks
+chown -R root:root $PKG/$PM_UTILS_LIBDIR/video-quirks
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
if [ -d $PKG/usr/man ]; then
( cd $PKG/usr/man
@@ -91,15 +107,22 @@ if [ -d $PKG/usr/man ]; then
)
fi
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
AUTHORS COPYING INSTALL NEWS README* TODO \
- $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README.SLACKWARE
+ $PKG/usr/doc/$PKGNAM-$VERSION
+cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PKGNAM-$VERSION/README.SLACKWARE
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
-/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz
-
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/ap/powertop/powertop.SlackBuild b/source/ap/powertop/powertop.SlackBuild
new file mode 100755
index 00000000..7767580b
--- /dev/null
+++ b/source/ap/powertop/powertop.SlackBuild
@@ -0,0 +1,101 @@
+#!/bin/sh
+
+# Copyright 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=powertop
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+cd $TMP
+rm -rf ${PKGNAM}-${VERSION}
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
+cd ${PKGNAM}-$VERSION
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Build and install:
+make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Move man pages:
+mv $PKG/usr/share/man $PKG/usr
+
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ COPYING* README* \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/ap/powertop/slack-desc b/source/ap/powertop/slack-desc
new file mode 100644
index 00000000..3bf3aa5d
--- /dev/null
+++ b/source/ap/powertop/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+powertop: powertop (tool for analyzing system power usage)
+powertop:
+powertop: PowerTOP is a utility that collects data from your system and presents
+powertop: an overview to help optimize power savings. PowerTOP will identify
+powertop: which tunables and software components are the biggest offenders in
+powertop: slurping up your battery time. PowerTOP updates its display
+powertop: frequently so that you can directly see the impact of any changes you
+powertop: are making.
+powertop:
+powertop: Homepage: http://www.linuxpowertop.org
+powertop:
diff --git a/source/ap/radeontool/radeontool.SlackBuild b/source/ap/radeontool/radeontool.SlackBuild
index 3292a21c..2a5a3fe4 100755
--- a/source/ap/radeontool/radeontool.SlackBuild
+++ b/source/ap/radeontool/radeontool.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008 Robby Workman, Northport, Alabama, USA
+# Copyright 2008, 2010 Robby Workman, Northport, Alabama, USA
# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
@@ -22,10 +22,18 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=1.5
-ARCH=${ARCH:-x86_64}
+VERSION=1.6.1
BUILD=${BUILD:-1}
+# Automatically determine architecture for build & packaging:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-radeontool
@@ -36,13 +44,15 @@ elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
+else
+ SLKCFLAGS="-O2"
fi
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf radeontool-$VERSION
-tar xvf $CWD/radeontool-$VERSION.tar.gz
+tar xvf $CWD/radeontool-$VERSION.tar.bz2
cd radeontool-$VERSION || exit 1
chown -R root:root .
find . \
@@ -51,16 +61,25 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Fix a bad include
-zcat $CWD/radeontool.c.diff.gz | patch -p1 || exit 1
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --build=$ARCH-slackware-linux
+
+make
+make install DESTDIR=$PKG
-gcc -Wall $SLKCFLAGS -o radeontool radeontool.c
-strip --strip-unneeded radeontool
-mkdir -p $PKG/usr/sbin
-cp -a radeontool $PKG/usr/sbin
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+# Sometimes CHANGES is present, sometimes it isn't.
+# We don't care about noise on stderr. Better than missing docs.
+# So, first we try to copy it:
mkdir -p $PKG/usr/doc/radeontool-$VERSION
cp -a CHANGES $PKG/usr/doc/radeontool-$VERSION
+# Then we take care of any empty directory in case there was no CHANGES file:
+rmdir $PKG/usr/doc/radeontool-$VERSION
+rmdir $PKG/usr/doc
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/ap/radeontool/radeontool.c.diff b/source/ap/radeontool/radeontool.c.diff
deleted file mode 100644
index 156863ed..00000000
--- a/source/ap/radeontool/radeontool.c.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -u radeontool-1.5.orig/radeontool.c radeontool-1.5/radeontool.c
---- radeontool-1.5.orig/radeontool.c 2004-02-10 21:50:27.000000000 -0600
-+++ radeontool-1.5/radeontool.c 2008-11-24 13:21:32.895434558 -0600
-@@ -21,7 +21,7 @@
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <sys/mman.h>
--#include <asm/page.h>
-+#include <sys/user.h>
-
- #include "radeon_reg.h"
-
diff --git a/source/ap/radeontool/radeontool.info b/source/ap/radeontool/radeontool.info
deleted file mode 100644
index 7c7c1c6c..00000000
--- a/source/ap/radeontool/radeontool.info
+++ /dev/null
@@ -1,8 +0,0 @@
-PRGNAM="radeontool"
-VERSION="1.5"
-HOMEPAGE="http://fdd.com/software/radeon/"
-DOWNLOAD="http://fdd.com/software/radeon/radeontool-1.5.tar.gz"
-MD5SUM="8065eebe5a2b163e43b40461bfe49a56"
-MAINTAINER="Robby Workman"
-EMAIL="rw@rlworkman.net"
-APPROVED=""
diff --git a/source/ap/rpm/rpm.SlackBuild b/source/ap/rpm/rpm.SlackBuild
index a16f0a3e..68ab36a4 100755
--- a/source/ap/rpm/rpm.SlackBuild
+++ b/source/ap/rpm/rpm.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,12 +22,21 @@
# Build RPM (of all things) for Slackware.
-VERSION=${VERSION:-4.7.0}
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-4.8.0}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
diff --git a/source/ap/sox/sox.SlackBuild b/source/ap/sox/sox.SlackBuild
index aea5d7c1..fdbb4e55 100755
--- a/source/ap/sox/sox.SlackBuild
+++ b/source/ap/sox/sox.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,8 +22,17 @@
VERSION=14.3.0
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -36,6 +45,9 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
CWD=$(pwd)
@@ -90,6 +102,14 @@ cp -a \
AUTHORS COPYING INSTALL NEWS README \
$PKG/usr/doc/sox-$VERSION
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/ap/sqlite/sqlite.SlackBuild b/source/ap/sqlite/sqlite.SlackBuild
index ffc75b33..c2754bc2 100755
--- a/source/ap/sqlite/sqlite.SlackBuild
+++ b/source/ap/sqlite/sqlite.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for sqlite
# Copyright 2006 Martin Lefebvre <dadexter@gmail.com>
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,12 +23,26 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-PRGNAM=sqlite
-VERSION=3.6.14.2
-ARCH=${ARCH:-x86_64}
-NUMJOBS=${NUMJOBS:-" -j7 "}
+PKGNAM=sqlite
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
@@ -38,18 +52,17 @@ elif [ "$ARCH" = "i686" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-$PRGNAM
-
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1
-cd $PRGNAM-$VERSION || exit 1
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
chown -R root.root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -94,18 +107,18 @@ gzip -9 $PKG/usr/man/man1/sqlite3.1
sed -i 's|Libs: -L${libdir} -lsqlite3|Libs: -L${libdir} -lsqlite3 -ldl|g' \
$PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/sqlite3.pc
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
README* VERSION \
- $PKG/usr/doc/$PRGNAM-$VERSION
+ $PKG/usr/doc/$PKGNAM-$VERSION
# Add a COPYRIGHT file -- http://www.sqlite.org/copyright.html
-zcat $CWD/COPYRIGHT.gz > $PKG/usr/doc/$PRGNAM-$VERSION/COPYRIGHT
-rm -rf $PKG/usr/doc/$PRGNAM-$VERSION/CVS
+zcat $CWD/COPYRIGHT.gz > $PKG/usr/doc/$PKGNAM-$VERSION/COPYRIGHT
+rm -rf $PKG/usr/doc/$PKGNAM-$VERSION/CVS
find $PKG/usr/doc -type f -exec chmod 0644 {} \;
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
-/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/ap/sudo/sudo.SlackBuild b/source/ap/sudo/sudo.SlackBuild
index c170e868..4d6b898e 100755
--- a/source/ap/sudo/sudo.SlackBuild
+++ b/source/ap/sudo/sudo.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,10 +21,20 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=1.6.8p12
-ARCH=${ARCH:-x86_64}
+PKGNAM=sudo
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
NUMJOBS=${NUMJOBS:-" -j7 "}
CWD=$(pwd)
@@ -34,7 +44,9 @@ PKG=$TMP/package-sudo
rm -rf $PKG
mkdir -p $TMP $PKG
-if [ "$ARCH" = "i486" ]; then
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+elif [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -54,11 +66,24 @@ find . \
-exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
-./configure --prefix=/usr --sbindir=/usr/sbin --with-getpass --with-C2
+./configure \
+ --prefix=/usr \
+ --sbindir=/usr/sbin \
+ --mandir=/usr/man \
+ --with-getpass \
+ --with-C2 \
+ --with-env-editor \
+ --disable-pam-session \
+ --with-pam=no \
+ --build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
+# Create the timestamp directory
+mkdir -p $PKG/var/run/sudo
+chmod 700 $PKG/var/run/sudo
+
( cd $PKG/usr/bin
chmod 4711 sudo
ln -sf sudo sudoedit
@@ -77,10 +102,18 @@ mv $PKG/etc/sudoers $PKG/etc/sudoers.new
mkdir -p $PKG/usr/doc/sudo-$VERSION
cp -a \
BUGS HISTORY INSTALL LICENSE PORTING README* \
- RUNSON TODO TROUBLESHOOTING UPGRADE \
+ RUNSON TODO TROUBLESHOOTING UPGRADE WHATSNEW \
$PKG/usr/doc/sudo-$VERSION
chmod 644 $PKG/usr/doc/sudo-$VERSION/*
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
diff --git a/source/ap/sysstat/doinst.sh b/source/ap/sysstat/doinst.sh
new file mode 100644
index 00000000..b0f71a91
--- /dev/null
+++ b/source/ap/sysstat/doinst.sh
@@ -0,0 +1,34 @@
+
+# Since /etc/sysstat/sysstat used to be the init script and now it is
+# a config file, if we find an init script here, we have to move it
+# out of the way:
+if grep -wq "sadc was successfully launched" etc/sysstat/sysstat 1> /dev/null 2> /dev/null ; then
+ mv etc/sysstat/sysstat etc/sysstat/sysstat.obsolete.use.etc.rc.d.rc.sysstat
+fi
+
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+config etc/sysstat/sysstat.new
+
+# Keep same perms on rc.sysstat.new:
+if [ -e etc/rc.d/rc.sysstat ]; then
+ cp -a etc/rc.d/rc.sysstat etc/rc.d/rc.sysstat.new.incoming
+ cat etc/rc.d/rc.sysstat.new > etc/rc.d/rc.sysstat.new.incoming
+ mv etc/rc.d/rc.sysstat.new.incoming etc/rc.d/rc.sysstat.new
+fi
+
+# There's no reason for a user to edit rc.sysstat, so overwrite it:
+if [ -r etc/rc.d/rc.sysstat.new ]; then
+ mv etc/rc.d/rc.sysstat.new etc/rc.d/rc.sysstat
+fi
+
diff --git a/source/ap/sysstat/slack-desc b/source/ap/sysstat/slack-desc
index e36d25ff..059836bf 100644
--- a/source/ap/sysstat/slack-desc
+++ b/source/ap/sysstat/slack-desc
@@ -6,14 +6,14 @@
# leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
-sysstat: sysstat (system performance monitoring tools)
+sysstat: sysstat (System performance monitoring tools)
sysstat:
sysstat: The sysstat utilities are a collection of performance monitoring
-sysstat: tools for Linux. These include sar, sadf, mpstat, iostat and sa
-sysstat: tools.
+sysstat: tools for Linux. These include the iostat, mpstat, pidstat, sadf,
+sysstat: and sar tools.
sysstat:
sysstat: The sysstat utilities were written by Sebastien Godard.
sysstat:
-sysstat:
-sysstat:
+sysstat: For more information, see the sysstat web site:
+sysstat: http://pagesperso-orange.fr/sebastien.godard/
sysstat:
diff --git a/source/ap/sysstat/sysstat.SlackBuild b/source/ap/sysstat/sysstat.SlackBuild
index 399bb4bd..5f5c0cfb 100755
--- a/source/ap/sysstat/sysstat.SlackBuild
+++ b/source/ap/sysstat/sysstat.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,13 +22,42 @@
PKGNAM=sysstat
-VERSION=${VERSION:-7.0.0}
-ARCH=${ARCH:-x86_64}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
-if [ "$ARCH" = "x86_64" ]; then
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+ ARCHQUADLET=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+ ARCHQUADLET=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+ ARCHQUADLET=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ ARCHQUADLET=""
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-O2 -march=armv4t"
+ LIBDIRSUFFIX=""
+ ARCHQUADLET="-gnueabi"
else
+ SLKCFLAGS="-O2"
+ ARCHQUADLET=""
LIBDIRSUFFIX=""
fi
@@ -40,8 +69,8 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf ${PKGNAM}-${VERSION}
-tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2
-cd ${PKGNAM}-$VERSION
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
+cd ${PKGNAM}-$VERSION || exit 1
# Make sure ownerships and permissions are sane:
chown -R root:root .
@@ -51,25 +80,31 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Put the config file in /etc/sysstat, not /etc/sysconfig (a Red Hat thing):
-zcat $CWD/sysstat.etc.sysstat.diff.gz | patch -p1 --verbose || exit 1
-
-# PREFIX is hardcoded in some places, so this is just easier:
-zcat $CWD/sysstat.prefix.usr.diff.gz | patch -p1 --verbose || exit 1
-
-# Don't use /tmp in a script root will probably run... that's not good.
-zcat $CWD/sysstat.var.run.diff.gz | patch -p1 --verbose || exit 1
-
-make SA_LIB_DIR=/usr/lib${LIBDIRSUFFIX}/sa DESTDIR=$PKG || exit 1
-make install SA_LIB_DIR=/usr/lib${LIBDIRSUFFIX}/sa DESTDIR=$PKG || exit 1
-
-# Yeah, technically this is an init script that could go in /etc/rc.d/, but
-# I'd rather not put too many things in there. If you need this, I'm sure
-# you will find it here:
-mkdir -p $PKG/etc/sysstat
-cp -a sysstat $PKG/etc/sysstat/sysstat
-chown root:root $PKG/etc/sysstat/sysstat
-chmod 755 $PKG/etc/sysstat/sysstat
+# Configure:
+CFLAGS="$SLKCFLAGS -DSADC_PATH=/usr/lib$LIBDIRSUFFIX/sa/sadc" \
+./configure \
+ --disable-man-group \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ conf_dir=/etc/sysstat \
+ sa_lib_dir=/usr/lib$LIBDIRSUFFIX/sa \
+ --libdir=/usr/lib$LIBDIRSUFFIX \
+ --infodir=/usr/info \
+ --docdir=/usr/doc/sysstat-$VERSION \
+ --mandir=/usr/man \
+ --disable-static \
+ --build=$ARCH-slackware-linux$ARCHQUADLET || exit 1
+
+# Build and install:
+make $NUMJOBS || make || exit 1
+make install IGNORE_MAN_GROUP=y DESTDIR=$PKG || exit 1
+
+mv $PKG/etc/sysstat/sysstat $PKG/etc/sysstat/sysstat.new
+
+mkdir -p $PKG/etc/rc.d
+# Cosmetic touches:
+sed -i 's?/etc/rc.d/init.d/sysstat?/etc/rc.d/rc.sysstat?g' sysstat
+install -o0 -g0 -vpm644 sysstat $PKG/etc/rc.d/rc.sysstat.new
# Strip binaries:
( cd $PKG
@@ -92,14 +127,30 @@ if [ -d $PKG/usr/man ]; then
)
fi
-# Fix the documentation directory to preserve timestamps:
-mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
-rm -f $PKG/usr/doc/${PKGNAM}-$VERSION/*
+# Adjust the docs so that they are Slackware-locationised:
+# We ignore the 'CHANGES' since they aren't relevant to the running of the system.
+sed -i 's?/etc/sysconfig?/etc/sysstat?g' $PKG/usr/doc/$PKGNAM-$VERSION/{README,FAQ}
+# "make install" installs the docs but doesn't preserve the time stamps:
+for docfile in $( cd $PKG/usr/doc/$PKGNAM-$VERSION ; ls -1 ) ; do
+ touch -d "$( find $docfile -printf "%t\n" )" $PKG/usr/doc/$PKGNAM-$VERSION/$docfile
+done
+# Add crontab example scripts:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION/cron-examples
cp -a \
- COPYING CREDITS FAQ README TODO sysstat-7.0.0.lsm \
- $PKG/usr/doc/${PKGNAM}-$VERSION
+ crontab sysstat.cron.daily sysstat.cron.hourly sysstat.crond \
+ sysstat.crond.sample \
+ $PKG/usr/doc/${PKGNAM}-$VERSION/cron-examples
+
+# If there's a CHANGES file, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r CHANGES ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat CHANGES | head -n 1000 > $DOCSDIR/CHANGES
+ touch -r CHANGES $DOCSDIR/CHANGES
+fi
mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $TMP/package-${PKGNAM}
diff --git a/source/ap/sysstat/sysstat.etc.sysstat.diff b/source/ap/sysstat/sysstat.etc.sysstat.diff
deleted file mode 100644
index f5cf1521..00000000
--- a/source/ap/sysstat/sysstat.etc.sysstat.diff
+++ /dev/null
@@ -1,46 +0,0 @@
---- ./Makefile.orig 2006-07-05 10:46:04.000000000 -0500
-+++ ./Makefile 2006-08-14 21:40:38.000000000 -0500
-@@ -34,7 +34,7 @@
- MAN8_DIR = $(MAN_DIR)/man8
- DOC_DIR = $(PREFIX)/doc/sysstat-$(VERSION)
- NLS_DIR = $(PREFIX)/share/locale
--SYSCONFIG_DIR = /etc/sysconfig
-+SYSCONFIG_DIR = /etc/sysstat
-
- # Compiler flags
- CFLAGS = -Wall -Wstrict-prototypes -pipe -O2 -fno-strength-reduce
---- ./sa2.in.orig 2006-06-09 03:17:26.000000000 -0500
-+++ ./sa2.in 2006-08-14 21:38:35.000000000 -0500
-@@ -7,7 +7,7 @@
- # make history configurable
- #
- HISTORY=7
--[ -r /etc/sysconfig/sysstat ] && . /etc/sysconfig/sysstat
-+[ -r /etc/sysstat/sysstat ] && . /etc/sysstat/sysstat
- [ ${HISTORY} -gt 28 ] && HISTORY=28
- S_TIME_FORMAT=ISO ; export S_TIME_FORMAT
- umask 0022
---- ./README.orig 2006-07-05 10:51:54.000000000 -0500
-+++ ./README 2006-08-14 21:39:27.000000000 -0500
-@@ -91,8 +91,8 @@
- ${PREFIX}/doc/sysstat-x.y.z/*
- /var/log/sa
- ${INIT_DIR}/sysstat
--/etc/sysconfig/sysstat
--/etc/sysconfig/sysstat.ioconf
-+/etc/sysstat/sysstat
-+/etc/sysstat/sysstat.ioconf
- /etc/cron.d/sysstat
- /etc/rc.d/rc.sysstat for [SLACKWARE]
- ${RC_DIR}/rc2.d/S03sysstat
---- ./ioconf.h.orig 2006-07-09 03:19:06.000000000 -0500
-+++ ./ioconf.h 2006-08-14 21:36:48.000000000 -0500
-@@ -20,7 +20,7 @@
- #define MAX_BLKDEV 255
- #endif
-
--#define IOCONF "/etc/sysconfig/sysstat.ioconf"
-+#define IOCONF "/etc/sysstat/sysstat.ioconf"
-
- #define K_NODEV "nodev"
-
diff --git a/source/ap/sysstat/sysstat.prefix.usr.diff b/source/ap/sysstat/sysstat.prefix.usr.diff
deleted file mode 100644
index c7c526b4..00000000
--- a/source/ap/sysstat/sysstat.prefix.usr.diff
+++ /dev/null
@@ -1,42 +0,0 @@
---- ./build/Configure.sh.orig 2006-06-09 03:21:27.000000000 -0500
-+++ ./build/Configure.sh 2006-08-14 21:54:37.000000000 -0500
-@@ -10,10 +10,10 @@
-
- # Installation directory
-
--PREFIX=`${ASK} 'Installation directory:' "/usr/local" "prefix"`
-+PREFIX=`${ASK} 'Installation directory:' "/usr" "prefix"`
- if [ ! -d ${PREFIX} ]; then
-- echo "WARNING: Directory ${PREFIX} not found: Using default (/usr/local)."
-- PREFIX=/usr/local
-+ echo "WARNING: Directory ${PREFIX} not found: Using default (/usr)."
-+ PREFIX=/usr
- fi
-
- # sadc directory
---- ./build/CONFIG.def.orig 2006-06-09 03:20:56.000000000 -0500
-+++ ./build/CONFIG.def 2006-08-14 21:54:19.000000000 -0500
-@@ -2,8 +2,8 @@
- # (C) 2000-2006 Sebastien GODARD (sysstat <at> wanadoo.fr)
-
- # Directories
--PREFIX = /usr/local
--SA_LIB_DIR = /usr/local/lib/sa
-+PREFIX = /usr
-+SA_LIB_DIR = /usr/lib/sa
- SADC_PATH = ${SA_LIB_DIR}/sadc
- SA_DIR = /var/log/sa
- # Do not use ${PREFIX}/share/man by default: not necessarily in man path!
---- ./build/CONFIG.orig 2006-07-09 04:47:17.000000000 -0500
-+++ ./build/CONFIG 2006-08-14 21:54:10.000000000 -0500
-@@ -2,8 +2,8 @@
- # (C) 2000-2006 Sebastien GODARD (sysstat <at> wanadoo.fr)
-
- # Directories
--PREFIX = /usr/local
--SA_LIB_DIR = /usr/local/lib/sa
-+PREFIX = /usr
-+SA_LIB_DIR = /usr/lib/sa
- SADC_PATH = ${SA_LIB_DIR}/sadc
- SA_DIR = /var/log/sa
- # Do not use ${PREFIX}/share/man by default: not necessarily in man path!
diff --git a/source/ap/sysstat/sysstat.var.run.diff b/source/ap/sysstat/sysstat.var.run.diff
deleted file mode 100644
index 3b54f37e..00000000
--- a/source/ap/sysstat/sysstat.var.run.diff
+++ /dev/null
@@ -1,28 +0,0 @@
---- ./sysstat.in.orig 2006-07-05 10:58:00.000000000 -0500
-+++ ./sysstat.in 2006-08-14 22:03:13.000000000 -0500
-@@ -22,21 +22,21 @@
-
- RETVAL=0
- # Remove flag indicating that sadc was successfully launched
--rm -f /tmp/sysstat.run
-+rm -f /var/run/sysstat.run
-
- # See how we were called.
- case "$1" in
- start)
- echo -n "Calling the system activity data collector (sadc): "
-- SU SA_LIB_DIR/sadc -F -L - && touch /tmp/sysstat.run QUOTE
-+ SU SA_LIB_DIR/sadc -F -L - && touch /var/run/sysstat.run QUOTE
-
- # Try to guess if sadc was successfully launched. The difficulty
- # here is that the exit code is lost when the above command is
- # run via "su foo -c ..."
-- if [ ! -f /tmp/sysstat.run ]; then
-+ if [ ! -f /var/run/sysstat.run ]; then
- RETVAL=1
- else
-- rm -f /tmp/sysstat.run
-+ rm -f /var/run/sysstat.run
- fi
- echo
- ;;
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 ///
diff --git a/source/ap/vim/vim-gvim.SlackBuild b/source/ap/vim/vim-gvim.SlackBuild
index 8c24b51d..31ceb1de 100755
--- a/source/ap/vim/vim-gvim.SlackBuild
+++ b/source/ap/vim/vim-gvim.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,10 +24,20 @@
VIMVER=7.2
# This is the directory in the VIM source archive to cd into.
DIRVER=72
-ARCH=${ARCH:-x86_64}
-NUMJOBS=${NUMJOBS:-" -j7 "}
BUILD=${BUILD:-1}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
PYVER=$(python -V 2>&1 | cut -f 2 -d' ' | cut -f 1-2 -d.)
if [ "$ARCH" = "x86_64" ]; then
@@ -82,6 +92,21 @@ CFLAGS="$SLKCFLAGS" LDFLAGS="$SLKLDFLAGS" \
}
cd $TMP/vim$DIRVER
+
+# If there's no syntax update, create one:
+if ! ls $CWD/vim-runtime-syntax-* 1> /dev/null 2> /dev/null ; then
+ rm -rf runtime/syntax.orig
+ cp -a runtime/syntax runtime/syntax.orig
+ echo "Fetching vim syntax updates from ftp.nluug.nl..."
+ rsync -avzcP ftp.nluug.nl::Vim/runtime/syntax/ runtime/syntax/
+ diff -u -r --new-file runtime/syntax.orig runtime/syntax | gzip -9c > $CWD/vim-runtime-syntax-$(date +%Y%m%d).diff.gz
+ rm -rf runtime/syntax
+ mv runtime/syntax.orig runtime/syntax
+fi
+
+# Apply the syntax update:
+zcat $CWD/vim-runtime-syntax-*.diff.gz | patch -p0 --verbose || exit 1
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
diff --git a/source/ap/vim/vim-runtime-syntax-20100510.diff b/source/ap/vim/vim-runtime-syntax-20100510.diff
new file mode 100644
index 00000000..f8d901d7
--- /dev/null
+++ b/source/ap/vim/vim-runtime-syntax-20100510.diff
@@ -0,0 +1,7471 @@
+diff -u -r --new-file runtime/syntax.orig/2html.vim runtime/syntax/2html.vim
+--- runtime/syntax.orig/2html.vim 2008-07-17 16:03:05.000000000 -0500
++++ runtime/syntax/2html.vim 2009-07-26 06:44:10.000000000 -0500
+@@ -1,13 +1,18 @@
+ " Vim syntax support file
+ " Maintainer: Bram Moolenaar <Bram@vim.org>
+-" Last Change: 2008 Jul 17
++" Last Change: 2009 Jul 14
+ " (modified by David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>)
+ " (XHTML support by Panagiotis Issaris <takis@lumumba.luc.ac.be>)
+ " (made w3 compliant by Edd Barrett <vext01@gmail.com>)
+ " (added html_font. Edd Barrett <vext01@gmail.com>)
++" (dynamic folding by Ben Fritz <fritzophrenic@gmail.com>)
+
+ " Transform a file into HTML, using the current syntax highlighting.
+
++" this file uses line continuations
++let s:cpo_sav = &cpo
++set cpo-=C
++
+ " Number lines when explicitely requested or when `number' is set
+ if exists("html_number_lines")
+ let s:numblines = html_number_lines
+@@ -22,6 +27,37 @@
+ let s:htmlfont = "monospace"
+ endif
+
++" make copies of the user-defined settings that we may overrule
++if exists("html_dynamic_folds")
++ let s:html_dynamic_folds = 1
++endif
++if exists("html_hover_unfold")
++ let s:html_hover_unfold = 1
++endif
++if exists("html_use_css")
++ let s:html_use_css = 1
++endif
++
++" hover opening implies dynamic folding
++if exists("s:html_hover_unfold")
++ let s:html_dynamic_folds = 1
++endif
++
++" dynamic folding with no foldcolumn implies hover opens
++if exists("s:html_dynamic_folds") && exists("html_no_foldcolumn")
++ let s:html_hover_unfold = 1
++endif
++
++" ignore folding overrides dynamic folding
++if exists("html_ignore_folding") && exists("s:html_dynamic_folds")
++ unlet s:html_dynamic_folds
++endif
++
++" dynamic folding implies css
++if exists("s:html_dynamic_folds")
++ let s:html_use_css = 1
++endif
++
+ " When not in gui we can only guess the colors.
+ if has("gui_running")
+ let s:whatterm = "gui"
+@@ -62,7 +98,7 @@
+ endfun
+ endif
+
+-if !exists("html_use_css")
++if !exists("s:html_use_css")
+ " Return opening HTML tag for given highlight id
+ function! s:HtmlOpening(id)
+ let a = ""
+@@ -150,6 +186,26 @@
+ return a
+ endfun
+
++if exists("s:html_dynamic_folds")
++
++ " compares two folds as stored in our list of folds
++ " A fold is "less" than another if it starts at an earlier line number,
++ " or ends at a later line number, ties broken by fold level
++ function! s:FoldCompare(f1, f2)
++ if a:f1.firstline != a:f2.firstline
++ " put it before if it starts earlier
++ return a:f1.firstline - a:f2.firstline
++ elseif a:f1.lastline != a:f2.lastline
++ " put it before if it ends later
++ return a:f2.lastline - a:f1.lastline
++ else
++ " if folds begin and end on the same lines, put lowest fold level first
++ return a:f1.level - a:f2.level
++ endif
++ endfunction
++
++endif
++
+ " Figure out proper MIME charset from the 'encoding' option.
+ if exists("html_use_encoding")
+ let s:html_encoding = html_use_encoding
+@@ -223,13 +279,13 @@
+ let s:tag_close = '>'
+ endif
+
+-" Cache html_no_pre incase we have to turn it on for non-css mode
++" Cache html_no_pre in case we have to turn it on for non-css mode
+ if exists("html_no_pre")
+ let s:old_html_no_pre = html_no_pre
+ endif
+
+-if !exists("html_use_css")
+- " Cant put font tags in <pre>
++if !exists("s:html_use_css")
++ " Can't put font tags in <pre>
+ let html_no_pre=1
+ endif
+
+@@ -251,9 +307,86 @@
+ exe "normal! a<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:html_encoding . '"' . s:tag_close . "\n\e"
+ endif
+
+-if exists("html_use_css")
+- exe "normal! a<style type=\"text/css\">\n<!--\n-->\n</style>\n\e"
++if exists("s:html_use_css")
++ if exists("s:html_dynamic_folds")
++ if exists("s:html_hover_unfold")
++ " if we are doing hover_unfold, use css 2 with css 1 fallback for IE6
++ exe "normal! a".
++ \ "<style type=\"text/css\">\n<!--\n".
++ \ ".FoldColumn { text-decoration: none; white-space: pre; }\n\n".
++ \ "body * { margin: 0; padding: 0; }\n".
++ \ "\n".
++ \ ".open-fold > .Folded { display: none; }\n".
++ \ ".open-fold > .fulltext { display: inline; }\n".
++ \ ".closed-fold > .fulltext { display: none; }\n".
++ \ ".closed-fold > .Folded { display: inline; }\n".
++ \ "\n".
++ \ ".open-fold > .toggle-open { display: none; }\n".
++ \ ".open-fold > .toggle-closed { display: inline; }\n".
++ \ ".closed-fold > .toggle-open { display: inline; }\n".
++ \ ".closed-fold > .toggle-closed { display: none; }\n"
++ exe "normal! a\n/* opening a fold while hovering won't be supported by IE6 and other\n".
++ \ "similar browsers, but it should fail gracefully. */\n".
++ \ ".closed-fold:hover > .fulltext { display: inline; }\n".
++ \ ".closed-fold:hover > .toggle-filler { display: none; }\n".
++ \ ".closed-fold:hover > .Folded { display: none; }\n"
++ exe "normal! a-->\n</style>\n"
++ exe "normal! a<!--[if lt IE 7]>".
++ \ "<style type=\"text/css\">\n".
++ \ ".open-fold .Folded { display: none; }\n".
++ \ ".open-fold .fulltext { display: inline; }\n".
++ \ ".open-fold .toggle-open { display: none; }\n".
++ \ ".closed-fold .toggle-closed { display: inline; }\n".
++ \ "\n".
++ \ ".closed-fold .fulltext { display: none; }\n".
++ \ ".closed-fold .Folded { display: inline; }\n".
++ \ ".closed-fold .toggle-open { display: inline; }\n".
++ \ ".closed-fold .toggle-closed { display: none; }\n".
++ \ "</style>\n".
++ \ "<![endif]-->\n"
++ else
++ " if we aren't doing hover_unfold, use CSS 1 only
++ exe "normal! a<style type=\"text/css\">\n<!--\n".
++ \ ".FoldColumn { text-decoration: none; white-space: pre; }\n\n".
++ \ ".open-fold .Folded { display: none; }\n".
++ \ ".open-fold .fulltext { display: inline; }\n".
++ \ ".open-fold .toggle-open { display: none; }\n".
++ \ ".closed-fold .toggle-closed { display: inline; }\n".
++ \ "\n".
++ \ ".closed-fold .fulltext { display: none; }\n".
++ \ ".closed-fold .Folded { display: inline; }\n".
++ \ ".closed-fold .toggle-open { display: inline; }\n".
++ \ ".closed-fold .toggle-closed { display: none; }\n".
++ \ "-->\n</style>\n"
++ endif
++ else
++ " if we aren't doing any dynamic folding, no need for any special rules
++ exe "normal! a<style type=\"text/css\">\n<!--\n-->\n</style>\n\e"
++ endif
++endif
++
++" insert javascript to toggle folds open and closed
++if exists("s:html_dynamic_folds")
++ exe "normal! a\n".
++ \ "<script type='text/javascript'>\n".
++ \ "<!--\n".
++ \ "function toggleFold(objID)\n".
++ \ "{\n".
++ \ " var fold;\n".
++ \ " fold = document.getElementById(objID);\n".
++ \ " if(fold.className == 'closed-fold')\n".
++ \ " {\n".
++ \ " fold.className = 'open-fold';\n".
++ \ " }\n".
++ \ " else if (fold.className == 'open-fold')\n".
++ \ " {\n".
++ \ " fold.className = 'closed-fold';\n".
++ \ " }\n".
++ \ "}\n".
++ \ "-->\n".
++ \ "</script>\n\e"
+ endif
++
+ if exists("html_no_pre")
+ exe "normal! a</head>\n<body>\n\e"
+ else
+@@ -265,7 +398,81 @@
+ " List of all id's
+ let s:idlist = ","
+
+-" Loop over all lines in the original text.
++" First do some preprocessing for dynamic folding. Do this for the entire file
++" so we don't accidentally start within a closed fold or something.
++let s:allfolds = []
++
++if exists("s:html_dynamic_folds")
++ let s:lnum = 1
++ let s:end = line('$')
++ " save the fold text and set it to the default so we can find fold levels
++ let s:foldtext_save = &foldtext
++ set foldtext&
++
++ " we will set the foldcolumn in the html to the greater of the maximum fold
++ " level and the current foldcolumn setting
++ let s:foldcolumn = &foldcolumn
++
++ " get all info needed to describe currently closed folds
++ while s:lnum < s:end
++ if foldclosed(s:lnum) == s:lnum
++ " default fold text has '+-' and then a number of dashes equal to fold
++ " level, so subtract 2 from index of first non-dash after the dashes
++ " in order to get the fold level of the current fold
++ let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
++ if s:level+1 > s:foldcolumn
++ let s:foldcolumn = s:level+1
++ endif
++ " store fold info for later use
++ let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
++ call add(s:allfolds, s:newfold)
++ " open the fold so we can find any contained folds
++ execute s:lnum."foldopen"
++ else
++ let s:lnum = s:lnum + 1
++ endif
++ endwhile
++
++ " close all folds to get info for originally open folds
++ silent! %foldclose!
++ let s:lnum = 1
++
++ " the originally open folds will be all folds we encounter that aren't
++ " already in the list of closed folds
++ while s:lnum < s:end
++ if foldclosed(s:lnum) == s:lnum
++ " default fold text has '+-' and then a number of dashes equal to fold
++ " level, so subtract 2 from index of first non-dash after the dashes
++ " in order to get the fold level of the current fold
++ let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
++ if s:level+1 > s:foldcolumn
++ let s:foldcolumn = s:level+1
++ endif
++ let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
++ " only add the fold if we don't already have it
++ if empty(s:allfolds) || index(s:allfolds, s:newfold) == -1
++ let s:newfold.type = "open-fold"
++ call add(s:allfolds, s:newfold)
++ endif
++ " open the fold so we can find any contained folds
++ execute s:lnum."foldopen"
++ else
++ let s:lnum = s:lnum + 1
++ endif
++ endwhile
++
++ " sort the folds so that we only ever need to look at the first item in the
++ " list of folds
++ call sort(s:allfolds, "s:FoldCompare")
++
++ let &foldtext = s:foldtext_save
++ unlet s:foldtext_save
++
++ " close all folds again so we can get the fold text as we go
++ silent! %foldclose!
++endif
++
++" Now loop over all lines in the original text to convert to html.
+ " Use html_start_line and html_end_line if they are set.
+ if exists("html_start_line")
+ let s:lnum = html_start_line
+@@ -284,6 +491,15 @@
+ let s:end = line("$")
+ endif
+
++" stack to keep track of all the folds containing the current line
++let s:foldstack = []
++
++if s:numblines
++ let s:margin = strlen(s:end) + 1
++else
++ let s:margin = 0
++endif
++
+ if has('folding') && !exists('html_ignore_folding')
+ let s:foldfillchar = &fillchars[matchend(&fillchars, 'fold:')]
+ if s:foldfillchar == ''
+@@ -295,6 +511,7 @@
+ let s:difffillchar = '-'
+ endif
+
++let s:foldId = 0
+
+ while s:lnum <= s:end
+
+@@ -303,12 +520,7 @@
+ if s:filler > 0
+ let s:n = s:filler
+ while s:n > 0
+- if s:numblines
+- " Indent if line numbering is on
+- let s:new = repeat(s:LeadingSpace, strlen(s:end) + 1) . repeat(s:difffillchar, 3)
+- else
+- let s:new = repeat(s:difffillchar, 3)
+- endif
++ let s:new = repeat(s:difffillchar, 3)
+
+ if s:n > 2 && s:n < s:filler && !exists("html_whole_filler")
+ let s:new = s:new . " " . s:filler . " inserted lines "
+@@ -317,10 +529,16 @@
+
+ if !exists("html_no_pre")
+ " HTML line wrapping is off--go ahead and fill to the margin
+- let s:new = s:new . repeat(s:difffillchar, &columns - strlen(s:new))
++ let s:new = s:new . repeat(s:difffillchar, &columns - strlen(s:new) - s:margin)
++ else
++ let s:new = s:new . repeat(s:difffillchar, 3)
+ endif
+
+ let s:new = s:HtmlFormat(s:new, "DiffDelete")
++ if s:numblines
++ " Indent if line numbering is on; must be after escaping.
++ let s:new = repeat(s:LeadingSpace, s:margin) . s:new
++ endif
+ exe s:newwin . "wincmd w"
+ exe "normal! a" . s:new . s:HtmlEndline . "\n\e"
+ exe s:orgwin . "wincmd w"
+@@ -333,16 +551,18 @@
+
+ " Start the line with the line number.
+ if s:numblines
+- let s:new = repeat(' ', strlen(s:end) - strlen(s:lnum)) . s:lnum . ' '
++ let s:numcol = repeat(' ', s:margin - 1 - strlen(s:lnum)) . s:lnum . ' '
+ else
+- let s:new = ""
++ let s:numcol = ""
+ endif
+
+- if has('folding') && !exists('html_ignore_folding') && foldclosed(s:lnum) > -1
++ let s:new = ""
++
++ if has('folding') && !exists('html_ignore_folding') && foldclosed(s:lnum) > -1 && !exists('s:html_dynamic_folds')
+ "
+- " This is the beginning of a folded block
++ " This is the beginning of a folded block (with no dynamic folding)
+ "
+- let s:new = s:new . foldtextresult(s:lnum)
++ let s:new = s:numcol . foldtextresult(s:lnum)
+ if !exists("html_no_pre")
+ " HTML line wrapping is off--go ahead and fill to the margin
+ let s:new = s:new . repeat(s:foldfillchar, &columns - strlen(s:new))
+@@ -355,14 +575,96 @@
+
+ else
+ "
+- " A line that is not folded.
++ " A line that is not folded, or doing dynamic folding.
+ "
+ let s:line = getline(s:lnum)
+-
+ let s:len = strlen(s:line)
+
++ if exists("s:html_dynamic_folds")
++ " First insert a closing for any open folds that end on this line
++ while !empty(s:foldstack) && get(s:foldstack,0).lastline == s:lnum-1
++ let s:new = s:new."</span></span>"
++ call remove(s:foldstack, 0)
++ endwhile
++
++ " Now insert an opening any new folds that start on this line
++ let s:firstfold = 1
++ while !empty(s:allfolds) && get(s:allfolds,0).firstline == s:lnum
++ let s:foldId = s:foldId + 1
++ let s:new = s:new . "<span id='fold".s:foldId."' class='".s:allfolds[0].type."'>"
++
++ " Unless disabled, add a fold column for the opening line of a fold.
++ "
++ " Note that dynamic folds require using css so we just use css to take
++ " care of the leading spaces rather than using &nbsp; in the case of
++ " html_no_pre to make it easier
++ if !exists("html_no_foldcolumn")
++ " add fold column that can open the new fold
++ if s:allfolds[0].level > 1 && s:firstfold
++ let s:new = s:new . "<a class='toggle-open FoldColumn' href='javascript:toggleFold(\"fold".s:foldstack[0].id."\")'>"
++ let s:new = s:new . repeat('|', s:allfolds[0].level - 1) . "</a>"
++ endif
++ let s:new = s:new . "<a class='toggle-open FoldColumn' href='javascript:toggleFold(\"fold".s:foldId."\")'>+</a>"
++ let s:new = s:new . "<a class='toggle-open "
++ " If this is not the last fold we're opening on this line, we need
++ " to keep the filler spaces hidden if the fold is opened by mouse
++ " hover. If it is the last fold to open in the line, we shouldn't hide
++ " them, so don't apply the toggle-filler class.
++ if get(s:allfolds, 1, {'firstline': 0}).firstline == s:lnum
++ let s:new = s:new . "toggle-filler "
++ endif
++ let s:new = s:new . "FoldColumn' href='javascript:toggleFold(\"fold".s:foldId."\")'>"
++ let s:new = s:new . repeat(" ", s:foldcolumn - s:allfolds[0].level) . "</a>"
++
++ " add fold column that can close the new fold
++ let s:new = s:new . "<a class='toggle-closed FoldColumn' href='javascript:toggleFold(\"fold".s:foldId."\")'>"
++ if s:firstfold
++ let s:new = s:new . repeat('|', s:allfolds[0].level - 1)
++ endif
++ let s:new = s:new . "-"
++ " only add spaces if we aren't opening another fold on the same line
++ if get(s:allfolds, 1, {'firstline': 0}).firstline != s:lnum
++ let s:new = s:new . repeat(" ", s:foldcolumn - s:allfolds[0].level)
++ endif
++ let s:new = s:new . "</a>"
++ let s:firstfold = 0
++ endif
++
++ " add fold text, moving the span ending to the next line so collapsing
++ " of folds works correctly
++ let s:new = s:new . substitute(s:HtmlFormat(s:numcol . foldtextresult(s:lnum), "Folded"), '</span>', s:HtmlEndline.'\r\0', '')
++ let s:new = s:new . "<span class='fulltext'>"
++
++ " open the fold now that we have the fold text to allow retrieval of
++ " fold text for subsequent folds
++ execute s:lnum."foldopen"
++ call insert(s:foldstack, remove(s:allfolds,0))
++ let s:foldstack[0].id = s:foldId
++ endwhile
++
++ " Unless disabled, add a fold column for other lines.
++ "
++ " Note that dynamic folds require using css so we just use css to take
++ " care of the leading spaces rather than using &nbsp; in the case of
++ " html_no_pre to make it easier
++ if !exists("html_no_foldcolumn")
++ if empty(s:foldstack)
++ " add the empty foldcolumn for unfolded lines
++ let s:new = s:new . s:HtmlFormat(repeat(' ', s:foldcolumn), "FoldColumn")
++ else
++ " add the fold column for folds not on the opening line
++ if get(s:foldstack, 0).firstline < s:lnum
++ let s:new = s:new . "<a class='FoldColumn' href='javascript:toggleFold(\"fold".s:foldstack[0].id."\")'>"
++ let s:new = s:new . repeat('|', s:foldstack[0].level)
++ let s:new = s:new . repeat(' ', s:foldcolumn - s:foldstack[0].level) . "</a>"
++ endif
++ endif
++ endif
++ endif
++
++ " Now continue with the unfolded line text
+ if s:numblines
+- let s:new = s:HtmlFormat(s:new, "lnr")
++ let s:new = s:new . s:HtmlFormat(s:numcol, "lnr")
+ endif
+
+ " Get the diff attribute, if any.
+@@ -380,7 +682,7 @@
+ while s:col <= s:len && s:id == diff_hlID(s:lnum, s:col) | let s:col = s:col + 1 | endwhile
+ if s:len < &columns && !exists("html_no_pre")
+ " Add spaces at the end to mark the changed line.
+- let s:line = s:line . repeat(' ', &columns - s:len)
++ let s:line = s:line . repeat(' ', &columns - virtcol([s:lnum, s:len]) - s:margin)
+ let s:len = &columns
+ endif
+ else
+@@ -393,11 +695,27 @@
+
+ " Expand tabs
+ let s:expandedtab = strpart(s:line, s:startcol - 1, s:col - s:startcol)
+- let idx = stridx(s:expandedtab, "\t")
+- while idx >= 0
+- let i = &ts - ((idx + s:startcol - 1) % &ts)
+- let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', i), '')
+- let idx = stridx(s:expandedtab, "\t")
++ let s:offset = 0
++ let s:idx = stridx(s:expandedtab, "\t")
++ while s:idx >= 0
++ if has("multi_byte_encoding")
++ if s:startcol + s:idx == 1
++ let s:i = &ts
++ else
++ if s:idx == 0
++ let s:prevc = matchstr(s:line, '.\%' . (s:startcol + s:idx + s:offset) . 'c')
++ else
++ let s:prevc = matchstr(s:expandedtab, '.\%' . (s:idx + 1) . 'c')
++ endif
++ let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)])
++ let s:i = &ts - (s:vcol % &ts)
++ endif
++ let s:offset -= s:i - 1
++ else
++ let s:i = &ts - ((s:idx + s:startcol - 1) % &ts)
++ endif
++ let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '')
++ let s:idx = stridx(s:expandedtab, "\t")
+ endwhile
+
+ " Output the text with the same synID, with class set to {s:id_name}
+@@ -415,8 +733,22 @@
+ " Finish with the last line
+ exe s:newwin . "wincmd w"
+
++if exists("s:html_dynamic_folds")
++ " finish off any open folds
++ while !empty(s:foldstack)
++ exe "normal! a</span></span>"
++ call remove(s:foldstack, 0)
++ endwhile
++
++ " add fold column to the style list if not already there
++ let s:id = hlID('FoldColumn')
++ if stridx(s:idlist, "," . s:id . ",") == -1
++ let s:idlist = s:idlist . s:id . ","
++ endif
++endif
++
+ " Close off the font tag that encapsulates the whole <body>
+-if !exists("html_use_css")
++if !exists("s:html_use_css")
+ exe "normal! a</font>\e"
+ endif
+
+@@ -428,7 +760,7 @@
+
+
+ " Now, when we finally know which, we define the colors and styles
+-if exists("html_use_css")
++if exists("s:html_use_css")
+ 1;/<style type="text/+1
+ endif
+
+@@ -445,7 +777,7 @@
+ " Normal/global attributes
+ " For Netscape 4, set <body> attributes too, though, strictly speaking, it's
+ " incorrect.
+-if exists("html_use_css")
++if exists("s:html_use_css")
+ if exists("html_no_pre")
+ execute "normal! A\nbody { color: " . s:fgc . "; background-color: " . s:bgc . "; font-family: ". s:htmlfont ."; }\e"
+ else
+@@ -455,12 +787,12 @@
+ execute "normal! ^cwbody\e"
+ endif
+ else
+- execute '%s:<body>:<body bgcolor="' . s:bgc . '" text="' . s:fgc . '"><font face="'. s:htmlfont .'">'
++ execute '%s:<body>:<body bgcolor="' . s:bgc . '" text="' . s:fgc . '"><font face="'. s:htmlfont .'">'
+ endif
+
+ " Line numbering attributes
+ if s:numblines
+- if exists("html_use_css")
++ if exists("s:html_use_css")
+ execute "normal! A\n.lnr { " . s:CSS1(hlID("LineNr")) . "}\e"
+ else
+ execute '%s+^<span class="lnr">\([^<]*\)</span>+' . s:HtmlOpening(hlID("LineNr")) . '\1' . s:HtmlClosing(hlID("LineNr")) . '+g'
+@@ -479,14 +811,14 @@
+ " If the class has some attributes, export the style, otherwise DELETE all
+ " its occurences to make the HTML shorter
+ if s:attr != ""
+- if exists("html_use_css")
++ if exists("s:html_use_css")
+ execute "normal! A\n." . s:id_name . " { " . s:attr . "}"
+ else
+ execute '%s+<span class="' . s:id_name . '">\([^<]*\)</span>+' . s:HtmlOpening(s:id) . '\1' . s:HtmlClosing(s:id) . '+g'
+ endif
+ else
+ execute '%s+<span class="' . s:id_name . '">\([^<]*\)</span>+\1+ge'
+- if exists("html_use_css")
++ if exists("s:html_use_css")
+ 1;/<style type="text/+1
+ endif
+ endif
+@@ -531,16 +863,28 @@
+ " Save a little bit of memory (worth doing?)
+ unlet s:htmlfont
+ unlet s:old_et s:old_paste s:old_icon s:old_report s:old_title s:old_search
+-unlet s:whatterm s:idlist s:lnum s:end s:fgc s:bgc s:old_magic
++unlet s:whatterm s:idlist s:lnum s:end s:margin s:fgc s:bgc s:old_magic
+ unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:numblines
+-unlet s:orgwin s:newwin s:orgbufnr
++unlet! s:orgwin s:newwin s:orgbufnr s:idx s:i s:offset
+ if !v:profiling
+ delfunc s:HtmlColor
+ delfunc s:HtmlFormat
+ delfunc s:CSS1
+- if !exists("html_use_css")
++ if !exists("s:html_use_css")
+ delfunc s:HtmlOpening
+ delfunc s:HtmlClosing
+ endif
+ endif
+-silent! unlet s:diffattr s:difffillchar s:foldfillchar s:HtmlSpace s:LeadingSpace s:HtmlEndline
++silent! unlet s:diffattr s:difffillchar s:foldfillchar s:HtmlSpace s:LeadingSpace s:HtmlEndline s:firstfold s:foldcolumn
++unlet s:foldstack s:allfolds s:foldId s:numcol
++
++if exists("s:html_dynamic_folds")
++ delfunc s:FoldCompare
++endif
++
++silent! unlet s:html_dynamic_folds s:html_hover_unfold s:html_use_css
++
++let &cpo = s:cpo_sav
++unlet s:cpo_sav
++
++" vim: noet sw=2 sts=2
+diff -u -r --new-file runtime/syntax.orig/asm.vim runtime/syntax/asm.vim
+--- runtime/syntax.orig/asm.vim 2004-06-07 09:32:35.000000000 -0500
++++ runtime/syntax/asm.vim 2010-01-12 14:45:24.000000000 -0600
+@@ -1,10 +1,12 @@
+ " Vim syntax file
+ " Language: GNU Assembler
+-" Maintainer: Kevin Dahlhausen <kdahlhaus@yahoo.com>
+-" Last Change: 2002 Sep 19
++" Maintainer: Erik Wognsen <erik.wognsen@gmail.com>
++" Previous maintainer:
++" Kevin Dahlhausen <kdahlhaus@yahoo.com>
++" Last Change: 2010 Jan 9
+
+ " For version 5.x: Clear all syntax items
+-" For version 6.x: Quit when a syntax file was already loaded
++" For version 6.0 and later: Quit when a syntax file was already loaded
+ if version < 600
+ syntax clear
+ elseif exists("b:current_syntax")
+@@ -13,7 +15,6 @@
+
+ syn case ignore
+
+-
+ " storage types
+ syn match asmType "\.long"
+ syn match asmType "\.ascii"
+@@ -44,9 +45,8 @@
+ syn match hexNumber "0[xX][0-9a-fA-F]\+"
+ syn match binNumber "0[bB][0-1]*"
+
+-
+-syn match asmSpecialComment ";\*\*\*.*"
+-syn match asmComment ";.*"hs=s+1
++syn match asmComment "#.*"
++syn region asmComment start="/\*" end="\*/"
+
+ syn match asmInclude "\.include"
+ syn match asmCond "\.if"
+@@ -86,15 +86,9 @@
+ HiLink octNumber Number
+ HiLink binNumber Number
+
+- HiLink asmSpecialComment Comment
+ HiLink asmIdentifier Identifier
+ HiLink asmType Type
+
+- " My default color overrides:
+- " hi asmSpecialComment ctermfg=red
+- " hi asmIdentifier ctermfg=lightcyan
+- " hi asmType ctermbg=black ctermfg=brown
+-
+ delcommand HiLink
+ endif
+
+diff -u -r --new-file runtime/syntax.orig/bzr.vim runtime/syntax/bzr.vim
+--- runtime/syntax.orig/bzr.vim 2008-07-30 14:47:17.000000000 -0500
++++ runtime/syntax/bzr.vim 2009-01-28 10:23:50.000000000 -0600
+@@ -2,9 +2,14 @@
+ " Language: Bazaar (bzr) commit file
+ " Maintainer: Dmitry Vasiliev <dima at hlabs dot spb dot ru>
+ " URL: http://www.hlabs.spb.ru/vim/bzr.vim
+-" Revision: $Id: bzr.vim 683 2008-07-30 11:52:38Z hdima $
++" Last Change: 2009-01-27
+ " Filenames: bzr_log.*
+-" Version: 1.1
++" Version: 1.2.1
++"
++" Thanks:
++"
++" Gioele Barabucci
++" for idea of diff highlighting
+
+ " For version 5.x: Clear all syntax items.
+ " For version 6.x: Quit when a syntax file was already loaded.
+@@ -14,13 +19,21 @@
+ finish
+ endif
+
+-syn region bzrRegion start="^-\{14} This line and the following will be ignored -\{14}$" end="\%$" contains=ALL contains=@NoSpell
++if exists("bzr_highlight_diff")
++ syn include @Diff syntax/diff.vim
++endif
++
+ syn match bzrRemoved "^removed:$" contained
+ syn match bzrAdded "^added:$" contained
+ syn match bzrRenamed "^renamed:$" contained
+ syn match bzrModified "^modified:$" contained
+ syn match bzrUnchanged "^unchanged:$" contained
+ syn match bzrUnknown "^unknown:$" contained
++syn cluster Statuses contains=bzrRemoved,bzrAdded,bzrRenamed,bzrModified,bzrUnchanged,bzrUnknown
++if exists("bzr_highlight_diff")
++ syn cluster Statuses add=@Diff
++endif
++syn region bzrRegion start="^-\{14} This line and the following will be ignored -\{14}$" end="\%$" contains=@NoSpell,@Statuses
+
+ " Synchronization.
+ syn sync clear
+@@ -37,7 +50,6 @@
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+- HiLink bzrRegion Comment
+ HiLink bzrRemoved Constant
+ HiLink bzrAdded Identifier
+ HiLink bzrModified Special
+diff -u -r --new-file runtime/syntax.orig/c.vim runtime/syntax/c.vim
+--- runtime/syntax.orig/c.vim 2008-03-19 15:44:52.000000000 -0500
++++ runtime/syntax/c.vim 2009-11-28 06:31:38.000000000 -0600
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: C
+ " Maintainer: Bram Moolenaar <Bram@vim.org>
+-" Last Change: 2008 Mar 19
++" Last Change: 2009 Nov 17
+
+ " Quit when a (custom) syntax file was already loaded
+ if exists("b:current_syntax")
+@@ -16,8 +16,13 @@
+
+ syn keyword cTodo contained TODO FIXME XXX
+
++" It's easy to accidentally add a space after a backslash that was intended
++" for line continuation. Some compilers allow it, which makes it
++" unpredicatable and should be avoided.
++syn match cBadContinuation contained "\\\s\+$"
++
+ " cCommentGroup allows adding matches for special things in comments
+-syn cluster cCommentGroup contains=cTodo
++syn cluster cCommentGroup contains=cTodo,cBadContinuation
+
+ " String and Character constants
+ " Highlight special characters (those which have a backslash) differently
+@@ -265,7 +270,7 @@
+ endif
+
+ " Accept %: for # (C99)
+-syn region cPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=cComment,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
++syn region cPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
+ syn match cPreCondit display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
+ if !exists("c_no_if0")
+ if !exists("c_no_if0_fold")
+@@ -281,7 +286,7 @@
+ syn match cInclude display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
+ "syn match cLineSkip "\\$"
+ syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti
+-syn region cDefine start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 keepend contains=ALLBUT,@cPreProcGroup,@Spell
++syn region cDefine start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
+ syn region cPreProc start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
+
+ " Highlight User Labels
+@@ -359,6 +364,7 @@
+ hi def link cComment Comment
+ hi def link cSpecial SpecialChar
+ hi def link cTodo Todo
++hi def link cBadContinuation Error
+ hi def link cCppSkip cCppOut
+ hi def link cCppOut2 cCppOut
+ hi def link cCppOut Comment
+diff -u -r --new-file runtime/syntax.orig/cf.vim runtime/syntax/cf.vim
+--- runtime/syntax.orig/cf.vim 2007-11-19 16:27:33.000000000 -0600
++++ runtime/syntax/cf.vim 2010-03-02 09:17:43.000000000 -0600
+@@ -1,321 +1,440 @@
+ " Vim syntax file
+-" Language: ColdFusion
+-" Maintainer: Toby Woodwark (toby.woodwark+vim@gmail.com)
+-" Last Change: 2007 Nov 19
+-" Filenames: *.cfc *.cfm
+-" Version: Macromedia ColdFusion MX 7
+-" Usage: Note that ColdFusion has its own comment syntax
+-" i.e. <!--- --->
+-
+-" For version 5.x, clear all syntax items.
+-" For version 6.x+, quit if a syntax file is already loaded.
+-if version < 600
+- syntax clear
+-elseif exists("b:current_syntax")
++" Language: CFML
++" Maintainer: Toby Woodwark (toby.woodwark+vim@gmail.com)
++" Last Change: 2010-03-02
++" Filenames: *.cfc *.cfm
++" Version: Adobe ColdFusion 9
++" Usage: This file contains both syntax definitions
++" and a list of known builtin tags, functions and keywords.
++" Refs -
++" http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WS8f0cc78011fffa71866534d11cdad96e4e-8000.html
++" http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec17324-8000.html
++" TODO:
++" Support the limited array literal and struct literal syntax in CF8+.
++" Highlight namespaced tags fom cfimport.
++" Complete CF9+ cfscript support.
++" Railo support.
++" Options:
++" d_noinclude_html - set to prevent HTML highlighting. Use this if you are not working on HTML.
++
++" Quit if a syntax file is already loaded.
++if exists("b:current_syntax")
+ finish
+ endif
+
+-" Use all the stuff from the HTML syntax file.
+-" TODO remove this; CFML is not a superset of HTML
+-if version < 600
+- source <sfile>:p:h/html.vim
++if exists("d_noinclude_html")
++ " Define alternatives to the HTML syntax file.
++
++ " Copied from html.vim - the rules for matching a CF tag match those for HTML/SGML.
++ " CFML syntax is more permissive when it comes to superfluous <> chars.
++ syn region htmlString contained start=+"+ end=+"+ contains=@htmlPreproc
++ syn region htmlString contained start=+'+ end=+'+ contains=@htmlPreproc
++ syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=@htmlPreproc
++ " Hacked htmlTag so that it only matches cf tags and not random <> chars.
++ syn region htmlEndTag start=+</cf+ end=+>+ contains=htmlTagN,htmlTagError
++ syn region htmlTag start=+<\s*cf[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,@htmlPreproc,@htmlArgCluster
++ syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,@htmlTagNameCluster
++ syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,@htmlTagNameCluster
++ syn match htmlTagError contained "[^>]<"ms=s+1
+ else
++ " Use all the stuff from the HTML syntax file.
++ " This means eg HTML comments are highlighted as comments, even if they include cf tags.
+ runtime! syntax/html.vim
+ endif
+
+-syn sync fromstart
+-syn sync maxlines=200
+-syn case ignore
++syn sync fromstart
++syn sync maxlines=200
++syn case ignore
+
+ " Scopes and keywords.
+-syn keyword cfScope contained cgi cffile cookie request caller this thistag
+-syn keyword cfScope contained cfcatch variables application server session client form url attributes
+-syn keyword cfScope contained arguments
+-syn keyword cfBool contained yes no true false
++syn keyword cfScope contained cgi cffile cookie request caller this thistag
++syn keyword cfScope contained cfcatch variables application server session client form url local
++syn keyword cfScope contained arguments super cfhttp attributes error
++syn keyword cfBool contained yes no true false
+
+ " Operator strings.
+-syn keyword cfOperator contained xor eqv and or lt le lte gt ge gte equal eq neq not is mod contains
+-syn match cfOperatorMatch contained "\<does\_s\+not\_s\+contain\>"
+-syn match cfOperatorMatch contained "\<\(greater\|less\)\_s\+than\(\_s\+or\_s\+equal\_s\+to\)\?\>"
+-syn match cfOperatorMatch contained "[\+\-\*\/\\\^\&][\+\-\*\/\\\^\&]\@!"
+-syn cluster cfOperatorCluster contains=cfOperator,cfOperatorMatch
++" ColdFusion <=7:
++syn keyword cfOperator contained xor eqv and or lt le lte gt ge gte equal eq neq not is mod contains
++syn match cfOperatorMatch contained "+"
++syn match cfOperatorMatch contained "\-"
++syn match cfOperatorMatch contained "[\*\/\\\^\&][\+\-\*\/\\\^\&]\@!"
++syn match cfOperatorMatch contained "\<\(not\_s\+\)\?equal\>"
++syn match cfOperatorMatch contained "\<does\_s\+not\_s\+contain\>"
++syn match cfOperatorMatch contained "\<\(greater\|less\)\_s\+than\(\_s\+or\_s\+equal\_s\+to\)\?\>"
++" ColdFusion 8:
++syn keyword cfOperator contained imp
++syn match cfOperatorMatch contained "[?%:!]"
++syn match cfOperatorMatch contained "[\+\-\*\/\&]="
++syn match cfOperatorMatch contained "++"
++syn match cfOperatorMatch contained "--"
++syn match cfOperatorMatch contained "&&"
++syn match cfOperatorMatch contained "||"
++
++syn cluster cfOperatorCluster contains=cfOperator,cfOperatorMatch
++
++" Custom tags called with the <cf_xxx> syntax.
++syn match cfCustomTagName contained "\<cf_[a-zA-Z0-9_]\+\>"
++" (TODO match namespaced tags imported using cfimport, similarly.)
+
+ " Tag names.
+-syn keyword cfTagName contained cfabort cfapplet cfapplication cfargument cfassociate
+-syn keyword cfTagName contained cfbreak cfcache cfcalendar cfcase cfcatch
+-syn keyword cfTagName contained cfchart cfchartdata cfchartseries cfcol cfcollection
+-syn keyword cfTagName contained cfcomponent cfcontent cfcookie cfdefaultcase cfdirectory
+-syn keyword cfTagName contained cfdocument cfdocumentitem cfdocumentsection cfdump cfelse
+-syn keyword cfTagName contained cfelseif cferror cfexecute cfexit cffile cfflush cfform
+-syn keyword cfTagName contained cfformgroup cfformitem cfftp cffunction cfgraph cfgraphdata
+-syn keyword cfTagName contained cfgrid cfgridcolumn cfgridrow cfgridupdate cfheader
+-syn keyword cfTagName contained cfhtmlhead cfhttp cfhttpparam cfif cfimport
+-syn keyword cfTagName contained cfinclude cfindex cfinput cfinsert cfinvoke cfinvokeargument
+-syn keyword cfTagName contained cfldap cflocation cflock cflog cflogin cfloginuser cflogout
+-syn keyword cfTagName contained cfloop cfmail cfmailparam cfmailpart cfmodule
+-syn keyword cfTagName contained cfNTauthenticate cfobject cfobjectcache cfoutput cfparam
+-syn keyword cfTagName contained cfpop cfprocessingdirective cfprocparam cfprocresult
+-syn keyword cfTagName contained cfproperty cfquery cfqueryparam cfregistry cfreport
+-syn keyword cfTagName contained cfreportparam cfrethrow cfreturn cfsavecontent cfschedule
+-syn keyword cfTagName contained cfscript cfsearch cfselect cfservlet cfservletparam cfset
+-syn keyword cfTagName contained cfsetting cfsilent cfslider cfstoredproc cfswitch cftable
+-syn keyword cfTagName contained cftextarea cftextinput cfthrow cftimer cftrace cftransaction
+-syn keyword cfTagName contained cftree cftreeitem cftry cfupdate cfwddx cfxml
+-
+-" Tag parameters.
+-syn keyword cfArg contained abort accept access accessible action addnewline addtoken
+-syn keyword cfArg contained agentname align appendkey appletsource application
+-syn keyword cfArg contained applicationtimeout applicationtoken archive
+-syn keyword cfArg contained argumentcollection arguments asciiextensionlist
+-syn keyword cfArg contained attachmentpath attributecollection attributes autowidth
+-syn keyword cfArg contained backgroundvisible basetag bcc bgcolor bind bindingname
+-syn keyword cfArg contained blockfactor body bold border branch cachedafter cachedwithin
+-syn keyword cfArg contained casesensitive category categorytree cc cfsqltype charset
+-syn keyword cfArg contained chartheight chartwidth checked class clientmanagement
+-syn keyword cfArg contained clientstorage codebase colheaderalign colheaderbold
+-syn keyword cfArg contained colheaderfont colheaderfontsize colheaderitalic colheaders
+-syn keyword cfArg contained colheadertextcolor collection colorlist colspacing columns
+-syn keyword cfArg contained completepath component condition connection contentid
+-syn keyword cfArg contained context contextbytes contexthighlightbegin
+-syn keyword cfArg contained contexthighlightend contextpassages cookiedomain criteria
+-syn keyword cfArg contained custom1 custom2 custom3 custom4 data dataalign
+-syn keyword cfArg contained databackgroundcolor datacollection datasource daynames
+-syn keyword cfArg contained dbname dbserver dbtype dbvarname debug default delete
+-syn keyword cfArg contained deletebutton deletefile delimiter delimiters description
+-syn keyword cfArg contained destination detail directory disabled display displayname
+-syn keyword cfArg contained disposition dn domain editable enablecab enablecfoutputonly
+-syn keyword cfArg contained enabled encoded encryption enctype enddate endrange endtime
+-syn keyword cfArg contained entry errorcode exception existing expand expires expireurl
+-syn keyword cfArg contained expression extendedinfo extends extensions external
+-syn keyword cfArg contained failifexists failto file filefield filename filter
+-syn keyword cfArg contained firstdayofweek firstrowasheaders fixnewline font fontbold
+-syn keyword cfArg contained fontembed fontitalic fontsize foregroundcolor format
+-syn keyword cfArg contained formfields formula from generateuniquefilenames getasbinary
+-syn keyword cfArg contained grid griddataalign gridlines groovecolor group
+-syn keyword cfArg contained groupcasesensitive header headeralign headerbold headerfont
+-syn keyword cfArg contained headerfontsize headeritalic headerlines headertextcolor
+-syn keyword cfArg contained height highlighthref hint href hrefkey hscroll hspace html
+-syn keyword cfArg contained htmltable id idletimeout img imgopen imgstyle index inline
+-syn keyword cfArg contained input insert insertbutton interval isolation italic item
+-syn keyword cfArg contained itemcolumn key keyonly label labelformat language list
+-syn keyword cfArg contained listgroups locale localfile log loginstorage lookandfeel
+-syn keyword cfArg contained mailerid mailto marginbottom marginleft marginright
+-syn keyword cfArg contained margintop markersize markerstyle mask max maxlength maxrows
+-syn keyword cfArg contained message messagenumber method mimeattach mimetype min mode
+-syn keyword cfArg contained modifytype monthnames multipart multiple name nameconflict
+-syn keyword cfArg contained namespace new newdirectory notsupported null numberformat
+-syn keyword cfArg contained object omit onblur onchange onclick onerror onfocus
+-syn keyword cfArg contained onkeydown onkeyup onload onmousedown onmouseup onreset
+-syn keyword cfArg contained onsubmit onvalidate operation orderby orientation output
+-syn keyword cfArg contained outputfile overwrite ownerpassword pageencoding pageheight
+-syn keyword cfArg contained pagetype pagewidth paintstyle param_1 param_2 param_3
+-syn keyword cfArg contained param_4 param_5 param_6 param_7 param_8 param_9 parent
+-syn keyword cfArg contained parrent passive passthrough password path pattern
+-syn keyword cfArg contained permissions picturebar pieslicestyle port porttypename
+-syn keyword cfArg contained prefix preloader preservedata previouscriteria procedure
+-syn keyword cfArg contained protocol provider providerdsn proxybypass proxypassword
+-syn keyword cfArg contained proxyport proxyserver proxyuser publish query queryasroot
+-syn keyword cfArg contained queryposition range rebind recurse redirect referral
+-syn keyword cfArg contained refreshlabel remotefile replyto report requesttimeout
+-syn keyword cfArg contained required reset resoleurl resolveurl result resultset
+-syn keyword cfArg contained retrycount returnasbinary returncode returntype
+-syn keyword cfArg contained returnvariable roles rotated rowheaderalign rowheaderbold
+-syn keyword cfArg contained rowheaderfont rowheaderfontsize rowheaderitalic rowheaders
+-syn keyword cfArg contained rowheadertextcolor rowheaderwidth rowheight scale scalefrom
+-syn keyword cfArg contained scaleto scope scriptprotect scriptsrc secure securitycontext
+-syn keyword cfArg contained select selectcolor selected selecteddate selectedindex
+-syn keyword cfArg contained selectmode separator seriescolor serieslabel seriesplacement
+-syn keyword cfArg contained server serviceport serviceportname sessionmanagement
+-syn keyword cfArg contained sessiontimeout setclientcookies setcookie setdomaincookies
+-syn keyword cfArg contained show3d showborder showdebugoutput showerror showlegend
+-syn keyword cfArg contained showmarkers showxgridlines showygridlines size skin sort
+-syn keyword cfArg contained sortascendingbutton sortcontrol sortdescendingbutton
+-syn keyword cfArg contained sortxaxis source spoolenable sql src srcfile start startdate
+-syn keyword cfArg contained startrange startrow starttime status statuscode statustext
+-syn keyword cfArg contained step stoponerror style subject suggestions
+-syn keyword cfArg contained suppresswhitespace tablename tableowner tablequalifier
+-syn keyword cfArg contained taglib target task template text textcolor textqualifier
+-syn keyword cfArg contained throwonerror throwonerror throwonfailure throwontimeout
+-syn keyword cfArg contained timeout timespan tipbgcolor tipstyle title to tooltip
+-syn keyword cfArg contained toplevelvariable transfermode type uid unit url urlpath
+-syn keyword cfArg contained useragent username userpassword usetimezoneinfo validate
+-syn keyword cfArg contained validateat value valuecolumn values valuesdelimiter
+-syn keyword cfArg contained valuesdisplay var variable vertical visible vscroll vspace
+-syn keyword cfArg contained webservice width wmode wraptext wsdlfile xaxistitle
+-syn keyword cfArg contained xaxistype xoffset yaxistitle yaxistype yoffset
+-
+-" ColdFusion Functions.
+-syn keyword cfFunctionName contained ACos ASin Abs AddSOAPRequestHeader AddSOAPResponseHeader
+-syn keyword cfFunctionName contained ArrayAppend ArrayAvg ArrayClear ArrayDeleteAt ArrayInsertAt
+-syn keyword cfFunctionName contained ArrayIsEmpty ArrayLen ArrayMax ArrayMin ArrayNew
+-syn keyword cfFunctionName contained ArrayPrepend ArrayResize ArraySet ArraySort ArraySum
+-syn keyword cfFunctionName contained ArraySwap ArrayToList Asc Atn AuthenticatedContext
+-syn keyword cfFunctionName contained AuthenticatedUser BinaryDecode BinaryEncode BitAnd
+-syn keyword cfFunctionName contained BitMaskClear BitMaskRead BitMaskSet BitNot BitOr BitSHLN
+-syn keyword cfFunctionName contained BitSHRN BitXor CJustify Ceiling CharsetDecode CharsetEncode
+-syn keyword cfFunctionName contained Chr Compare CompareNoCase Cos CreateDate CreateDateTime
+-syn keyword cfFunctionName contained CreateODBCDate CreateODBCDateTime CreateODBCTime
+-syn keyword cfFunctionName contained CreateObject CreateTime CreateTimeSpan CreateUUID DE DateAdd
+-syn keyword cfFunctionName contained DateCompare DateConvert DateDiff DateFormat DatePart Day
+-syn keyword cfFunctionName contained DayOfWeek DayOfWeekAsString DayOfYear DaysInMonth DaysInYear
+-syn keyword cfFunctionName contained DecimalFormat DecrementValue Decrypt DecryptBinary
+-syn keyword cfFunctionName contained DeleteClientVariable DirectoryExists DollarFormat Duplicate
+-syn keyword cfFunctionName contained Encrypt EncryptBinary Evaluate Exp ExpandPath FileExists
+-syn keyword cfFunctionName contained Find FindNoCase FindOneOf FirstDayOfMonth Fix FormatBaseN
+-syn keyword cfFunctionName contained GenerateSecretKey GetAuthUser GetBaseTagData GetBaseTagList
+-syn keyword cfFunctionName contained GetBaseTemplatePath GetClientVariablesList GetContextRoot
+-syn keyword cfFunctionName contained GetCurrentTemplatePath GetDirectoryFromPath GetEncoding
+-syn keyword cfFunctionName contained GetException GetFileFromPath GetFunctionList
+-syn keyword cfFunctionName contained GetGatewayHelper GetHttpRequestData GetHttpTimeString
+-syn keyword cfFunctionName contained GetLocalHostIP
+-syn keyword cfFunctionName contained GetLocale GetLocaleDisplayName GetMetaData GetMetricData
+-syn keyword cfFunctionName contained GetPageContext GetProfileSections GetProfileString
+-syn keyword cfFunctionName contained GetSOAPRequest GetSOAPRequestHeader GetSOAPResponse
+-syn keyword cfFunctionName contained GetSOAPResponseHeader GetTempDirectory GetTempFile
+-syn keyword cfFunctionName contained GetTickCount GetTimeZoneInfo GetToken
+-syn keyword cfFunctionName contained HTMLCodeFormat HTMLEditFormat Hash Hour IIf IncrementValue
+-syn keyword cfFunctionName contained InputBaseN Insert Int IsArray IsAuthenticated IsAuthorized
+-syn keyword cfFunctionName contained IsBinary IsBoolean IsCustomFunction IsDate IsDebugMode
+-syn keyword cfFunctionName contained IsDefined
+-syn keyword cfFunctionName contained IsLeapYear IsLocalHost IsNumeric
+-syn keyword cfFunctionName contained IsNumericDate IsObject IsProtected IsQuery IsSOAPRequest
+-syn keyword cfFunctionName contained IsSimpleValue IsStruct IsUserInRole IsValid IsWDDX IsXML
+-syn keyword cfFunctionName contained IsXmlAttribute IsXmlDoc IsXmlElem IsXmlNode IsXmlRoot
+-syn keyword cfFunctionName contained JSStringFormat JavaCast LCase LJustify LSCurrencyFormat
+-syn keyword cfFunctionName contained LSDateFormat LSEuroCurrencyFormat LSIsCurrency LSIsDate
+-syn keyword cfFunctionName contained LSIsNumeric LSNumberFormat LSParseCurrency LSParseDateTime
+-syn keyword cfFunctionName contained LSParseEuroCurrency LSParseNumber LSTimeFormat LTrim Left
+-syn keyword cfFunctionName contained Len ListAppend ListChangeDelims ListContains
+-syn keyword cfFunctionName contained ListContainsNoCase ListDeleteAt ListFind ListFindNoCase
+-syn keyword cfFunctionName contained ListFirst ListGetAt ListInsertAt ListLast ListLen
+-syn keyword cfFunctionName contained ListPrepend ListQualify ListRest ListSetAt ListSort
+-syn keyword cfFunctionName contained ListToArray ListValueCount ListValueCountNoCase Log Log10
+-syn keyword cfFunctionName contained Max Mid Min Minute Month MonthAsString Now NumberFormat
+-syn keyword cfFunctionName contained ParagraphFormat ParseDateTime Pi
+-syn keyword cfFunctionName contained PreserveSingleQuotes Quarter QueryAddColumn QueryAddRow
+-syn keyword cfFunctionName contained QueryNew QuerySetCell QuotedValueList REFind REFindNoCase
+-syn keyword cfFunctionName contained REReplace REReplaceNoCase RJustify RTrim Rand RandRange
+-syn keyword cfFunctionName contained Randomize ReleaseComObject RemoveChars RepeatString Replace
+-syn keyword cfFunctionName contained ReplaceList ReplaceNoCase Reverse Right Round Second
+-syn keyword cfFunctionName contained SendGatewayMessage SetEncoding SetLocale SetProfileString
+-syn keyword cfFunctionName contained SetVariable Sgn Sin SpanExcluding SpanIncluding Sqr StripCR
+-syn keyword cfFunctionName contained StructAppend StructClear StructCopy StructCount StructDelete
+-syn keyword cfFunctionName contained StructFind StructFindKey StructFindValue StructGet
+-syn keyword cfFunctionName contained StructInsert StructIsEmpty StructKeyArray StructKeyExists
+-syn keyword cfFunctionName contained StructKeyList StructNew StructSort StructUpdate Tan
+-syn keyword cfFunctionName contained TimeFormat ToBase64 ToBinary ToScript ToString Trim UCase
+-syn keyword cfFunctionName contained URLDecode URLEncodedFormat URLSessionFormat Val ValueList
+-syn keyword cfFunctionName contained Week Wrap WriteOutput XmlChildPos XmlElemNew XmlFormat
+-syn keyword cfFunctionName contained XmlGetNodeType XmlNew XmlParse XmlSearch XmlTransform
+-syn keyword cfFunctionName contained XmlValidate Year YesNoFormat
+-
+-" Deprecated tags and functions.
+-syn keyword cfDeprecated contained cfauthenticate cfimpersonate cfgraph cfgraphdata
+-syn keyword cfDeprecated contained cfservlet cfservletparam cftextinput
+-syn keyword cfDeprecated contained GetK2ServerDocCount GetK2ServerDocCountLimit GetTemplatePath
+-syn keyword cfDeprecated contained IsK2ServerABroker IsK2ServerDocCountExceeded IsK2ServerOnline
+-syn keyword cfDeprecated contained ParameterExists
+-
+-syn cluster htmlTagNameCluster add=cfTagName
+-syn cluster htmlArgCluster add=cfArg,cfHashRegion,cfScope
+-syn cluster htmlPreproc add=cfHashRegion
++" ColdFusion <=7:
++syn keyword cfTagName contained cfabort cfapplet cfapplication cfargument cfassociate
++syn keyword cfTagName contained cfbreak cfcache cfcalendar cfcase cfcatch
++syn keyword cfTagName contained cfchart cfchartdata cfchartseries cfcol cfcollection
++syn keyword cfTagName contained cfcomponent cfcontent cfcookie cfdefaultcase cfdirectory
++syn keyword cfTagName contained cfdocument cfdocumentitem cfdocumentsection cfdump cfelse
++syn keyword cfTagName contained cfelseif cferror cfexecute cfexit cffile cfflush cfform
++syn keyword cfTagName contained cfformgroup cfformitem cfftp cffunction
++syn keyword cfTagName contained cfgrid cfgridcolumn cfgridrow cfgridupdate cfheader
++syn keyword cfTagName contained cfhtmlhead cfhttp cfhttpparam cfif cfimport
++syn keyword cfTagName contained cfinclude cfindex cfinput cfinsert cfinvoke cfinvokeargument
++syn keyword cfTagName contained cfldap cflocation cflock cflog cflogin cfloginuser cflogout
++syn keyword cfTagName contained cfloop cfmail cfmailparam cfmailpart cfmodule
++syn keyword cfTagName contained cfNTauthenticate cfobject cfobjectcache cfoutput cfparam
++syn keyword cfTagName contained cfpop cfprocessingdirective cfprocparam cfprocresult
++syn keyword cfTagName contained cfproperty cfquery cfqueryparam cfregistry cfreport
++syn keyword cfTagName contained cfreportparam cfrethrow cfreturn cfsavecontent cfschedule
++syn keyword cfTagName contained cfscript cfsearch cfselect cfservletparam cfset
++syn keyword cfTagName contained cfsetting cfsilent cfslider cfstoredproc cfswitch cftable
++syn keyword cfTagName contained cftextarea cftextinput cfthrow cftimer cftrace cftransaction
++syn keyword cfTagName contained cftree cftreeitem cftry cfupdate cfwddx cfxml
++" ColdFusion 8:
++syn keyword cfTagName contained cfajaximport cfajaxproxy cfdbinfo cfdiv cfexchangecalendar
++syn keyword cfTagName contained cfexchangeconnection cfexchangecontact cfexchangefilter
++syn keyword cfTagName contained cfexchangemail cfexchangetask cffeed
++syn keyword cfTagName contained cfinterface cflayout cflayoutarea cfmenu cfmenuitem
++syn keyword cfTagName contained cfpdf cfpdfform cfpdfformparam cfpdfparam cfpdfsubform cfpod
++syn keyword cfTagName contained cfpresentation cfpresentationslide cfpresenter cfprint
++syn keyword cfTagName contained cfsprydataset cfthread cftooltip cfwindow cfzip cfzipparam
++" ColdFusion 9:
++syn keyword cfTagName contained cfcontinue cffileupload cffinally
++syn keyword cfTagName contained cfimage cfimap
++syn keyword cfTagName contained cfmap cfmapitem cfmediaplayer cfmessagebox
++syn keyword cfTagName contained cfprocparam cfprogressbar
++syn keyword cfTagName contained cfsharepoint cfspreadsheet
++
++" Tag attributes.
++" XXX Not updated for ColdFusion 8/9.
++" These are becoming a headache to maintain, so might be removed.
++syn keyword cfArg contained abort accept access accessible action addnewline addtoken
++syn keyword cfArg contained agentname align appendkey appletsource application
++syn keyword cfArg contained applicationtimeout applicationtoken archive
++syn keyword cfArg contained argumentcollection arguments asciiextensionlist
++syn keyword cfArg contained attachmentpath attributecollection attributes autowidth
++syn keyword cfArg contained backgroundvisible basetag bcc bgcolor bind bindingname
++syn keyword cfArg contained blockfactor body bold border branch cachedafter cachedwithin
++syn keyword cfArg contained casesensitive category categorytree cc cfsqltype charset
++syn keyword cfArg contained chartheight chartwidth checked class clientmanagement
++syn keyword cfArg contained clientstorage codebase colheaderalign colheaderbold
++syn keyword cfArg contained colheaderfont colheaderfontsize colheaderitalic colheaders
++syn keyword cfArg contained colheadertextcolor collection colorlist colspacing columns
++syn keyword cfArg contained completepath component condition connection contentid
++syn keyword cfArg contained context contextbytes contexthighlightbegin
++syn keyword cfArg contained contexthighlightend contextpassages cookiedomain criteria
++syn keyword cfArg contained custom1 custom2 custom3 custom4 data dataalign
++syn keyword cfArg contained databackgroundcolor datacollection datasource daynames
++syn keyword cfArg contained dbname dbserver dbtype dbvarname debug default delete
++syn keyword cfArg contained deletebutton deletefile delimiter delimiters description
++syn keyword cfArg contained destination detail directory disabled display displayname
++syn keyword cfArg contained disposition dn domain editable enablecab enablecfoutputonly
++syn keyword cfArg contained enabled encoded encryption enctype enddate endrange endtime
++syn keyword cfArg contained entry errorcode exception existing expand expires expireurl
++syn keyword cfArg contained expression extendedinfo extends extensions external
++syn keyword cfArg contained failifexists failto file filefield filename filter
++syn keyword cfArg contained firstdayofweek firstrowasheaders fixnewline font fontbold
++syn keyword cfArg contained fontembed fontitalic fontsize foregroundcolor format
++syn keyword cfArg contained formfields formula from generateuniquefilenames getasbinary
++syn keyword cfArg contained grid griddataalign gridlines groovecolor group
++syn keyword cfArg contained groupcasesensitive header headeralign headerbold headerfont
++syn keyword cfArg contained headerfontsize headeritalic headerlines headertextcolor
++syn keyword cfArg contained height highlighthref hint href hrefkey hscroll hspace html
++syn keyword cfArg contained htmltable id idletimeout img imgopen imgstyle index inline
++syn keyword cfArg contained input insert insertbutton interval isolation italic item
++syn keyword cfArg contained itemcolumn key keyonly label labelformat language list
++syn keyword cfArg contained listgroups locale localfile log loginstorage lookandfeel
++syn keyword cfArg contained mailerid mailto marginbottom marginleft marginright
++syn keyword cfArg contained margintop markersize markerstyle mask max maxlength maxrows
++syn keyword cfArg contained message messagenumber method mimeattach mimetype min mode
++syn keyword cfArg contained modifytype monthnames multipart multiple name nameconflict
++syn keyword cfArg contained namespace new newdirectory notsupported null numberformat
++syn keyword cfArg contained object omit onblur onchange onclick onerror onfocus
++syn keyword cfArg contained onkeydown onkeyup onload onmousedown onmouseup onreset
++syn keyword cfArg contained onsubmit onvalidate operation orderby orientation output
++syn keyword cfArg contained outputfile overwrite ownerpassword pageencoding pageheight
++syn keyword cfArg contained pagetype pagewidth paintstyle param_1 param_2 param_3
++syn keyword cfArg contained param_4 param_5 param_6 param_7 param_8 param_9 parent
++syn keyword cfArg contained parrent passive passthrough password path pattern
++syn keyword cfArg contained permissions picturebar pieslicestyle port porttypename
++syn keyword cfArg contained prefix preloader preservedata previouscriteria procedure
++syn keyword cfArg contained protocol provider providerdsn proxybypass proxypassword
++syn keyword cfArg contained proxyport proxyserver proxyuser publish query queryasroot
++syn keyword cfArg contained queryposition range rebind recurse redirect referral
++syn keyword cfArg contained refreshlabel remotefile replyto report requesttimeout
++syn keyword cfArg contained required reset resoleurl resolveurl result resultset
++syn keyword cfArg contained retrycount returnasbinary returncode returntype
++syn keyword cfArg contained returnvariable roles rotated rowheaderalign rowheaderbold
++syn keyword cfArg contained rowheaderfont rowheaderfontsize rowheaderitalic rowheaders
++syn keyword cfArg contained rowheadertextcolor rowheaderwidth rowheight scale scalefrom
++syn keyword cfArg contained scaleto scope scriptprotect scriptsrc secure securitycontext
++syn keyword cfArg contained select selectcolor selected selecteddate selectedindex
++syn keyword cfArg contained selectmode separator seriescolor serieslabel seriesplacement
++syn keyword cfArg contained server serviceport serviceportname sessionmanagement
++syn keyword cfArg contained sessiontimeout setclientcookies setcookie setdomaincookies
++syn keyword cfArg contained show3d showborder showdebugoutput showerror showlegend
++syn keyword cfArg contained showmarkers showxgridlines showygridlines size skin sort
++syn keyword cfArg contained sortascendingbutton sortcontrol sortdescendingbutton
++syn keyword cfArg contained sortxaxis source spoolenable sql src srcfile start startdate
++syn keyword cfArg contained startrange startrow starttime status statuscode statustext
++syn keyword cfArg contained step stoponerror style subject suggestions
++syn keyword cfArg contained suppresswhitespace tablename tableowner tablequalifier
++syn keyword cfArg contained taglib target task template text textcolor textqualifier
++syn keyword cfArg contained throwonerror throwonerror throwonfailure throwontimeout
++syn keyword cfArg contained timeout timespan tipbgcolor tipstyle title to tooltip
++syn keyword cfArg contained toplevelvariable transfermode type uid unit url urlpath
++syn keyword cfArg contained useragent username userpassword usetimezoneinfo validate
++syn keyword cfArg contained validateat value valuecolumn values valuesdelimiter
++syn keyword cfArg contained valuesdisplay var variable vertical visible vscroll vspace
++syn keyword cfArg contained webservice width wmode wraptext wsdlfile xaxistitle
++syn keyword cfArg contained xaxistype xoffset yaxistitle yaxistype yoffset
++
++" Functions.
++" ColdFusion <=7:
++syn keyword cfFunctionName contained ACos ASin Abs AddSOAPRequestHeader AddSOAPResponseHeader
++syn keyword cfFunctionName contained ArrayAppend ArrayAvg ArrayClear ArrayDeleteAt ArrayInsertAt
++syn keyword cfFunctionName contained ArrayIsEmpty ArrayLen ArrayMax ArrayMin ArrayNew
++syn keyword cfFunctionName contained ArrayPrepend ArrayResize ArraySet ArraySort ArraySum
++syn keyword cfFunctionName contained ArraySwap ArrayToList Asc Atn AuthenticatedContext
++syn keyword cfFunctionName contained AuthenticatedUser BinaryDecode BinaryEncode BitAnd
++syn keyword cfFunctionName contained BitMaskClear BitMaskRead BitMaskSet BitNot BitOr BitSHLN
++syn keyword cfFunctionName contained BitSHRN BitXor CJustify Ceiling CharsetDecode CharsetEncode
++syn keyword cfFunctionName contained Chr Compare CompareNoCase Cos CreateDate CreateDateTime
++syn keyword cfFunctionName contained CreateODBCDate CreateODBCDateTime CreateODBCTime
++syn keyword cfFunctionName contained CreateObject CreateTime CreateTimeSpan CreateUUID DE DateAdd
++syn keyword cfFunctionName contained DateCompare DateConvert DateDiff DateFormat DatePart Day
++syn keyword cfFunctionName contained DayOfWeek DayOfWeekAsString DayOfYear DaysInMonth DaysInYear
++syn keyword cfFunctionName contained DecimalFormat DecrementValue Decrypt DecryptBinary
++syn keyword cfFunctionName contained DeleteClientVariable DirectoryExists DollarFormat Duplicate
++syn keyword cfFunctionName contained Encrypt EncryptBinary Evaluate Exp ExpandPath FileExists
++syn keyword cfFunctionName contained Find FindNoCase FindOneOf FirstDayOfMonth Fix FormatBaseN
++syn keyword cfFunctionName contained GenerateSecretKey GetAuthUser GetBaseTagData GetBaseTagList
++syn keyword cfFunctionName contained GetBaseTemplatePath GetClientVariablesList GetContextRoot
++syn keyword cfFunctionName contained GetCurrentTemplatePath GetDirectoryFromPath GetEncoding
++syn keyword cfFunctionName contained GetException GetFileFromPath GetFunctionList
++syn keyword cfFunctionName contained GetGatewayHelper GetHttpRequestData GetHttpTimeString
++syn keyword cfFunctionName contained GetLocalHostIP
++syn keyword cfFunctionName contained GetLocale GetLocaleDisplayName GetMetaData GetMetricData
++syn keyword cfFunctionName contained GetPageContext GetProfileSections GetProfileString
++syn keyword cfFunctionName contained GetSOAPRequest GetSOAPRequestHeader GetSOAPResponse
++syn keyword cfFunctionName contained GetSOAPResponseHeader GetTempDirectory GetTempFile
++syn keyword cfFunctionName contained GetTickCount GetTimeZoneInfo GetToken
++syn keyword cfFunctionName contained HTMLCodeFormat HTMLEditFormat Hash Hour IIf IncrementValue
++syn keyword cfFunctionName contained InputBaseN Insert Int IsArray IsAuthenticated IsAuthorized
++syn keyword cfFunctionName contained IsBinary IsBoolean IsCustomFunction IsDate IsDebugMode
++syn keyword cfFunctionName contained IsDefined
++syn keyword cfFunctionName contained IsLeapYear IsLocalHost IsNumeric
++syn keyword cfFunctionName contained IsNumericDate IsObject IsProtected IsQuery IsSOAPRequest
++syn keyword cfFunctionName contained IsSimpleValue IsStruct IsUserInRole IsValid IsWDDX IsXML
++syn keyword cfFunctionName contained IsXmlAttribute IsXmlDoc IsXmlElem IsXmlNode IsXmlRoot
++syn keyword cfFunctionName contained JSStringFormat JavaCast LCase LJustify LSCurrencyFormat
++syn keyword cfFunctionName contained LSDateFormat LSEuroCurrencyFormat LSIsCurrency LSIsDate
++syn keyword cfFunctionName contained LSIsNumeric LSNumberFormat LSParseCurrency LSParseDateTime
++syn keyword cfFunctionName contained LSParseEuroCurrency LSParseNumber LSTimeFormat LTrim Left
++syn keyword cfFunctionName contained Len ListAppend ListChangeDelims ListContains
++syn keyword cfFunctionName contained ListContainsNoCase ListDeleteAt ListFind ListFindNoCase
++syn keyword cfFunctionName contained ListFirst ListGetAt ListInsertAt ListLast ListLen
++syn keyword cfFunctionName contained ListPrepend ListQualify ListRest ListSetAt ListSort
++syn keyword cfFunctionName contained ListToArray ListValueCount ListValueCountNoCase Log Log10
++syn keyword cfFunctionName contained Max Mid Min Minute Month MonthAsString Now NumberFormat
++syn keyword cfFunctionName contained ParagraphFormat ParseDateTime Pi
++syn keyword cfFunctionName contained PreserveSingleQuotes Quarter QueryAddColumn QueryAddRow
++syn keyword cfFunctionName contained QueryNew QuerySetCell QuotedValueList REFind REFindNoCase
++syn keyword cfFunctionName contained REReplace REReplaceNoCase RJustify RTrim Rand RandRange
++syn keyword cfFunctionName contained Randomize ReleaseComObject RemoveChars RepeatString Replace
++syn keyword cfFunctionName contained ReplaceList ReplaceNoCase Reverse Right Round Second
++syn keyword cfFunctionName contained SendGatewayMessage SetEncoding SetLocale SetProfileString
++syn keyword cfFunctionName contained SetVariable Sgn Sin SpanExcluding SpanIncluding Sqr StripCR
++syn keyword cfFunctionName contained StructAppend StructClear StructCopy StructCount StructDelete
++syn keyword cfFunctionName contained StructFind StructFindKey StructFindValue StructGet
++syn keyword cfFunctionName contained StructInsert StructIsEmpty StructKeyArray StructKeyExists
++syn keyword cfFunctionName contained StructKeyList StructNew StructSort StructUpdate Tan
++syn keyword cfFunctionName contained TimeFormat ToBase64 ToBinary ToScript ToString Trim UCase
++syn keyword cfFunctionName contained URLDecode URLEncodedFormat URLSessionFormat Val ValueList
++syn keyword cfFunctionName contained Week Wrap WriteOutput XmlChildPos XmlElemNew XmlFormat
++syn keyword cfFunctionName contained XmlGetNodeType XmlNew XmlParse XmlSearch XmlTransform
++syn keyword cfFunctionName contained XmlValidate Year YesNoFormat
++" ColdFusion 8:
++syn keyword cfFunctionName contained AjaxLink AjaxOnLoad ArrayIsDefined BinaryDecode BinaryEncode CharsetDecode CharsetEncode
++syn keyword cfFunctionName contained DecryptBinary DeserializeJSON DotNetToCFType EncryptBinary FileClose FileCopy FileDelete
++syn keyword cfFunctionName contained FileIsEOF FileMove FileOpen FileRead FileReadBinary FileReadLine FileSetAccessMode FileSetAttribute
++syn keyword cfFunctionName contained FileSetLastModified FileWrite GenerateSecretKey GetGatewayHelper GetAuthUser GetComponentMetaData
++syn keyword cfFunctionName contained GetContextRoot GetEncoding GetFileInfo GetLocaleDisplayName GetLocalHostIP GetMetaData
++syn keyword cfFunctionName contained GetPageContext GetPrinterInfo GetProfileSections GetReadableImageFormats GetSOAPRequest
++syn keyword cfFunctionName contained GetSOAPRequestHeader GetSOAPResponse GetSOAPResponseHeader GetUserRoles GetWriteableImageFormats
++syn keyword cfFunctionName contained ImageAddBorder ImageBlur ImageClearRect ImageCopy ImageCrop ImageDrawArc ImageDrawBeveledRect
++syn keyword cfFunctionName contained ImageDrawCubicCurve ImageDrawPoint ImageDrawLine ImageDrawLines ImageDrawOval
++syn keyword cfFunctionName contained ImageDrawQuadraticCurve ImageDrawRect ImageDrawRoundRect ImageDrawText ImageFlip ImageGetBlob
++syn keyword cfFunctionName contained ImageGetBufferedImage ImageGetEXIFMetadata ImageGetEXIFTag ImageGetHeight ImageGetIPTCMetadata
++syn keyword cfFunctionName contained ImageGetIPTCTag ImageGetWidth ImageGrayscale ImageInfo ImageNegative ImageNew ImageOverlay
++syn keyword cfFunctionName contained ImagePaste ImageRead ImageReadBase64 ImageResize ImageRotate ImageRotateDrawingAxis ImageScaleToFit
++" ColdFusion 9:
++syn keyword cfFunctionName contained ApplicationStop ArrayContains ArrayDelete ArrayFind ArrayFindNoCase IsSpreadsheetFile
++syn keyword cfFunctionName contained IsSpreadsheetObject FileSkipBytes Location ObjectLoad SpreadsheetFormatColumn
++syn keyword cfFunctionName contained SpreadsheetFormatColumns SpreadsheetFormatRow SpreadsheetFormatRows SpreadsheetGetCellComment
++syn keyword cfFunctionName contained CacheGetAllIds CacheGetMetadata CacheGetProperties CacheGet CachePut ObjectSave ORMClearSession
++syn keyword cfFunctionName contained ORMCloseSession ORMEvictQueries ORMEvictCollection SpreadsheetGetCellFormula SpreadsheetGetCellValue
++syn keyword cfFunctionName contained SpreadsheetInfo SpreadsheetMergeCells SpreadsheetNew CacheRemove CacheSetProperties DirectoryCreate
++syn keyword cfFunctionName contained DirectoryDelete DirectoryExists ORMEvictEntity ORMEvictQueries ORMExecuteQuery ORMFlush
++syn keyword cfFunctionName contained ORMGetSession SpreadsheetRead SpreadsheetReadBinary SpreadsheetSetActiveSheetNumber
++syn keyword cfFunctionName contained SpreadsheetSetCellComment SpreadsheetSetCellFormula DirectoryList DirectoryRename EntityDelete
++syn keyword cfFunctionName contained EntityLoad EntityLoadByExample ORMGetSessionFactory ORMReload ObjectEquals SpreadsheetAddColumn
++syn keyword cfFunctionName contained SpreadsheetAddFreezePane SpreadsheetSetCellValue SpreadsheetSetActiveSheet SpreadsheetSetFooter
++syn keyword cfFunctionName contained SpreadsheetSetHeader SpreadsheetSetColumnWidth EntityLoadByPK EntityMerge EntityNew EntityReload
++syn keyword cfFunctionName contained EntitySave SpreadsheetAddImage SpreadsheetAddInfo SpreadsheetAddRow SpreadsheetAddRows
++syn keyword cfFunctionName contained SpreadsheetAddSplitPane SpreadsheetShiftColumns SpreadsheetShiftRows SpreadsheetSetRowHeight
++syn keyword cfFunctionName contained SpreadsheetWrite Trace FileDelete FileSeek FileWriteLine GetFunctionCalledName GetVFSMetaData IsIPv6
++syn keyword cfFunctionName contained IsNull SpreadsheetCreateSheet SpreadsheetDeleteColumn SpreadsheetDeleteColumns SpreadsheetDeleteRow
++syn keyword cfFunctionName contained SpreadsheetDeleteRows SpreadsheetFormatCell TransactionCommit TransactionRollback
++syn keyword cfFunctionName contained TransactionSetSavePoint ThreadTerminate ThreadJoin Throw Writedump Writelog
++
++" Deprecated or obsoleted tags and functions.
++syn keyword cfDeprecatedTag contained cfauthenticate cfimpersonate cfgraph cfgraphdata
++syn keyword cfDeprecatedTag contained cfservlet cfservletparam cftextinput
++syn keyword cfDeprecatedTag contained cfinternaladminsecurity cfnewinternaladminsecurity
++syn keyword cfDeprecatedFunction contained GetK2ServerDocCount GetK2ServerDocCountLimit GetTemplatePath
++syn keyword cfDeprecatedFunction contained IsK2ServerABroker IsK2ServerDocCountExceeded IsK2ServerOnline
++syn keyword cfDeprecatedFunction contained ParameterExists AuthenticatedContext AuthenticatedUser
++syn keyword cfDeprecatedFunction contained isAuthenticated isAuthorized isProtected
++
++" Add to the HTML clusters.
++syn cluster htmlTagNameCluster add=cfTagName,cfCustomTagName,cfDeprecatedTag
++syn cluster htmlArgCluster add=cfArg,cfHashRegion,cfScope
++syn cluster htmlPreproc add=cfHashRegion
+
+-syn cluster cfExpressionCluster contains=cfFunctionName,cfScope,@cfOperatorCluster,cfScriptStringD,cfScriptStringS,cfScriptNumber,cfBool
++syn cluster cfExpressionCluster contains=cfFunctionName,cfScope,@cfOperatorCluster,cfScriptStringD,cfScriptStringS,cfScriptNumber,cfBool,cfComment
+
+ " Evaluation; skip strings ( this helps with cases like nested IIf() )
+-syn region cfHashRegion start=+#+ skip=+"[^"]*"\|'[^']*'+ end=+#+ contains=@cfExpressionCluster,cfScriptParenError
++" containedin to add to the TOP of cfOutputRegion.
++syn region cfHashRegion start=+#+ skip=+"[^"]*"\|'[^']*'+ end=+#+ contained containedin=cfOutputRegion contains=@cfExpressionCluster,cfScriptParenError
++
++" Hashmarks are significant inside cfoutput tags.
++" cfoutput tags may be nested indefinitely.
++syn region cfOutputRegion matchgroup=NONE transparent start=+<cfoutput>+ end=+</cfoutput>+ contains=TOP
+
+ " <cfset>, <cfif>, <cfelseif>, <cfreturn> are analogous to hashmarks (implicit
+ " evaluation) and have 'var'
+-syn region cfSetRegion start="<cfset " start="<cfreturn " start="<cfelseif " start="<cfif " end='>' keepend contains=@cfExpressionCluster,cfSetLHSRegion,cfSetTagEnd,cfScriptType
+-syn region cfSetLHSRegion contained start="<cfreturn" start="<cfelseif" start="<cfif" start="<cfset" end=" " keepend contains=cfTagName,htmlTag
+-syn match cfSetTagEnd contained '>'
+-
+-" CF comments: similar to SGML comments
+-syn region cfComment start='<!---' end='--->' keepend contains=cfCommentTodo
+-syn keyword cfCommentTodo contained TODO FIXME XXX TBD WTF
++syn region cfSetRegion start="<cfset\>" start="<cfreturn\>" start="<cfelseif\>" start="<cfif\>" end='>' keepend contains=@cfExpressionCluster,cfSetLHSRegion,cfSetTagEnd,cfScriptStatement
++syn region cfSetLHSRegion contained start="<cfreturn" start="<cfelseif" start="<cfif" start="<cfset" end="." keepend contains=cfTagName,htmlTag
++syn match cfSetTagEnd contained '>'
++
++" CF comments: similar to SGML comments, but can be nested.
++syn region cfComment start='<!---' end='--->' contains=cfCommentTodo,cfComment
++syn keyword cfCommentTodo contained TODO FIXME XXX TBD WTF
+
+ " CFscript
+-syn match cfScriptLineComment contained "\/\/.*$" contains=cfCommentTodo
+-syn region cfScriptComment contained start="/\*" end="\*/" contains=cfCommentTodo
++" TODO better support for new component/function def syntax
++" TODO better support for 'new'
++" TODO highlight metadata (@ ...) inside comments.
++syn match cfScriptLineComment contained "\/\/.*$" contains=cfCommentTodo
++syn region cfScriptComment contained start="/\*" end="\*/" contains=cfCommentTodo
++syn match cfScriptBraces contained "[{}]"
++syn keyword cfScriptStatement contained return var
+ " in CF, quotes are escaped by doubling
+-syn region cfScriptStringD contained start=+"+ skip=+\\\\\|""+ end=+"+ extend contains=@htmlPreproc,cfHashRegion
+-syn region cfScriptStringS contained start=+'+ skip=+\\\\\|''+ end=+'+ extend contains=@htmlPreproc,cfHashRegion
+-syn match cfScriptNumber contained "\<\d\+\>"
+-syn keyword cfScriptConditional contained if else
+-syn keyword cfScriptRepeat contained while for in
+-syn keyword cfScriptBranch contained break switch case default try catch continue
+-syn keyword cfScriptFunction contained function
+-syn keyword cfScriptType contained var
+-syn match cfScriptBraces contained "[{}]"
+-syn keyword cfScriptStatement contained return
++syn region cfScriptStringD contained start=+"+ skip=+\\\\\|""+ end=+"+ extend contains=@htmlPreproc,cfHashRegion
++syn region cfScriptStringS contained start=+'+ skip=+\\\\\|''+ end=+'+ extend contains=@htmlPreproc,cfHashRegion
++syn match cfScriptNumber contained "\<\d\+\>"
++syn keyword cfScriptConditional contained if else
++syn keyword cfScriptRepeat contained while for in
++syn keyword cfScriptBranch contained break switch case default try catch continue finally
++syn keyword cfScriptKeyword contained function
++" argumentCollection is a special argument to function calls
++syn keyword cfScriptSpecial contained argumentcollection
++" ColdFusion 9:
++syn keyword cfScriptStatement contained new import
++" CFscript equivalents of some tags
++syn keyword cfScriptKeyword contained abort component exit import include
++syn keyword cfScriptKeyword contained interface param pageencoding property rethrow thread transaction
++" function/component syntax
++syn keyword cfScriptSpecial contained required extends
+
+-syn cluster cfScriptCluster contains=cfScriptParen,cfScriptLineComment,cfScriptComment,cfScriptStringD,cfScriptStringS,cfScriptFunction,cfScriptNumber,cfScriptRegexpString,cfScriptBoolean,cfScriptBraces,cfHashRegion,cfFunctionName,cfScope,@cfOperatorCluster,cfScriptConditional,cfScriptRepeat,cfScriptBranch,cfScriptType,@cfExpressionCluster,cfScriptStatement
++
++syn cluster cfScriptCluster contains=cfScriptParen,cfScriptLineComment,cfScriptComment,cfScriptStringD,cfScriptStringS,cfScriptFunction,cfScriptNumber,cfScriptRegexpString,cfScriptBoolean,cfScriptBraces,cfHashRegion,cfFunctionName,cfDeprecatedFunction,cfScope,@cfOperatorCluster,cfScriptConditional,cfScriptRepeat,cfScriptBranch,@cfExpressionCluster,cfScriptStatement,cfScriptSpecial,cfScriptKeyword
+
+ " Errors caused by wrong parenthesis; skip strings
+-syn region cfScriptParen contained transparent skip=+"[^"]*"\|'[^']*'+ start=+(+ end=+)+ contains=@cfScriptCluster
+-syn match cfScrParenError contained +)+
++syn region cfScriptParen contained transparent skip=+"[^"]*"\|'[^']*'+ start=+(+ end=+)+ contains=@cfScriptCluster
++syn match cfScrParenError contained +)+
+
+-syn region cfscriptBlock matchgroup=NONE start="<cfscript>" end="<\/cfscript>"me=s-1 keepend contains=@cfScriptCluster,cfscriptTag,cfScrParenError
+-syn region cfscriptTag contained start='<cfscript' end='>' keepend contains=cfTagName,htmlTag
++syn region cfscriptBlock matchgroup=NONE start="<cfscript>" end="<\/cfscript>"me=s-1 keepend contains=@cfScriptCluster,cfscriptTag,cfScrParenError
++syn region cfscriptTag contained start='<cfscript' end='>' keepend contains=cfTagName,htmlTag
+
+ " CFML
+-syn cluster cfmlCluster contains=cfComment,@htmlTagNameCluster,@htmlPreproc,cfSetRegion,cfscriptBlock
++syn cluster cfmlCluster contains=cfComment,@htmlTagNameCluster,@htmlPreproc,cfSetRegion,cfscriptBlock,cfOutputRegion
+
+-" cfquery = sql
+-unlet b:current_syntax
+-syn include @cfSql <sfile>:p:h/sql.vim
++" cfquery = sql syntax
++if exists("b:current_syntax")
++ unlet b:current_syntax
++endif
++syn include @cfSql $VIMRUNTIME/syntax/sql.vim
+ unlet b:current_syntax
+-syn region cfqueryTag contained start=+<cfquery+ end=+>+ keepend contains=cfTagName,htmlTag
+-syn region cfSqlregion start=+<cfquery[^>]*>+ keepend end=+<\/cfquery>+me=s-1 matchgroup=NONE contains=@cfSql,cfComment,@htmlTagNameCluster,cfqueryTag
++syn region cfqueryTag contained start=+<cfquery+ end=+>+ keepend contains=cfTagName,htmlTag
++syn region cfSqlregion start=+<cfquery\_[^>]*>+ keepend end=+</cfquery>+me=s-1 matchgroup=NONE contains=@cfSql,cfComment,@htmlTagNameCluster,cfqueryTag,cfHashRegion
++
++" Define the highlighting.
++command -nargs=+ CfHiLink hi def link <args>
+
+-" Define the default highlighting.
+-if version >= 508 || !exists("did_cf_syn_inits")
+- if version < 508
+- let did_cf_syn_inits = 1
+- command -nargs=+ HiLink hi link <args>
+- else
+- command -nargs=+ HiLink hi def link <args>
+- endif
+-
+- HiLink cfTagName Statement
+- HiLink cfArg Type
+- HiLink cfFunctionName Function
+- HiLink cfHashRegion PreProc
+- HiLink cfComment Comment
+- HiLink cfCommentTodo Todo
+- HiLink cfOperator Operator
+- HiLink cfOperatorMatch Operator
+- HiLink cfScope Title
+- HiLink cfBool Constant
+-
+- HiLink cfscriptBlock Special
+- HiLink cfscriptTag htmlTag
+- HiLink cfSetRegion PreProc
+- HiLink cfSetLHSRegion htmlTag
+- HiLink cfSetTagEnd htmlTag
+-
+- HiLink cfScriptLineComment Comment
+- HiLink cfScriptComment Comment
+- HiLink cfScriptStringS String
+- HiLink cfScriptStringD String
+- HiLink cfScriptNumber cfScriptValue
+- HiLink cfScriptConditional Conditional
+- HiLink cfScriptRepeat Repeat
+- HiLink cfScriptBranch Conditional
+- HiLink cfScriptType Type
+- HiLink cfScriptStatement Statement
+- HiLink cfScriptBraces Function
+- HiLink cfScriptFunction Function
+- HiLink cfScriptError Error
+- HiLink cfDeprecated Error
+- HiLink cfScrParenError cfScriptError
+-
+- HiLink cfqueryTag htmlTag
+-
+- delcommand HiLink
++if exists("d_noinclude_html")
++ " The default html-style highlighting copied from html.vim.
++ CfHiLink htmlTag Function
++ CfHiLink htmlEndTag Identifier
++ CfHiLink htmlArg Type
++ CfHiLink htmlTagName htmlStatement
++ CfHiLink htmlValue String
++ CfHiLink htmlPreProc PreProc
++ CfHiLink htmlString String
++ CfHiLink htmlStatement Statement
++ CfHiLink htmlValue String
++ CfHiLink htmlTagError htmlError
++ CfHiLink htmlError Error
+ endif
+
++CfHiLink cfTagName Statement
++CfHiLink cfCustomTagName Statement
++CfHiLink cfArg Type
++CfHiLink cfFunctionName Function
++CfHiLink cfHashRegion PreProc
++CfHiLink cfComment Comment
++CfHiLink cfCommentTodo Todo
++CfHiLink cfOperator Operator
++CfHiLink cfOperatorMatch Operator
++CfHiLink cfScope Title
++CfHiLink cfBool Constant
++
++CfHiLink cfscriptBlock Special
++CfHiLink cfscriptTag htmlTag
++CfHiLink cfSetRegion PreProc
++CfHiLink cfSetLHSRegion htmlTag
++CfHiLink cfSetTagEnd htmlTag
++
++CfHiLink cfScriptLineComment Comment
++CfHiLink cfScriptComment Comment
++CfHiLink cfScriptStringS String
++CfHiLink cfScriptStringD String
++CfHiLink cfScriptNumber cfScriptValue
++CfHiLink cfScriptConditional Conditional
++CfHiLink cfScriptRepeat Repeat
++CfHiLink cfScriptBranch Conditional
++CfHiLink cfScriptSpecial Type
++CfHiLink cfScriptStatement Statement
++CfHiLink cfScriptBraces Function
++CfHiLink cfScriptKeyword Function
++CfHiLink cfScriptError Error
++CfHiLink cfDeprecatedTag Error
++CfHiLink cfDeprecatedFunction Error
++CfHiLink cfScrParenError cfScriptError
++
++CfHiLink cfqueryTag htmlTag
++
++delcommand CfHiLink
++
+ let b:current_syntax = "cf"
+
+-" vim: ts=8 sw=2
++" vim: nowrap sw=2 ts=8 noet
+diff -u -r --new-file runtime/syntax.orig/config.vim runtime/syntax/config.vim
+--- runtime/syntax.orig/config.vim 2004-06-07 09:32:35.000000000 -0500
++++ runtime/syntax/config.vim 2008-09-06 07:19:33.000000000 -0500
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: configure.in script: M4 with sh
+ " Maintainer: Christian Hammesr <ch@lathspell.westend.com>
+-" Last Change: 2001 May 09
++" Last Change: 2008 Sep 03
+
+ " Well, I actually even do not know much about m4. This explains why there
+ " is probably very much missing here, yet !
+@@ -26,7 +26,7 @@
+ syn keyword configkeyword if then else fi test for in do done
+ syn keyword configspecial cat rm eval
+ syn region configstring start=+"+ skip=+\\"+ end=+"+
+-syn region configstring start=+`+ skip=+\\'+ end=+'+
++syn region configstring start=+'+ skip=+\\'+ end=+'+
+ syn region configstring start=+`+ skip=+\\'+ end=+`+
+
+ " Define the default highlighting.
+diff -u -r --new-file runtime/syntax.orig/cs.vim runtime/syntax/cs.vim
+--- runtime/syntax.orig/cs.vim 2006-05-03 16:20:02.000000000 -0500
++++ runtime/syntax/cs.vim 2009-09-18 05:28:22.000000000 -0500
+@@ -2,7 +2,7 @@
+ " Language: C#
+ " Maintainer: Anduin Withers <awithers@anduin.com>
+ " Former Maintainer: Johannes Zellner <johannes@zellner.org>
+-" Last Change: Sun Apr 30 19:26:18 PDT 2006
++" Last Change: Fri Aug 14 13:56:37 PDT 2009
+ " Filenames: *.cs
+ " $Id: cs.vim,v 1.4 2006/05/03 21:20:02 vimboss Exp $
+ "
+@@ -78,8 +78,8 @@
+ syn cluster xmlTagHook add=csXmlTag
+
+ syn match csXmlCommentLeader +\/\/\/+ contained
+-syn match csXmlComment +\/\/\/.*$+ contains=csXmlCommentLeader,@csXml
+-syntax include @csXml <sfile>:p:h/xml.vim
++syn match csXmlComment +\/\/\/.*$+ contains=csXmlCommentLeader,@csXml,@Spell
++syntax include @csXml syntax/xml.vim
+ hi def link xmlRegion Comment
+
+
+@@ -100,7 +100,7 @@
+ " unicode characters
+ syn match csUnicodeNumber +\\\(u\x\{4}\|U\x\{8}\)+ contained contains=csUnicodeSpecifier
+ syn match csUnicodeSpecifier +\\[uU]+ contained
+-syn region csVerbatimString start=+@"+ end=+"+ end=+$+ skip=+""+ contains=csVerbatimSpec,@Spell
++syn region csVerbatimString start=+@"+ end=+"+ skip=+""+ contains=csVerbatimSpec,@Spell
+ syn match csVerbatimSpec +@"+he=s+1 contained
+ syn region csString start=+"+ end=+"+ end=+$+ contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell
+ syn match csCharacter "'[^']*'" contains=csSpecialChar,csSpecialCharError
+diff -u -r --new-file runtime/syntax.orig/cucumber.vim runtime/syntax/cucumber.vim
+--- runtime/syntax.orig/cucumber.vim 1969-12-31 18:00:00.000000000 -0600
++++ runtime/syntax/cucumber.vim 2010-03-02 09:17:43.000000000 -0600
+@@ -0,0 +1,117 @@
++" Vim syntax file
++" Language: Cucumber
++" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
++" Filenames: *.feature
++
++if exists("b:current_syntax")
++ finish
++endif
++
++syn case match
++syn sync minlines=20
++
++let g:cucumber_languages = {
++ \"en": {"and": "And\\>", "background": "Background\\>", "but": "But\\>", "examples": "Scenarios\\>\\|Examples\\>", "feature": "Feature\\>", "given": "Given\\>", "scenario": "Scenario\\>", "scenario_outline": "Scenario Outline\\>", "then": "Then\\>", "when": "When\\>"},
++ \"ar": {"and": "\\%u0648\\>", "background": "\\%u0627\\%u0644\\%u062e\\%u0644\\%u0641\\%u064a\\%u0629\\>", "but": "\\%u0644\\%u0643\\%u0646\\>", "examples": "\\%u0627\\%u0645\\%u062b\\%u0644\\%u0629\\>", "feature": "\\%u062e\\%u0627\\%u0635\\%u064a\\%u0629\\>", "given": "\\%u0628\\%u0641\\%u0631\\%u0636\\>", "scenario": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648\\>", "scenario_outline": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648 \\%u0645\\%u062e\\%u0637\\%u0637\\>", "then": "\\%u0627\\%u0630\\%u0627\\%u064b\\>\\|\\%u062b\\%u0645\\>", "when": "\\%u0639\\%u0646\\%u062f\\%u0645\\%u0627\\>\\|\\%u0645\\%u062a\\%u0649\\>"},
++ \"bg": {"and": "\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u0438\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\>", "but": "\\%u041d\\%u043e\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\>", "given": "\\%u0414\\%u0430\\%u0434\\%u0435\\%u043d\\%u043e\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0420\\%u0430\\%u043c\\%u043a\\%u0430 \\%u043d\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "then": "\\%u0422\\%u043e\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0430\\%u0442\\%u043e\\>"},
++ \"cat": {"and": "I\\>", "background": "Antecedents\\>\\|Rerefons\\>", "but": "Per\\%u00f2\\>", "examples": "Exemples\\>", "feature": "Caracter\\%u00edstica\\>", "given": "Donada\\>\\|Donat\\>", "scenario": "Escenari\\>", "scenario_outline": "Esquema de l'escenari\\>", "then": "Aleshores\\>", "when": "Quan\\>"},
++ \"cs": {"and": "A tak\\%u00e9\\>\\|A\\>", "background": "Pozad\\%u00ed\\>\\|Kontext\\>", "but": "Ale\\>", "examples": "P\\%u0159\\%u00edklady\\>", "feature": "Po\\%u017eadavek\\>", "given": "Pokud\\>", "scenario": "Sc\\%u00e9n\\%u00e1\\%u0159\\>", "scenario_outline": "N\\%u00e1\\%u010drt Sc\\%u00e9n\\%u00e1\\%u0159e\\>\\|Osnova sc\\%u00e9n\\%u00e1\\%u0159e\\>", "then": "Pak\\>", "when": "Kdy\\%u017e\\>"},
++ \"cy": {"and": "A\\>", "background": "Cefndir\\>", "but": "Ond\\>", "examples": "Enghreifftiau\\>", "feature": "Arwedd\\>", "given": "anrhegedig a\\>", "scenario": "Scenario\\>", "scenario_outline": "Scenario Amlinellol\\>", "then": "Yna\\>", "when": "Pryd\\>"},
++ \"da": {"and": "Og\\>", "background": "Baggrund\\>", "but": "Men\\>", "examples": "Eksempler\\>", "feature": "Egenskab\\>", "given": "Givet\\>", "scenario": "Scenarie\\>", "scenario_outline": "Abstrakt Scenario\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"},
++ \"de": {"and": "Und\\>", "background": "Grundlage\\>", "but": "Aber\\>", "examples": "Beispiele\\>", "feature": "Funktionalit\\%u00e4t\\>", "given": "Gegeben sei\\>", "scenario": "Szenario\\>", "scenario_outline": "Szenariogrundriss\\>", "then": "Dann\\>", "when": "Wenn\\>"},
++ \"en-au": {"and": "N\\>", "background": "Background\\>", "but": "Cept\\>", "examples": "Cobber\\>", "feature": "Crikey\\>", "given": "Ya know how\\>", "scenario": "Mate\\>", "scenario_outline": "Blokes\\>", "then": "Ya gotta\\>", "when": "When\\>"},
++ \"en-lol": {"and": "AN\\>", "background": "B4\\>", "but": "BUT\\>", "examples": "EXAMPLZ\\>", "feature": "OH HAI\\>", "given": "I CAN HAZ\\>", "scenario": "MISHUN\\>", "scenario_outline": "MISHUN SRSLY\\>", "then": "DEN\\>", "when": "WEN\\>"},
++ \"es": {"and": "Y\\>", "background": "Antecedentes\\>", "but": "Pero\\>", "examples": "Ejemplos\\>", "feature": "Caracter\\%u00edstica\\>", "given": "Dado\\>", "scenario": "Escenario\\>", "scenario_outline": "Esquema del escenario\\>", "then": "Entonces\\>", "when": "Cuando\\>"},
++ \"et": {"and": "Ja\\>", "background": "Taust\\>", "but": "Kuid\\>", "examples": "Juhtumid\\>", "feature": "Omadus\\>", "given": "Eeldades\\>", "scenario": "Stsenaarium\\>", "scenario_outline": "Raamstsenaarium\\>", "then": "Siis\\>", "when": "Kui\\>"},
++ \"fi": {"and": "Ja\\>", "background": "Tausta\\>", "but": "Mutta\\>", "examples": "Tapaukset\\>", "feature": "Ominaisuus\\>", "given": "Oletetaan\\>", "scenario": "Tapaus\\>", "scenario_outline": "Tapausaihio\\>", "then": "Niin\\>", "when": "Kun\\>"},
++ \"fr": {"and": "Et\\>", "background": "Contexte\\>", "but": "Mais\\>", "examples": "Exemples\\>", "feature": "Fonctionnalit\\%u00e9\\>", "given": "Etant donn\\%u00e9\\>\\|Soit\\>", "scenario": "Sc\\%u00e9nario\\>", "scenario_outline": "Plan du sc\\%u00e9nario\\>\\|Plan du Sc\\%u00e9nario\\>", "then": "Alors\\>", "when": "Lorsqu'\\|Lorsque\\>\\|Quand\\>"},
++ \"he": {"and": "\\%u05d5\\%u05d2\\%u05dd\\>", "background": "\\%u05e8\\%u05e7\\%u05e2\\>", "but": "\\%u05d0\\%u05d1\\%u05dc\\>", "examples": "\\%u05d3\\%u05d5\\%u05d2\\%u05de\\%u05d0\\%u05d5\\%u05ea\\>", "feature": "\\%u05ea\\%u05db\\%u05d5\\%u05e0\\%u05d4\\>", "given": "\\%u05d1\\%u05d4\\%u05d9\\%u05e0\\%u05ea\\%u05df\\>", "scenario": "\\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9\\>", "scenario_outline": "\\%u05ea\\%u05d1\\%u05e0\\%u05d9\\%u05ea \\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9\\>", "then": "\\%u05d0\\%u05d6\\%u05d9\\>\\|\\%u05d0\\%u05d6\\>", "when": "\\%u05db\\%u05d0\\%u05e9\\%u05e8\\>"},
++ \"hr": {"and": "I\\>", "background": "Pozadina\\>", "but": "Ali\\>", "examples": "Scenariji\\>\\|Primjeri\\>", "feature": "Mogu\\%u0107nost\\>\\|Mogucnost\\>\\|Osobina\\>", "given": "Zadano\\>\\|Zadani\\>\\|Zadan\\>", "scenario": "Scenarij\\>", "scenario_outline": "Koncept\\>\\|Skica\\>", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"},
++ \"hu": {"and": "\\%u00c9s\\>", "background": "H\\%u00e1tt\\%u00e9r\\>", "but": "De\\>", "examples": "P\\%u00e9ld\\%u00e1k\\>", "feature": "Jellemz\\%u0151\\>", "given": "Ha\\>", "scenario": "Forgat\\%u00f3k\\%u00f6nyv\\>", "scenario_outline": "Forgat\\%u00f3k\\%u00f6nyv v\\%u00e1zlat\\>", "then": "Akkor\\>", "when": "Majd\\>"},
++ \"id": {"and": "Dan\\>", "background": "Dasar\\>", "but": "Tapi\\>", "examples": "Contoh\\>", "feature": "Fitur\\>", "given": "Dengan\\>", "scenario": "Skenario\\>", "scenario_outline": "Skenario konsep\\>", "then": "Maka\\>", "when": "Ketika\\>"},
++ \"it": {"and": "E\\>", "background": "Contesto\\>", "but": "Ma\\>", "examples": "Esempi\\>", "feature": "Funzionalit\\%u00e0\\>", "given": "Dato\\>", "scenario": "Scenario\\>", "scenario_outline": "Schema dello scenario\\>", "then": "Allora\\>", "when": "Quando\\>"},
++ \"ja": {"and": "\\%u304b\\%u3064", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u3057\\%u304b\\%u3057\\|\\%u305f\\%u3060\\%u3057\\|\\%u4f46\\%u3057", "examples": "\\%u30b5\\%u30f3\\%u30d7\\%u30eb\\>\\|\\%u4f8b\\>", "feature": "\\%u30d5\\%u30a3\\%u30fc\\%u30c1\\%u30e3\\>\\|\\%u6a5f\\%u80fd\\>", "given": "\\%u524d\\%u63d0", "scenario": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\>", "scenario_outline": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30a2\\%u30a6\\%u30c8\\%u30e9\\%u30a4\\%u30f3\\>\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\%u30fc\\%u30c8\\>\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\>\\|\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\>", "then": "\\%u306a\\%u3089\\%u3070", "when": "\\%u3082\\%u3057"},
++ \"ko": {"and": "\\%uadf8\\%ub9ac\\%uace0", "background": "\\%ubc30\\%uacbd\\>", "but": "\\%ud558\\%uc9c0\\%ub9cc", "examples": "\\%uc608\\>", "feature": "\\%uae30\\%ub2a5\\>", "given": "\\%uc870\\%uac74", "scenario": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624\\>", "scenario_outline": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624 \\%uac1c\\%uc694\\>", "then": "\\%uadf8\\%ub7ec\\%uba74", "when": "\\%ub9cc\\%uc77c"},
++ \"lt": {"and": "Ir\\>", "background": "Kontekstas\\>", "but": "Bet\\>", "examples": "Pavyzd\\%u017eiai\\>\\|Scenarijai\\>\\|Variantai\\>", "feature": "Savyb\\%u0117\\>", "given": "Duota\\>", "scenario": "Scenarijus\\>", "scenario_outline": "Scenarijaus \\%u0161ablonas\\>", "then": "Tada\\>", "when": "Kai\\>"},
++ \"lv": {"and": "Un\\>", "background": "Situ\\%u0101cija\\>\\|Konteksts\\>", "but": "Bet\\>", "examples": "Piem\\%u0113ri\\>\\|Paraugs\\>", "feature": "Funkcionalit\\%u0101te\\>\\|F\\%u012b\\%u010da\\>", "given": "Kad\\>", "scenario": "Scen\\%u0101rijs\\>", "scenario_outline": "Scen\\%u0101rijs p\\%u0113c parauga\\>", "then": "Tad\\>", "when": "Ja\\>"},
++ \"nl": {"and": "En\\>", "background": "Achtergrond\\>", "but": "Maar\\>", "examples": "Voorbeelden\\>", "feature": "Functionaliteit\\>", "given": "Gegeven\\>\\|Stel\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstract Scenario\\>", "then": "Dan\\>", "when": "Als\\>"},
++ \"no": {"and": "Og\\>", "background": "Bakgrunn\\>", "but": "Men\\>", "examples": "Eksempler\\>", "feature": "Egenskap\\>", "given": "Gitt\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstrakt Scenario\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"},
++ \"pl": {"and": "Oraz\\>", "background": "Za\\%u0142o\\%u017cenia\\>", "but": "Ale\\>", "examples": "Przyk\\%u0142ady\\>", "feature": "W\\%u0142a\\%u015bciwo\\%u015b\\%u0107\\>", "given": "Zak\\%u0142adaj\\%u0105c\\>", "scenario": "Scenariusz\\>", "scenario_outline": "Szablon scenariusza\\>", "then": "Wtedy\\>", "when": "Je\\%u017celi\\>"},
++ \"pt": {"and": "E\\>", "background": "Contexto\\>", "but": "Mas\\>", "examples": "Exemplos\\>", "feature": "Funcionalidade\\>", "given": "Dado\\>", "scenario": "Cen\\%u00e1rio\\>\\|Cenario\\>", "scenario_outline": "Esquema do Cen\\%u00e1rio\\>\\|Esquema do Cenario\\>", "then": "Ent\\%u00e3o\\>\\|Entao\\>", "when": "Quando\\>"},
++ \"ro": {"and": "Si\\>", "background": "Conditii\\>", "but": "Dar\\>", "examples": "Exemplele\\>", "feature": "Functionalitate\\>", "given": "Daca\\>", "scenario": "Scenariu\\>", "scenario_outline": "Scenariul de sablon\\>", "then": "Atunci\\>", "when": "Cand\\>"},
++ \"ro2": {"and": "\\%u0218i\\>", "background": "Condi\\%u0163ii\\>", "but": "Dar\\>", "examples": "Exemplele\\>", "feature": "Func\\%u021bionalitate\\>", "given": "Dac\\%u0103\\>", "scenario": "Scenariu\\>", "scenario_outline": "Scenariul de \\%u015fablon\\>", "then": "Atunci\\>", "when": "C\\%u00e2nd\\>"},
++ \"ru": {"and": "\\%u041a \\%u0442\\%u043e\\%u043c\\%u0443 \\%u0436\\%u0435\\>\\|\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u044b\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\>", "but": "\\%u041d\\%u043e\\>\\|\\%u0410\\>", "examples": "\\%u0417\\%u043d\\%u0430\\%u0447\\%u0435\\%u043d\\%u0438\\%u044f\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\>", "given": "\\%u0414\\%u043e\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u044f\\>", "then": "\\%u0422\\%u043e\\>", "when": "\\%u0415\\%u0441\\%u043b\\%u0438\\>"},
++ \"se": {"and": "Och\\>", "background": "Bakgrund\\>", "but": "Men\\>", "examples": "Exempel\\>", "feature": "Egenskap\\>", "given": "Givet\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstrakt Scenario\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e4r\\>"},
++ \"sk": {"and": "A\\>", "background": "Pozadie\\>", "but": "Ale\\>", "examples": "Pr\\%u00edklady\\>", "feature": "Po\\%u017eiadavka\\>", "given": "Pokia\\%u013e\\>", "scenario": "Scen\\%u00e1r\\>", "scenario_outline": "N\\%u00e1\\%u010drt Scen\\%u00e1ru\\>", "then": "Tak\\>", "when": "Ke\\%u010f\\>"},
++ \"sr": {"and": "\\%u0418\\>", "background": "\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442\\>\\|\\%u041f\\%u043e\\%u0437\\%u0430\\%u0434\\%u0438\\%u043d\\%u0430\\>\\|\\%u041e\\%u0441\\%u043d\\%u043e\\%u0432\\%u0430\\>", "but": "\\%u0410\\%u043b\\%u0438\\>", "examples": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0438\\>\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\>\\|\\%u041c\\%u043e\\%u0433\\%u0443\\%u045b\\%u043d\\%u043e\\%u0441\\%u0442\\>\\|\\%u041e\\%u0441\\%u043e\\%u0431\\%u0438\\%u043d\\%u0430\\>", "given": "\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u043e\\>\\|\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u0435\\>\\|\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u0438\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u043e\\>\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0430\\>\\|\\%u041a\\%u043e\\%u043d\\%u0446\\%u0435\\%u043f\\%u0442\\>\\|\\%u0421\\%u043a\\%u0438\\%u0446\\%u0430\\>", "then": "\\%u041e\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u041a\\%u0430\\%u0434\\%u0430\\>\\|\\%u041a\\%u0430\\%u0434\\>"},
++ \"sr-Latn": {"and": "I\\>", "background": "Kontekst\\>\\|Pozadina\\>\\|Osnova\\>", "but": "Ali\\>", "examples": "Scenariji\\>\\|Primeri\\>", "feature": "Mogu\\%u0107nost\\>\\|Funkcionalnost\\>\\|Mogucnost\\>\\|Osobina\\>", "given": "Zadato\\>\\|Zadate\\>\\|Zatati\\>", "scenario": "Scenario\\>\\|Primer\\>", "scenario_outline": "Struktura scenarija\\>\\|Koncept\\>\\|Skica\\>", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"},
++ \"tr": {"and": "Ve\\>", "background": "Ge\\%u00e7mi\\%u015f\\>", "but": "Fakat\\>\\|Ama\\>", "examples": "\\%u00d6rnekler\\>", "feature": "\\%u00d6zellik\\>", "given": "Diyelim ki\\>", "scenario": "Senaryo\\>", "scenario_outline": "Senaryo tasla\\%u011f\\%u0131\\>", "then": "O zaman\\>", "when": "E\\%u011fer ki\\>"},
++ \"uz": {"and": "\\%u0412\\%u0430\\>", "background": "\\%u0422\\%u0430\\%u0440\\%u0438\\%u0445\\>", "but": "\\%u041b\\%u0435\\%u043a\\%u0438\\%u043d\\>\\|\\%u0411\\%u0438\\%u0440\\%u043e\\%u043a\\>\\|\\%u0410\\%u043c\\%u043c\\%u043e\\>", "examples": "\\%u041c\\%u0438\\%u0441\\%u043e\\%u043b\\%u043b\\%u0430\\%u0440\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\>", "given": "\\%u0410\\%u0433\\%u0430\\%u0440\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439 \\%u0441\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430\\%u0441\\%u0438\\>", "then": "\\%u0423\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u0410\\%u0433\\%u0430\\%u0440\\>"},
++ \"vi": {"and": "V\\%u00e0\\>", "background": "B\\%u1ed1i c\\%u1ea3nh\\>", "but": "Nh\\%u01b0ng\\>", "examples": "D\\%u1eef li\\%u1ec7u\\>", "feature": "T\\%u00ednh n\\%u0103ng\\>", "given": "Bi\\%u1ebft\\>\\|Cho\\>", "scenario": "T\\%u00ecnh hu\\%u1ed1ng\\>\\|K\\%u1ecbch b\\%u1ea3n\\>", "scenario_outline": "Khung t\\%u00ecnh hu\\%u1ed1ng\\>\\|Khung k\\%u1ecbch b\\%u1ea3n\\>", "then": "Th\\%u00ec\\>", "when": "Khi\\>"},
++ \"zh-CN": {"and": "\\%u800c\\%u4e14", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u5982", "scenario": "\\%u573a\\%u666f\\>", "scenario_outline": "\\%u573a\\%u666f\\%u5927\\%u7eb2\\>", "then": "\\%u90a3\\%u4e48", "when": "\\%u5f53"},
++ \"zh-TW": {"and": "\\%u800c\\%u4e14\\|\\%u4e26\\%u4e14", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u8a2d", "scenario": "\\%u5834\\%u666f\\>\\|\\%u5287\\%u672c\\>", "scenario_outline": "\\%u5834\\%u666f\\%u5927\\%u7db1\\>\\|\\%u5287\\%u672c\\%u5927\\%u7db1\\>", "then": "\\%u90a3\\%u9ebc", "when": "\\%u7576"}}
++
++function! s:pattern(key)
++ let language = matchstr(getline(1),'#\s*language:\s*\zs\S\+')
++ if has_key(g:cucumber_languages, language)
++ let languages = [g:cucumber_languages[language]]
++ else
++ let languages = values(g:cucumber_languages)
++ end
++ return '\<\%('.join(map(languages,'get(v:val,a:key,"\\%(a\\&b\\)")'),'\|').'\)'
++endfunction
++
++function! s:Add(name)
++ let next = " skipempty skipwhite nextgroup=".join(map(["Region","AndRegion","ButRegion","Comment","Table"],'"cucumber".a:name.v:val'),",")
++ exe "syn region cucumber".a:name.'Region matchgroup=cucumber'.a:name.' start="\%(^\s*\)\@<=\%('.s:pattern(tolower(a:name)).'\)" end="$"'.next
++ exe 'syn region cucumber'.a:name.'AndRegion matchgroup=cucumber'.a:name.'And start="\%(^\s*\)\@<='.s:pattern('and').'" end="$" contained'.next
++ exe 'syn region cucumber'.a:name.'ButRegion matchgroup=cucumber'.a:name.'But start="\%(^\s*\)\@<='.s:pattern('but').'" end="$" contained'.next
++ exe 'syn match cucumber'.a:name.'Comment "\%(^\s*\)\@<=#.*" contained'.next
++ exe 'syn match cucumber'.a:name.'Table "\%(^\s*\)\@<=|.*" contained contains=cucumberDelimiter'.next
++ exe 'hi def link cucumber'.a:name.'Comment cucumberComment'
++ exe 'hi def link cucumber'.a:name.'But cucumber'.a:name.'And'
++ exe 'hi def link cucumber'.a:name.'And cucumber'.a:name
++ exe 'syn cluster cucumberStepRegions add=cucumber'.a:name.'Region,cucumber'.a:name.'AndRegion,cucumber'.a:name.'ButRegion'
++endfunction
++
++syn match cucumberComment "\%(^\s*\)\@<=#.*"
++syn match cucumberComment "\%(\%^\s*\)\@<=#.*" contains=cucumberLanguage
++syn match cucumberLanguage "\%(#\s*\)\@<=language:" contained
++syn match cucumberUnparsed "\S.*" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberTags,cucumberBackground,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty contained
++syn match cucumberUnparsedComment "#.*" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberTags,cucumberBackground,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty contained
++
++exe 'syn match cucumberFeature "\%(^\s*\)\@<='.s:pattern('feature').':" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberBackground,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty'
++exe 'syn match cucumberBackground "\%(^\s*\)\@<='.s:pattern('background').':"'
++exe 'syn match cucumberScenario "\%(^\s*\)\@<='.s:pattern('scenario').':"'
++exe 'syn match cucumberScenarioOutline "\%(^\s*\)\@<='.s:pattern('scenario_outline').':"'
++exe 'syn match cucumberExamples "\%(^\s*\)\@<='.s:pattern('examples').':" nextgroup=cucumberExampleTable skipempty skipwhite'
++
++syn match cucumberPlaceholder "<[^<>]*>" contained containedin=@cucumberStepRegions
++syn match cucumberExampleTable "\%(^\s*\)\@<=|.*" contains=cucumberDelimiter
++syn match cucumberDelimiter "|" contained
++syn match cucumberTags "\%(^\s*\)\@<=\%(@[^@[:space:]]\+\s\+\)*@[^@[:space:]]\+\s*$"
++syn region cucumberString start=+\%(^\s*\)\@<="""+ end=+"""+
++
++call s:Add('Then')
++call s:Add('When')
++call s:Add('Given')
++
++hi def link cucumberUnparsedComment cucumberComment
++hi def link cucumberComment Comment
++hi def link cucumberLanguage SpecialComment
++hi def link cucumberFeature Macro
++hi def link cucumberBackground Define
++hi def link cucumberScenario Define
++hi def link cucumberScenarioOutline Define
++hi def link cucumberExamples Define
++hi def link cucumberPlaceholder Constant
++hi def link cucumberDelimiter Delimiter
++hi def link cucumberTags Tag
++hi def link cucumberString String
++hi def link cucumberGiven Conditional
++hi def link cucumberWhen Function
++hi def link cucumberThen Type
++
++let b:current_syntax = "cucumber"
++
++" vim:set sts=2 sw=2:
+diff -u -r --new-file runtime/syntax.orig/d.vim runtime/syntax/d.vim
+--- runtime/syntax.orig/d.vim 2006-04-30 11:01:36.000000000 -0500
++++ runtime/syntax/d.vim 2010-01-16 07:33:01.000000000 -0600
+@@ -1,29 +1,44 @@
+-" Vim syntax file for the D programming language (version 0.149).
++" Vim syntax file for the D programming language (version 1.053 and 2.039).
+ "
+ " Language: D
+-" Maintainer: Jason Mills<jmills@cs.mun.ca>
+-" When emailing me, please put the word vim somewhere in the subject
+-" to ensure the email does not get marked as spam.
+-" Last Change: 2006 Apr 30
+-" Version: 0.15
++" Maintainer: Jason Mills<jasonmills@nf.sympatico.ca>
++" Last Change: 2010 Jan 07
++" Version: 0.18
++"
++" Contributors:
++" - Kirk McDonald: version 0.17 updates, with minor modifications
++" (http://paste.dprogramming.com/dplmb7qx?view=hidelines)
++" - Jesse K. Phillips: patch for some keywords and attributes (annotations), with modifications
++" - Tim Keating: patch to fix a bug in highlighting the `\` literal
++" - Frank Benoit: Fixed a bug that caused some identifiers and numbers to highlight as octal number errors.
++"
++" Please email me with bugs, comments, and suggestions.
+ "
+ " Options:
+-" d_comment_strings - set to highlight strings and numbers in comments
++" d_comment_strings - Set to highlight strings and numbers in comments.
+ "
+-" d_hl_operator_overload - set to highlight D's specially named functions
+-" that when overloaded implement unary and binary operators (e.g. cmp).
++" d_hl_operator_overload - Set to highlight D's specially named functions
++" that when overloaded implement unary and binary operators (e.g. opCmp).
+ "
+ " Todo:
+-" - Must determine a better method of sync'ing than simply setting minlines
+-" to a large number for /+ +/.
++" - Determine a better method of sync'ing than simply setting minlines
++" to a large number.
+ "
+-" - Several keywords (namely, in and out) are both storage class and
+-" statements, depending on their context. Must use some matching to figure
+-" out which and highlight appropriately. For now I have made such keywords
+-" statements.
++" - Several keywords (e.g., in, out, inout) are both storage class and
++" statements, depending on their context. Perhaps use pattern matching to
++" figure out which and highlight appropriately. For now I have made such
++" keywords storage classes so their highlighting is consistent with other
++" keywords that are commonly used with them, but are true storage classes,
++" such as lazy. Similarly, I made some statement keywords (e.g. body) storage
++" classes.
+ "
+ " - Mark contents of the asm statement body as special
+ "
++" - Maybe highlight the 'exit', 'failure', and 'success' parts of the
++" scope() statement.
++"
++" - Highlighting DDoc comments.
++"
+
+ " Quit when a syntax file was already loaded
+ if exists("b:current_syntax")
+@@ -33,46 +48,59 @@
+ " Keyword definitions
+ "
+ syn keyword dExternal import package module extern
+-syn keyword dConditional if else switch iftype
++syn keyword dConditional if else switch
+ syn keyword dBranch goto break continue
+-syn keyword dRepeat while for do foreach
++syn keyword dRepeat while for do foreach foreach_reverse
+ syn keyword dBoolean true false
+ syn keyword dConstant null
+-syn keyword dConstant __FILE__ __LINE__ __DATE__ __TIME__ __TIMESTAMP__
++syn keyword dConstant __FILE__ __LINE__ __EOF__ __VERSION__
++syn keyword dConstant __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__
++
+ syn keyword dTypedef alias typedef
+-syn keyword dStructure template interface class enum struct union
++syn keyword dStructure template interface class struct union
++syn keyword dEnum enum
+ syn keyword dOperator new delete typeof typeid cast align is
+ syn keyword dOperator this super
+ if exists("d_hl_operator_overload")
+ syn keyword dOpOverload opNeg opCom opPostInc opPostDec opCast opAdd opSub opSub_r
+ syn keyword dOpOverload opMul opDiv opDiv_r opMod opMod_r opAnd opOr opXor
+ syn keyword dOpOverload opShl opShl_r opShr opShr_r opUShr opUShr_r opCat
+- syn keyword dOpOverload opCat_r opEquals opEquals opCmp opCmp opCmp opCmp
+- syn keyword dOpOverload opAddAssign opSubAssign opMulAssign opDivAssign
++ syn keyword dOpOverload opCat_r opEquals opEquals opCmp
++ syn keyword dOpOverload opAssign opAddAssign opSubAssign opMulAssign opDivAssign
+ syn keyword dOpOverload opModAssign opAndAssign opOrAssign opXorAssign
+ syn keyword dOpOverload opShlAssign opShrAssign opUShrAssign opCatAssign
+ syn keyword dOpOverload opIndex opIndexAssign opCall opSlice opSliceAssign opPos
+- syn keyword dOpOverload opAdd_r opMul_r opAnd_r opOr_r opXor_r
++ syn keyword dOpOverload opAdd_r opMul_r opAnd_r opOr_r opXor_r opIn opIn_r
++ syn keyword dOpOverload opPow opDispatch opStar opDot opApply opApplyReverse
+ endif
+ syn keyword dType ushort int uint long ulong float
+ syn keyword dType void byte ubyte double bit char wchar ucent cent
+-syn keyword dType short bool dchar
++syn keyword dType short bool dchar string wstring dstring
+ syn keyword dType real ireal ifloat idouble creal cfloat cdouble
+ syn keyword dDebug deprecated unittest
+ syn keyword dExceptions throw try catch finally
+ syn keyword dScopeDecl public protected private export
+-syn keyword dStatement version debug return with invariant body scope
+-syn keyword dStatement in out inout asm mixin
+-syn keyword dStatement function delegate
+-syn keyword dStorageClass auto static override final const abstract volatile
+-syn keyword dStorageClass synchronized
++syn keyword dStatement version debug return with
++syn keyword dStatement function delegate __traits asm mixin macro
++syn keyword dStorageClass in out inout ref lazy scope body
++syn keyword dStorageClass pure nothrow
++syn keyword dStorageClass auto static override final abstract volatile __gshared __thread
++syn keyword dStorageClass synchronized immutable shared const invariant lazy
+ syn keyword dPragma pragma
+
++" Attributes/annotations
++syn match dAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>"
+
+ " Assert is a statement and a module name.
+ syn match dAssert "^assert\>"
+ syn match dAssert "[^.]\s*\<assert\>"ms=s+1
+
++" dTokens is used by the token string highlighting
++syn cluster dTokens contains=dExternal,dConditional,dBranch,dRepeat,dBoolean
++syn cluster dTokens add=dConstant,dTypedef,dStructure,dOperator,dOpOverload
++syn cluster dTokens add=dType,dDebug,dExceptions,dScopeDecl,dStatement
++syn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation
++
+ " Marks contents of the asm statment body as special
+ "
+ " TODO
+@@ -85,12 +113,14 @@
+ " Labels
+ "
+ " We contain dScopeDecl so public: private: etc. are not highlighted like labels
+-syn match dUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=dLabel,dScopeDecl
++syn match dUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=dLabel,dScopeDecl,dEnum
+ syn keyword dLabel case default
+
++syn cluster dTokens add=dUserLabel,dLabel
++
+ " Comments
+ "
+-syn keyword dTodo contained TODO FIXME TEMP XXX
++syn keyword dTodo contained TODO FIXME TEMP REFACTOR REVIEW HACK BUG XXX
+ syn match dCommentStar contained "^\s*\*[^/]"me=e-1
+ syn match dCommentStar contained "^\s*\*$"
+ syn match dCommentPlus contained "^\s*+[^/]"me=e-1
+@@ -114,6 +144,8 @@
+ hi link dCommentStar dBlockComment
+ hi link dCommentPlus dNestedComment
+
++syn cluster dTokens add=dBlockComment,dNestedComment,dLineComment
++
+ " /+ +/ style comments and strings that span multiple lines can cause
+ " problems. To play it safe, set minlines to a large number.
+ syn sync minlines=200
+@@ -125,24 +157,55 @@
+ syn match dSpecialCharError contained "[^']"
+
+ " Escape sequences (oct,specal char,hex,wchar, character entities \&xxx;)
+-" These are not contained because they are considered string litterals
++" These are not contained because they are considered string literals.
+ syn match dEscSequence "\\\(\o\{1,3}\|[\"\\'\\?ntbrfva]\|u\x\{4}\|U\x\{8}\|x\x\x\)"
+-syn match dEscSequence "\\&[^;& \t]\+;"
++syn match dEscSequence "\\&[^;& \t]\+;"
+ syn match dCharacter "'[^']*'" contains=dEscSequence,dSpecialCharError
+ syn match dCharacter "'\\''" contains=dEscSequence
+ syn match dCharacter "'[^\\]'"
+
++syn cluster dTokens add=dEscSequence,dCharacter
++
+ " Unicode characters
+ "
+ syn match dUnicode "\\u\d\{4\}"
+
+-
+ " String.
+ "
+-syn region dString start=+"+ end=+"[cwd]\=+ contains=dEscSequence,@Spell
+-syn region dRawString start=+`+ skip=+\\`+ end=+`[cwd]\=+ contains=@Spell
+-syn region dRawString start=+r"+ skip=+\\"+ end=+"[cwd]\=+ contains=@Spell
+-syn region dHexString start=+x"+ skip=+\\"+ end=+"[cwd]\=+ contains=@Spell
++syn region dString start=+"+ end=+"[cwd]\=+ skip=+\\\\\|\\"+ contains=dEscSequence,@Spell
++syn region dRawString start=+`+ end=+`[cwd]\=+ contains=@Spell
++syn region dRawString start=+r"+ end=+"[cwd]\=+ contains=@Spell
++syn region dHexString start=+x"+ end=+"[cwd]\=+ contains=@Spell
++syn region dDelimString start=+q"\z(.\)+ end=+\z1"+ contains=@Spell
++syn region dHereString start=+q"\z(\I\i*\)\n+ end=+\n\z1"+ contains=@Spell
++
++" Nesting delimited string contents
++"
++syn region dNestParenString start=+(+ end=+)+ contained transparent contains=dNestParenString,@Spell
++syn region dNestBrackString start=+\[+ end=+\]+ contained transparent contains=dNestBrackString,@Spell
++syn region dNestAngleString start=+<+ end=+>+ contained transparent contains=dNestAngleString,@Spell
++syn region dNestCurlyString start=+{+ end=+}+ contained transparent contains=dNestCurlyString,@Spell
++
++" Nesting delimited strings
++"
++syn region dParenString matchgroup=dParenString start=+q"(+ end=+)"+ contains=dNestParenString,@Spell
++syn region dBrackString matchgroup=dBrackString start=+q"\[+ end=+\]"+ contains=dNestBrackString,@Spell
++syn region dAngleString matchgroup=dAngleString start=+q"<+ end=+>"+ contains=dNestAngleString,@Spell
++syn region dCurlyString matchgroup=dCurlyString start=+q"{+ end=+}"+ contains=dNestCurlyString,@Spell
++
++hi link dParenString dNestString
++hi link dBrackString dNestString
++hi link dAngleString dNestString
++hi link dCurlyString dNestString
++
++syn cluster dTokens add=dString,dRawString,dHexString,dDelimString,dNestString
++
++" Token strings
++"
++syn region dNestTokenString start=+{+ end=+}+ contained contains=dNestTokenString,@dTokens
++syn region dTokenString matchgroup=dTokenStringBrack transparent start=+q{+ end=+}+ contains=dNestTokenString,@dTokens
++
++syn cluster dTokens add=dTokenString
+
+ " Numbers
+ "
+@@ -177,6 +240,8 @@
+ "floating point number, without dot, with exponent
+ syn match dHexFloat display "\<0x[0-9a-f_]\+p[-+]\=[0-9_]\+[fl]\=i\=\>"
+
++syn cluster dTokens add=dDec,dHex,dOctal,dOctalError,dBinary,dFloat,dHexFloat
++
+ syn case match
+
+ " Pragma (preprocessor) support
+@@ -205,6 +270,10 @@
+ hi def link dStorageClass StorageClass
+ hi def link dBoolean Boolean
+ hi def link dUnicode Special
++hi def link dTokenStringBrack String
++hi def link dHereString String
++hi def link dNestString String
++hi def link dDelimString String
+ hi def link dRawString String
+ hi def link dString String
+ hi def link dHexString String
+@@ -213,9 +282,10 @@
+ hi def link dSpecialCharError Error
+ hi def link dOctalError Error
+ hi def link dOperator Operator
+-hi def link dOpOverload Operator
++hi def link dOpOverload Identifier
+ hi def link dConstant Constant
+ hi def link dTypedef Typedef
++hi def link dEnum Structure
+ hi def link dStructure Structure
+ hi def link dTodo Todo
+ hi def link dType Type
+@@ -224,7 +294,8 @@
+ hi def link dNestedComment Comment
+ hi def link dExternal Include
+ hi def link dPragma PreProc
++hi def link dAnnotation PreProc
+
+ let b:current_syntax = "d"
+-
++
+ " vim: ts=8 noet
+diff -u -r --new-file runtime/syntax.orig/debchangelog.vim runtime/syntax/debchangelog.vim
+--- runtime/syntax.orig/debchangelog.vim 2008-07-06 12:51:40.000000000 -0500
++++ runtime/syntax/debchangelog.vim 2009-09-18 05:28:22.000000000 -0500
+@@ -3,7 +3,7 @@
+ " Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+ " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
+ " Wichert Akkerman <wakkerma@debian.org>
+-" Last Change: 2008-01-16
++" Last Change: 2009 Jun 05
+ " URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/syntax/debchangelog.vim;hb=debian
+
+ " Standard syntax initialization
+@@ -17,9 +17,9 @@
+ syn case ignore
+
+ " Define some common expressions we can use later on
+-syn match debchangelogName contained "^[[:alpha:]][[:alnum:].+-]\+ "
++syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
+ syn match debchangelogUrgency contained "; urgency=\(low\|medium\|high\|critical\|emergency\)\( \S.*\)\="
+-syn match debchangelogTarget contained "\v %(%(old)=stable|frozen|unstable|%(testing-|%(old)=stable-)=proposed-updates|experimental|%(sarge|etch|lenny)-%(backports|volatile)|%(testing|%(old)=stable)-security|%(dapper|feisty|gutsy|hardy|intrepid)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
++syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(etch|lenny)-%(backports|volatile)|%(dapper|hardy|intrepid|jaunty|karmic)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
+ syn match debchangelogVersion contained "(.\{-})"
+ syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
+ syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
+diff -u -r --new-file runtime/syntax.orig/debcontrol.vim runtime/syntax/debcontrol.vim
+--- runtime/syntax.orig/debcontrol.vim 2008-07-06 12:51:40.000000000 -0500
++++ runtime/syntax/debcontrol.vim 2009-09-18 05:30:48.000000000 -0500
+@@ -3,7 +3,7 @@
+ " Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+ " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
+ " Wichert Akkerman <wakkerma@debian.org>
+-" Last Change: 2008-02-23
++" Last Change: 2009 July 14
+ " URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/ftplugin/debcontrol.vim;hb=debian
+
+ " Comments are very welcome - but please make sure that you are commenting on
+@@ -28,10 +28,10 @@
+ syn match debControlSpace " "
+
+ " Define some common expressions we can use later on
+-syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(e[bl]\)\=\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)"
++syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(e[bl]\)\=\|avr32\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|amd64\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)"
+ syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
+ syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
+-syn match debcontrolSection contained "\(\(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\|restricted\|universe\|multiverse\)/\)\=\(admin\|base\|comm\|devel\|doc\|editors\|electronics\|embedded\|games\|gnome\|graphics\|hamradio\|interpreters\|kde\|libs\|libdevel\|mail\|math\|misc\|net\|news\|oldlibs\|otherosfs\|perl\|python\|science\|shells\|sound\|text\|tex\|utils\|web\|x11\|debian-installer\)"
++syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|java|kde|kernel|libs|libdevel|lisp|localization|mail|math|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
+ syn match debcontrolPackageType contained "u\?deb"
+ syn match debcontrolVariable contained "\${.\{-}}"
+ syn match debcontrolDmUpload contained "\cyes"
+@@ -41,7 +41,7 @@
+ syn match debcontrolHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
+ syn match debcontrolVcsSvn contained "\vsvn%(\+ssh)?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
+ syn match debcontrolVcsCvs contained "\v%(\-d *)?:pserver:[^@]+\@[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?:/[^[:space:]]*%( [^[:space:]]+)?$"
+-syn match debcontrolVcsGit contained "\vgit://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
++syn match debcontrolVcsGit contained "\v%(git|http)://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
+
+ " An email address
+ syn match debcontrolEmail "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
+@@ -53,7 +53,7 @@
+ syn case ignore
+
+ " List of all legal keys
+-syn match debcontrolKey contained "^\(Source\|Package\|Section\|Priority\|Maintainer\|Uploaders\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Architecture\|Description\|Bugs\|Origin\|Enhances\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|XC-Package-Type\|\%(XS-\)\=DM-Upload-Allowed\): *"
++syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Essential\|Architecture\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|XC-Package-Type\|\%(XS-\)\=DM-Upload-Allowed\): *"
+
+ " Fields for which we do strict syntax checking
+ syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline
+@@ -62,15 +62,15 @@
+ syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline
+ syn region debcontrolStrictField start="^XC-Package-Type" end="$" contains=debcontrolKey,debcontrolPackageType oneline
+ syn region debcontrolStrictField start="^Homepage" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
+-syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
+-syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
+-syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
+-syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
+-syn region debcontrolStrictField start="^\%(XS-\)\?DM-Upload-Allowed" end="$" contains=debcontrolKey,debcontrolDmUpload oneline
++syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
++syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
++syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
++syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
++syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolKey,debcontrolDmUpload oneline
+
+ " Catch-all for the other legal fields
+-syn region debcontrolField start="^\(Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X\(S\|B\)-Python-Version\|XSBC-Original-Maintainer\|\(XS-\)\?Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
+-syn region debcontrolMultiField start="^\(Build-\(Conflicts\|Depends\)\(-Indep\)\=\|\(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ ]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable
++syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
++syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
+
+ " Associate our matches and regions with pretty colours
+ if version >= 508 || !exists("did_debcontrol_syn_inits")
+diff -u -r --new-file runtime/syntax.orig/debsources.vim runtime/syntax/debsources.vim
+--- runtime/syntax.orig/debsources.vim 2008-07-06 12:51:40.000000000 -0500
++++ runtime/syntax/debsources.vim 2009-09-18 05:28:22.000000000 -0500
+@@ -2,7 +2,7 @@
+ " Language: Debian sources.list
+ " Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+ " Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
+-" Last Change: 2008-04-25
++" Last Change: 2009 Apr 17
+ " URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/syntax/debsources.vim;hb=debian
+
+ " Standard syntax initialization
+@@ -19,11 +19,11 @@
+ syn match debsourcesKeyword /\(deb-src\|deb\|main\|contrib\|non-free\|restricted\|universe\|multiverse\)/
+
+ " Match comments
+-syn match debsourcesComment /#.*/
++syn match debsourcesComment /#.*/ contains=@Spell
+
+ " Match uri's
+ syn match debsourcesUri +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
+-syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(sarge\|etch\|lenny\|\(old\)\=stable\|testing\|unstable\|sid\|experimental\|dapper\|feisty\|gutsy\|hardy\|intrepid\)\([-[:alnum:]_./]*\)+
++syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(etch\|lenny\|squeeze\|\(old\)\=stable\|testing\|unstable\|sid\|experimental\|dapper\|hardy\|intrepid\|jaunty\|karmic\)\([-[:alnum:]_./]*\)+
+
+ " Associate our matches and regions with pretty colours
+ hi def link debsourcesLine Error
+diff -u -r --new-file runtime/syntax.orig/django.vim runtime/syntax/django.vim
+--- runtime/syntax.orig/django.vim 2007-05-06 05:32:18.000000000 -0500
++++ runtime/syntax/django.vim 2009-01-14 14:15:05.000000000 -0600
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: Django template
+ " Maintainer: Dave Hodder <dmh@dmh.org.uk>
+-" Last Change: 2007 Apr 21
++" Last Change: 2008 Dec 18
+
+ " For version 5.x: Clear all syntax items
+ " For version 6.x: Quit when a syntax file was already loaded
+@@ -18,8 +18,9 @@
+
+ " Django template built-in tags and parameters
+ " 'comment' doesn't appear here because it gets special treatment
++syn keyword djangoStatement contained autoescape on off endautoescape
+ syn keyword djangoStatement contained and as block endblock by cycle debug else
+-syn keyword djangoStatement contained extends filter endfilter firstof for
++syn keyword djangoStatement contained extends filter endfilter firstof for empty
+ syn keyword djangoStatement contained endfor if endif ifchanged endifchanged
+ syn keyword djangoStatement contained ifequal endifequal ifnotequal
+ syn keyword djangoStatement contained endifnotequal in include load not now or
+@@ -35,15 +36,15 @@
+ " Django templete built-in filters
+ syn keyword djangoFilter contained add addslashes capfirst center cut date
+ syn keyword djangoFilter contained default default_if_none dictsort
+-syn keyword djangoFilter contained dictsortreversed divisibleby escape
++syn keyword djangoFilter contained dictsortreversed divisibleby escape escapejs
+ syn keyword djangoFilter contained filesizeformat first fix_ampersands
+-syn keyword djangoFilter contained floatformat get_digit join length length_is
++syn keyword djangoFilter contained floatformat force_escape get_digit iriencode join last length length_is
+ syn keyword djangoFilter contained linebreaks linebreaksbr linenumbers ljust
+ syn keyword djangoFilter contained lower make_list phone2numeric pluralize
+-syn keyword djangoFilter contained pprint random removetags rjust slice slugify
++syn keyword djangoFilter contained pprint random removetags rjust safe slice slugify
+ syn keyword djangoFilter contained stringformat striptags
+ syn keyword djangoFilter contained time timesince timeuntil title
+-syn keyword djangoFilter contained truncatewords unordered_list upper urlencode
++syn keyword djangoFilter contained truncatewords truncatewords_html unordered_list upper urlencode
+ syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno
+
+ " Keywords to highlight within comments
+diff -u -r --new-file runtime/syntax.orig/dosbatch.vim runtime/syntax/dosbatch.vim
+--- runtime/syntax.orig/dosbatch.vim 2008-05-10 15:38:38.000000000 -0500
++++ runtime/syntax/dosbatch.vim 2009-09-18 05:28:22.000000000 -0500
+@@ -2,7 +2,7 @@
+ " Language: MSDOS batch file (with NT command extensions)
+ " Maintainer: Mike Williams <mrw@eandem.co.uk>
+ " Filenames: *.bat
+-" Last Change: 10th May 2008
++" Last Change: 6th September 2009
+ " Web Page: http://www.eandem.co.uk/mrw/vim
+ "
+ " Options Flags:
+@@ -36,7 +36,7 @@
+ syn case match
+ syn keyword dosbatchOperator EQU NEQ LSS LEQ GTR GEQ
+ syn case ignore
+-syn match dosbatchOperator "\s[-+\*/%]\s"
++syn match dosbatchOperator "\s[-+\*/%!~]\s"
+ syn match dosbatchOperator "="
+ syn match dosbatchOperator "[-+\*/%]="
+ syn match dosbatchOperator "\s\(&\||\|^\|<<\|>>\)=\=\s"
+@@ -51,10 +51,10 @@
+ syn match dosbatchCmd "(\s*'[^']*'"lc=1 contains=dosbatchString,dosbatchVariable,dosBatchArgument,@dosbatchNumber,dosbatchImplicit,dosbatchStatement,dosbatchConditional,dosbatchRepeat,dosbatchOperator
+
+ " Numbers - surround with ws to not include in dir and filenames
+-syn match dosbatchInteger "[[:space:]=(/:]\d\+"lc=1
+-syn match dosbatchHex "[[:space:]=(/:]0x\x\+"lc=1
+-syn match dosbatchBinary "[[:space:]=(/:]0b[01]\+"lc=1
+-syn match dosbatchOctal "[[:space:]=(/:]0\o\+"lc=1
++syn match dosbatchInteger "[[:space:]=(/:,!~-]\d\+"lc=1
++syn match dosbatchHex "[[:space:]=(/:,!~-]0x\x\+"lc=1
++syn match dosbatchBinary "[[:space:]=(/:,!~-]0b[01]\+"lc=1
++syn match dosbatchOctal "[[:space:]=(/:,!~-]0\o\+"lc=1
+ syn cluster dosbatchNumber contains=dosbatchInteger,dosbatchHex,dosbatchBinary,dosbatchOctal
+
+ " Command line switches
+@@ -69,15 +69,15 @@
+ syn match dosbatchIdentifier contained "\s\h\w*\>"
+ syn match dosbatchVariable "%\h\w*%"
+ syn match dosbatchVariable "%\h\w*:\*\=[^=]*=[^%]*%"
+-syn match dosbatchVariable "%\h\w*:\~\d\+,\d\+%" contains=dosbatchInteger
++syn match dosbatchVariable "%\h\w*:\~[-]\=\d\+\(,[-]\=\d\+\)\=%" contains=dosbatchInteger
+ syn match dosbatchVariable "!\h\w*!"
+-syn match dosbatchVariable "!\h\w*:\*\=[^=]*=[^%]*!"
+-syn match dosbatchVariable "!\h\w*:\~\d\+,\d\+!" contains=dosbatchInteger
++syn match dosbatchVariable "!\h\w*:\*\=[^=]*=[^!]*!"
++syn match dosbatchVariable "!\h\w*:\~[-]\=\d\+\(,[-]\=\d\+\)\=!" contains=dosbatchInteger
+ syn match dosbatchSet "\s\h\w*[+-]\==\{-1}" contains=dosbatchIdentifier,dosbatchOperator
+
+ " Args to bat files and for loops, etc
+ syn match dosbatchArgument "%\(\d\|\*\)"
+-syn match dosbatchArgument "%%[a-z]\>"
++syn match dosbatchArgument "%[a-z]\>"
+ if dosbatch_cmdextversion == 1
+ syn match dosbatchArgument "%\~[fdpnxs]\+\(\($PATH:\)\=[a-z]\|\d\)\>"
+ else
+@@ -92,7 +92,9 @@
+
+ " Comments - usual rem but also two colons as first non-space is an idiom
+ syn match dosbatchComment "^rem\($\|\s.*$\)"lc=3 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
++syn match dosbatchComment "^@rem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
+ syn match dosbatchComment "\srem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
++syn match dosbatchComment "\s@rem\($\|\s.*$\)"lc=5 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
+ syn match dosbatchComment "\s*:\s*:.*$" contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
+
+ " Comments in ()'s - still to handle spaces before rem
+diff -u -r --new-file runtime/syntax.orig/doxygen.vim runtime/syntax/doxygen.vim
+--- runtime/syntax.orig/doxygen.vim 2008-07-22 13:41:00.000000000 -0500
++++ runtime/syntax/doxygen.vim 2009-01-28 10:23:36.000000000 -0600
+@@ -2,8 +2,8 @@
+ " Language: doxygen on top of c, cpp, idl, java, php
+ " Maintainer: Michael Geddes <vimmer@frog.wheelycreek.net>
+ " Author: Michael Geddes
+-" Last Change: July 2008
+-" Version: 1.22
++" Last Change: Jan 2009
++" Version: 1.23
+ "
+ " Copyright 2004-2008 Michael Geddes
+ " Please feel free to use, modify & distribute all or part of this script,
+@@ -239,7 +239,7 @@
+ " #Link hilighting.
+ syn match doxygenHashLink /\([a-zA-Z_][0-9a-zA-Z_]*\)\?#\(\.[0-9a-zA-Z_]\@=\|[a-zA-Z0-9_]\+\|::\|()\)\+/ contained contains=doxygenHashSpecial
+ syn match doxygenHashSpecial /#/ contained
+- syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@]\+/ contained
++ syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@~]\+/ contained
+
+ " Handle \page. This does not use doxygenBrief.
+ syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage
+diff -u -r --new-file runtime/syntax.orig/erlang.vim runtime/syntax/erlang.vim
+--- runtime/syntax.orig/erlang.vim 2008-03-15 09:01:37.000000000 -0500
++++ runtime/syntax/erlang.vim 2009-11-28 06:33:42.000000000 -0600
+@@ -50,7 +50,7 @@
+ " Operators
+ syn match erlangOperator "+\|-\|\*\|\/"
+ syn keyword erlangOperator div rem or xor bor bxor bsl bsr
+- syn keyword erlangOperator and band not bnot
++ syn keyword erlangOperator and band not bnot andalso orelse
+ syn match erlangOperator "==\|/=\|=:=\|=/=\|<\|=<\|>\|>="
+ syn match erlangOperator "++\|--\|=\|!\|<-"
+
+@@ -123,7 +123,7 @@
+
+ if ! exists ("erlang_keywords")
+ " Constants and Directives
+- syn match erlangDirective "-behaviour\|-behaviour"
++ syn match erlangDirective "-behaviour\|-behavior"
+ syn match erlangDirective "-compile\|-define\|-else\|-endif\|-export\|-file"
+ syn match erlangDirective "-ifdef\|-ifndef\|-import\|-include_lib\|-include"
+ syn match erlangDirective "-module\|-record\|-undef"
+diff -u -r --new-file runtime/syntax.orig/form.vim runtime/syntax/form.vim
+--- runtime/syntax.orig/form.vim 2004-06-07 09:32:35.000000000 -0500
++++ runtime/syntax/form.vim 2009-12-16 14:38:20.000000000 -0600
+@@ -1,7 +1,10 @@
+ " Vim syntax file
+ " Language: FORM
++" Version: 2.0
+ " Maintainer: Michael M. Tung <michael.tung@uni-mainz.de>
+-" Last Change: 2001 May 10
++" Last Change: <Thu Oct 23 13:11:21 CEST 2008>
++" Past Change: <October 2008 Thomas Reiter thomasr@nikhef.nl>
++" Past Change: <Wed, 2005/05/25 09:24:58 arwagner wptx44>
+
+ " First public release based on 'Symbolic Manipulation with FORM'
+ " by J.A.M. Vermaseren, CAN, Netherlands, 1991.
+@@ -18,30 +21,73 @@
+
+ syn case ignore
+
+-" A bunch of useful FORM keywords
++" a bunch of useful FORM keywords
+ syn keyword formType global local
+ syn keyword formHeaderStatement symbol symbols cfunction cfunctions
+ syn keyword formHeaderStatement function functions vector vectors
+-syn keyword formHeaderStatement set sets index indices
++syn keyword formHeaderStatement tensor tensors ctensor ctensors
++syn keyword formHeaderStatement set sets index indices table ctable
+ syn keyword formHeaderStatement dimension dimensions unittrace
+-syn keyword formStatement id identify drop skip
+-syn keyword formStatement write nwrite
+-syn keyword formStatement format print nprint load save
+-syn keyword formStatement bracket brackets
+-syn keyword formStatement multiply count match only discard
+-syn keyword formStatement trace4 traceN contract symmetrize antisymmetrize
+-syn keyword formConditional if else endif while
++syn keyword formConditional if else elseif endif while
+ syn keyword formConditional repeat endrepeat label goto
++syn keyword formConditional argument endargument exit
++syn keyword formConditional inexpression inside term
++syn keyword formConditional endinexpression endinside endterm
++syn keyword formStatement abrackets also antibrackets antisymmetrize
++syn keyword formStatement argexplode argimplode apply auto autodeclare
++syn keyword formStatement brackets chainin chainout chisholm cleartable
++syn keyword formStatement collect commuting compress contract
++syn keyword formStatement cyclesymmetrize deallocatetable delete
++syn keyword formStatement dimension discard disorder drop factarg fill
++syn keyword formStatement fillexpression fixindex format funpowers hide
++syn keyword formStatement identify idnew idold ifmatch inparallel
++syn keyword formStatement insidefirst keep load makeinteger many metric
++syn keyword formStatement moduleoption modulus multi multiply ndrop
++syn keyword formStatement nfunctions nhide normalize notinparallel
++syn keyword formStatement nprint nskip ntable ntensors nunhide nwrite
++syn keyword formStatement off on once only polyfun pophide print
++syn keyword formStatement printtable propercount pushhide ratio
++syn keyword formStatement rcyclesymmetrize redefine renumber
++syn keyword formStatement replaceinarg replaceloop save select
++syn keyword formStatement setexitflag skip slavepatchsize sort splitarg
++syn keyword formStatement splitfirstarg splitlastarg sum symmetrize
++syn keyword formStatement tablebase testuse threadbucketsize totensor
++syn keyword formStatement tovector trace4 tracen tryreplace unhide
++syn keyword formStatement unittrace vectors write
++" for compatibility with older FORM versions:
++syn keyword formStatement id bracket count match traceN
+
+ " some special functions
+-syn keyword formStatement g_ gi_ g5_ g6_ g7_ 5_ 6_ 7_
+-syn keyword formStatement e_ d_ delta_ theta_ sum_ sump_
++syn keyword formStatement abs_ bernoulli_ binom_ conjg_ count_
++syn keyword formStatement d_ dd_ delta_ deltap_ denom_ distrib_
++syn keyword formStatement dum_ dummy_ dummyten_ e_ exp_ fac_
++syn keyword formStatement factorin_ firstbracket_ g5_ g6_ g7_
++syn keyword formStatement g_ gcd_ gi_ integer_ invfac_ match_
++syn keyword formStatement max_ maxpowerof_ min_ minpowerof_
++syn keyword formStatement mod_ nargs_ nterms_ pattern_ poly_
++syn keyword formStatement polyadd_ polydiv_ polygcd_ polyintfac_
++syn keyword formStatement polymul_ polynorm_ polyrem_ polysub_
++syn keyword formStatement replace_ reverse_ root_ setfun_ sig_
++syn keyword formStatement sign_ sum_ sump_ table_ tbl_ term_
++syn keyword formStatement termsin_ termsinbracket_ theta_ thetap_
++syn keyword formStatement 5_ 6_ 7_
++
++syn keyword formReserved sqrt_ ln_ sin_ cos_ tan_ asin_ acos_
++syn keyword formReserved atan_ atan2_ sinh_ cosh_ tanh_ asinh_
++syn keyword formReserved acosh_ atanh_ li2_ lin_
++
++syn keyword formTodo contained TODO FIXME XXX
++
++syn match formSpecial display contained "\\\(n\|t\|b\|\\\|\"\)"
++syn match formSpecial display contained "%\(%\|e\|E\|s\|f\|\$\)"
++syn match formSpecial "\<N\d\+_[?]"
+
+ " pattern matching for keywords
+-syn match formComment "^\ *\*.*$"
+-syn match formComment "\;\ *\*.*$"
+-syn region formString start=+"+ end=+"+
++syn match formComment "^\ *\*.*$" contains=formTodo
++syn match formComment "\;\ *\*.*$" contains=formTodo
++syn region formString start=+"+ end=+"+ contains=formSpecial
+ syn region formString start=+'+ end=+'+
++syn region formNestedString start=+`+ end=+'+ contains=formNestedString
+ syn match formPreProc "^\=\#[a-zA-z][a-zA-Z0-9]*\>"
+ syn match formNumber "\<\d\+\>"
+ syn match formNumber "\<\d\+\.\d*\>"
+@@ -50,6 +96,13 @@
+ syn match formNumber "-\.\d" contains=Number
+ syn match formNumber "i_\+\>"
+ syn match formNumber "fac_\+\>"
++" pattern matching wildcards
++syn match formNumber "?[A-z0-9]*"
++" dollar-variables (new in 3.x)
++syn match formNumber "\\$[A-z0-9]*"
++" scalar products
++syn match formNumber "^\=[a-zA-z][a-zA-Z0-9]*\.[a-zA-z][a-zA-Z0-9]*\>"
++
+ syn match formDirective "^\=\.[a-zA-z][a-zA-Z0-9]*\>"
+
+ " hi User Labels
+@@ -74,6 +127,10 @@
+ HiLink formDirective PreProc
+ HiLink formType Type
+ HiLink formString String
++ HiLink formNestedString String
++ HiLink formReserved Error
++ HiLink formTodo Todo
++ HiLink formSpecial SpecialChar
+
+ if !exists("form_enhanced_color")
+ HiLink formHeaderStatement Statement
+diff -u -r --new-file runtime/syntax.orig/fortran.vim runtime/syntax/fortran.vim
+--- runtime/syntax.orig/fortran.vim 2006-04-22 06:22:12.000000000 -0500
++++ runtime/syntax/fortran.vim 2008-11-06 10:05:04.000000000 -0600
+@@ -2,7 +2,7 @@
+ " Language: Fortran95 (and Fortran90, Fortran77, F and elf90)
+ " Version: 0.88
+ " URL: http://www.unb.ca/chem/ajit/syntax/fortran.vim
+-" Last Change: 2006 Apr. 22
++" Last Change: 2008 Nov 01
+ " Maintainer: Ajit J. Thakkar (ajit AT unb.ca); <http://www.unb.ca/chem/ajit/>
+ " Usage: Do :help fortran-syntax from Vim
+ " Credits:
+@@ -300,7 +300,7 @@
+ syn match fortranLabelError "^.\{-,4}[^0-9 ]" contains=fortranTab
+ syn match fortranLabelError "^.\{4}\d\S"
+ endif
+- syn match fortranComment excludenl "^[!c*].*$" contains=@fortranCommentGroup
++ syn match fortranComment excludenl "^[!c*].*$" contains=@fortranCommentGroup,@spell
+ syn match fortranLeftMargin transparent "^ \{5}"
+ syn match fortranContinueMark display "^.\{5}\S"lc=5
+ else
+diff -u -r --new-file runtime/syntax.orig/fstab.vim runtime/syntax/fstab.vim
+--- runtime/syntax.orig/fstab.vim 2008-01-16 14:52:16.000000000 -0600
++++ runtime/syntax/fstab.vim 2009-02-12 16:23:26.000000000 -0600
+@@ -2,14 +2,15 @@
+ " Language: fstab file
+ " Maintaner: Radu Dineiu <radu.dineiu@gmail.com>
+ " URL: http://ld.yi.org/vim/fstab.vim
+-" Last Change: 2008 Jan 16
+-" Version: 0.92
++" Last Change: 2009 Feb 04
++" Version: 0.93
+ "
+ " Credits:
+ " David Necas (Yeti) <yeti@physics.muni.cz>
+ " Stefano Zacchiroli <zack@debian.org>
+ " Georgi Georgiev <chutz@gg3.net>
+ " James Vega <jamessan@debian.org>
++" Elias Probst <mail@eliasprobst.eu>
+ "
+ " Options:
+ " let fstab_unknown_fs_errors = 1
+@@ -46,7 +47,7 @@
+ " Type
+ syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown
+ syn match fsTypeUnknown /\s\+\zs\w\+/ contained
+-syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 fdesc ffs filecore fuse hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs shm smbfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs
++syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 ext4 fdesc ffs filecore fuse hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs shm smbfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs
+
+ " Options
+ " -------
+@@ -91,7 +92,21 @@
+ syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
+ syn keyword fsOptionsExt3Journal contained update inum
+ syn keyword fsOptionsExt3Data contained journal ordered writeback
+-syn keyword fsOptionsKeywords contained noload
++syn keyword fsOptionsKeywords contained noload user_xattr nouser_xattr acl noacl
++
++" Options: ext4
++syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt4Journal
++syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt4Data
++syn match fsOptionsKeywords contained /\<barrier=/ nextgroup=fsOptionsExt4Barrier
++syn match fsOptionsKeywords contained /\<journal_dev=/ nextgroup=fsOptionsNumber
++syn match fsOptionsKeywords contained /\<resuid=/ nextgroup=fsOptionsNumber
++syn match fsOptionsKeywords contained /\<resgid=/ nextgroup=fsOptionsNumber
++syn match fsOptionsKeywords contained /\<sb=/ nextgroup=fsOptionsNumber
++syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
++syn keyword fsOptionsExt4Journal contained update inum
++syn keyword fsOptionsExt4Data contained journal ordered writeback
++syn match fsOptionsExt4Barrier /[0-1]/
++syn keyword fsOptionsKeywords contained noload extents orlov oldalloc user_xattr nouser_xattr acl noacl reservation noreservation bsddf minixdf check=none nocheck debug grpid nogroupid sysvgroups bsdgroups quota noquota grpquota usrquota bh nobh
+
+ " Options: fat
+ syn match fsOptionsKeywords contained /\<blocksize=/ nextgroup=fsOptionsSize
+@@ -241,6 +256,9 @@
+ HiLink fsOptionsExt2Errors String
+ HiLink fsOptionsExt3Journal String
+ HiLink fsOptionsExt3Data String
++ HiLink fsOptionsExt4Journal String
++ HiLink fsOptionsExt4Data String
++ HiLink fsOptionsExt4Barrier Number
+ HiLink fsOptionsFatCheck String
+ HiLink fsOptionsConv String
+ HiLink fsOptionsFatType Number
+diff -u -r --new-file runtime/syntax.orig/gdb.vim runtime/syntax/gdb.vim
+--- runtime/syntax.orig/gdb.vim 2004-06-07 09:32:35.000000000 -0500
++++ runtime/syntax/gdb.vim 2009-06-03 05:05:43.000000000 -0500
+@@ -2,7 +2,7 @@
+ " Language: GDB command files
+ " Maintainer: Claudio Fleiner <claudio@fleiner.com>
+ " URL: http://www.fleiner.com/vim/syntax/gdb.vim
+-" Last Change: 2003 Jan 04
++" Last Change: 2009 May 25
+
+ " For version 5.x: Clear all syntax items
+ " For version 6.x: Quit when a syntax file was already loaded
+@@ -35,7 +35,7 @@
+ " some commonly used abreviations
+ syn keyword gdbStatement c disp undisp disas p
+
+-syn region gdbDocument matchgroup=gdbFuncDef start="\<document\>.*$" matchgroup=gdbFuncDef end="^end$"
++syn region gdbDocument matchgroup=gdbFuncDef start="\<document\>.*$" matchgroup=gdbFuncDef end="^end\s*$"
+
+ syn match gdbStatement "\<add-shared-symbol-files\>"
+ syn match gdbStatement "\<add-symbol-file\>"
+diff -u -r --new-file runtime/syntax.orig/git.vim runtime/syntax/git.vim
+--- runtime/syntax.orig/git.vim 2008-04-15 22:15:49.000000000 -0500
++++ runtime/syntax/git.vim 2009-12-24 10:29:21.000000000 -0600
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: generic git output
+-" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
+-" Last Change: 2008 Mar 21
++" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
++" Last Change: 2009 Dec 24
+
+ if exists("b:current_syntax")
+ finish
+@@ -13,14 +13,19 @@
+ syn include @gitDiff syntax/diff.vim
+
+ syn region gitHead start=/\%^/ end=/^$/
+-syn region gitHead start=/\%(^commit \x\{40\}$\)\@=/ end=/^$/
++syn region gitHead start=/\%(^commit \x\{40\}\%(\s*(.*)\)\=$\)\@=/ end=/^$/
+
+ " For git reflog and git show ...^{tree}, avoid sync issues
+ syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/
+ syn match gitHead /^\x\{40\} \x\{40}\t.*/
+
+-syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff fold
+-syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff
++syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold
++syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --\%(git\|cc\|combined\) \|$\)\@=/ contains=@gitDiff
++
++syn region gitDiffMerge start=/^\%(diff --\%(cc\|combined\) \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff
++syn region gitDiffMerge start=/^\%(@@@@* -\)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff
++syn match gitDiffAdded "^ \++.*" contained containedin=gitDiffMerge
++syn match gitDiffRemoved "^ \+-.*" contained containedin=gitDiffMerge
+
+ syn match gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite
+ syn match gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite
+@@ -29,8 +34,6 @@
+ syn match gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
+ syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
+ syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite
+-syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite
+-syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity
+
+ syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite
+ syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite
+@@ -42,14 +45,20 @@
+ syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHash skipwhite
+ syn match gitStage /\<\d\t\@=/ contained
+ syn match gitReference /\S\+\S\@!/ contained
+-syn match gitHash /\<\x\{40\}\>/ contained nextgroup=gitIdentity,gitStage skipwhite
++syn match gitHash /\<\x\{40\}\>/ contained nextgroup=gitIdentity,gitStage,gitHash skipwhite
+ syn match gitHash /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite
++syn match gitHashAbbrev /\<\x\{4,40\}\>/ contained nextgroup=gitHashAbbrev skipwhite
+ syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite
+-syn match gitHashAbbrev /\<\x\{40\}\>/ contained nextgroup=gitHashAbbrev skipwhite
++
++syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite
++syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity
++
++syn match gitNotesHeader /^Notes:\ze\n /
+
+ hi def link gitDateHeader gitIdentityHeader
+ hi def link gitIdentityHeader gitIdentityKeyword
+ hi def link gitIdentityKeyword Label
++hi def link gitNotesHeader gitKeyword
+ hi def link gitReflogHeader gitKeyword
+ hi def link gitKeyword Keyword
+ hi def link gitIdentity String
+@@ -63,5 +72,7 @@
+ hi def link gitReference Function
+ hi def link gitStage gitType
+ hi def link gitType Type
++hi def link gitDiffAdded diffAdded
++hi def link gitDiffRemoved diffRemoved
+
+ let b:current_syntax = "git"
+diff -u -r --new-file runtime/syntax.orig/gitcommit.vim runtime/syntax/gitcommit.vim
+--- runtime/syntax.orig/gitcommit.vim 2008-04-15 17:46:45.000000000 -0500
++++ runtime/syntax/gitcommit.vim 2009-12-24 10:29:21.000000000 -0600
+@@ -1,8 +1,8 @@
+ " Vim syntax file
+ " Language: git commit file
+-" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
++" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+ " Filenames: *.git/COMMIT_EDITMSG
+-" Last Change: 2008 Apr 09
++" Last Change: 2009 Dec 24
+
+ if exists("b:current_syntax")
+ finish
+@@ -16,48 +16,66 @@
+ endif
+
+ syn include @gitcommitDiff syntax/diff.vim
+-syn region gitcommitDiff start=/\%(^diff --git \)\@=/ end=/^$\|^#\@=/ contains=@gitcommitDiff
++syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^$\|^#\@=/ contains=@gitcommitDiff
+
+ syn match gitcommitFirstLine "\%^[^#].*" nextgroup=gitcommitBlank skipnl
+-syn match gitcommitSummary "^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
++syn match gitcommitSummary "^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
+ syn match gitcommitOverflow ".*" contained contains=@Spell
+ syn match gitcommitBlank "^[^#].*" contained contains=@Spell
+ syn match gitcommitComment "^#.*"
+-syn region gitcommitHead start=/^# / end=/^#$/ contained transparent
++syn match gitcommitHead "^\%(# .*\n\)\+#$" contained transparent
+ syn match gitcommitOnBranch "\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
+-syn match gitcommitBranch "\S\+" contained
++syn match gitcommitOnBranch "\%(^# \)\@<=Your branch .\{-\} '" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
++syn match gitcommitBranch "[^ \t']\+" contained
++syn match gitcommitNoBranch "\%(^# \)\@<=Not currently on any branch." contained containedin=gitcommitComment
+ syn match gitcommitHeader "\%(^# \)\@<=.*:$" contained containedin=gitcommitComment
++syn region gitcommitAuthor matchgroup=gitCommitHeader start=/\%(^# \)\@<=Author:/ end=/$/ keepend oneline contained containedin=gitcommitComment transparent
++syn match gitcommitNoChanges "\%(^# \)\@<=No changes$" contained containedin=gitcommitComment
+
+ syn region gitcommitUntracked start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold
+ syn match gitcommitUntrackedFile "\t\@<=.*" contained
+
+ syn region gitcommitDiscarded start=/^# Changed but not updated:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
+ syn region gitcommitSelected start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
++syn region gitcommitUnmerged start=/^# Unmerged paths:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUnmergedType fold
+
+ syn match gitcommitDiscardedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
+ syn match gitcommitSelectedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
++syn match gitcommitUnmergedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitUnmergedFile skipwhite
+ syn match gitcommitDiscardedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
+ syn match gitcommitSelectedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
++syn match gitcommitUnmergedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
+ syn match gitcommitDiscardedArrow " -> " contained nextgroup=gitcommitDiscardedFile
+ syn match gitcommitSelectedArrow " -> " contained nextgroup=gitcommitSelectedFile
++syn match gitcommitUnmergedArrow " -> " contained nextgroup=gitcommitSelectedFile
++
++syn match gitcommitWarning "\%^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl
++syn match gitcommitWarning "^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl contained
++syn match gitcommitWarning "^\%(no changes added to commit\|nothing \%(added \)\=to commit\)\>.*\%$"
+
+ hi def link gitcommitSummary Keyword
+ hi def link gitcommitComment Comment
+ hi def link gitcommitUntracked gitcommitComment
+ hi def link gitcommitDiscarded gitcommitComment
+ hi def link gitcommitSelected gitcommitComment
++hi def link gitcommitUnmerged gitcommitComment
+ hi def link gitcommitOnBranch Comment
+ hi def link gitcommitBranch Special
++hi def link gitcommitNoBranch gitCommitBranch
+ hi def link gitcommitDiscardedType gitcommitType
+ hi def link gitcommitSelectedType gitcommitType
++hi def link gitcommitUnmergedType gitcommitType
+ hi def link gitcommitType Type
++hi def link gitcommitNoChanges gitcommitHeader
+ hi def link gitcommitHeader PreProc
+ hi def link gitcommitUntrackedFile gitcommitFile
+ hi def link gitcommitDiscardedFile gitcommitFile
+ hi def link gitcommitSelectedFile gitcommitFile
++hi def link gitcommitUnmergedFile gitcommitFile
+ hi def link gitcommitFile Constant
+ hi def link gitcommitDiscardedArrow gitcommitArrow
+ hi def link gitcommitSelectedArrow gitcommitArrow
++hi def link gitcommitUnmergedArrow gitcommitArrow
+ hi def link gitcommitArrow gitcommitComment
+ "hi def link gitcommitOverflow Error
+ hi def link gitcommitBlank Error
+diff -u -r --new-file runtime/syntax.orig/gitconfig.vim runtime/syntax/gitconfig.vim
+--- runtime/syntax.orig/gitconfig.vim 2008-06-04 10:45:44.000000000 -0500
++++ runtime/syntax/gitconfig.vim 2009-12-24 10:29:21.000000000 -0600
+@@ -1,8 +1,8 @@
+ " Vim syntax file
+ " Language: git config file
+-" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
++" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+ " Filenames: gitconfig, .gitconfig, *.git/config
+-" Last Change: 2008 Jun 04
++" Last Change: 2009 Dec 24
+
+ if exists("b:current_syntax")
+ finish
+diff -u -r --new-file runtime/syntax.orig/gitrebase.vim runtime/syntax/gitrebase.vim
+--- runtime/syntax.orig/gitrebase.vim 2008-04-16 03:12:25.000000000 -0500
++++ runtime/syntax/gitrebase.vim 2009-12-24 10:29:21.000000000 -0600
+@@ -1,8 +1,8 @@
+ " Vim syntax file
+ " Language: git rebase --interactive
+-" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
++" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+ " Filenames: git-rebase-todo
+-" Last Change: 2008 Apr 16
++" Last Change: 2009 Dec 24
+
+ if exists("b:current_syntax")
+ finish
+@@ -14,6 +14,7 @@
+ syn match gitrebaseCommit "\v<\x{7,40}>" nextgroup=gitrebaseSummary skipwhite
+ syn match gitrebasePick "\v^p%(ick)=>" nextgroup=gitrebaseCommit skipwhite
+ syn match gitrebaseEdit "\v^e%(dit)=>" nextgroup=gitrebaseCommit skipwhite
++syn match gitrebaseReword "\v^r%(eword)=>" nextgroup=gitrebaseCommit skipwhite
+ syn match gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite
+ syn match gitrebaseSummary ".*" contains=gitrebaseHash contained
+ syn match gitrebaseComment "^#.*" contains=gitrebaseHash
+@@ -23,9 +24,10 @@
+ hi def link gitrebaseHash Identifier
+ hi def link gitrebasePick Statement
+ hi def link gitrebaseEdit PreProc
++hi def link gitrebaseReword Special
+ hi def link gitrebaseSquash Type
+ hi def link gitrebaseSummary String
+ hi def link gitrebaseComment Comment
+-hi def link gitrebaseSquashError Error
++hi def link gitrebaseSquashError Error
+
+ let b:current_syntax = "gitrebase"
+diff -u -r --new-file runtime/syntax.orig/groovy.vim runtime/syntax/groovy.vim
+--- runtime/syntax.orig/groovy.vim 2006-03-24 10:29:41.000000000 -0600
++++ runtime/syntax/groovy.vim 2009-11-28 06:33:43.000000000 -0600
+@@ -228,6 +228,7 @@
+ " syntax include @groovyHtml <sfile>:p:h/html.vim
+ syntax include @groovyHtml runtime! syntax/html.vim
+ unlet b:current_syntax
++ syntax spell default " added by Bram
+ syn region groovyDocComment start="/\*\*" end="\*/" keepend contains=groovyCommentTitle,@groovyHtml,groovyDocTags,groovyTodo,@Spell
+ syn region groovyCommentTitle contained matchgroup=groovyDocComment start="/\*\*" matchgroup=groovyCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@groovyHtml,groovyCommentStar,groovyTodo,@Spell,groovyDocTags
+
+diff -u -r --new-file runtime/syntax.orig/haskell.vim runtime/syntax/haskell.vim
+--- runtime/syntax.orig/haskell.vim 2004-06-07 09:32:35.000000000 -0500
++++ runtime/syntax/haskell.vim 2009-01-14 14:15:20.000000000 -0600
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: Haskell
+ " Maintainer: Haskell Cafe mailinglist <haskell-cafe@haskell.org>
+-" Last Change: 2004 Feb 23
++" Last Change: 2008 Dec 15
+ " Original Author: John Williams <jrw@pobox.com>
+ "
+ " Thanks to Ryan Crumley for suggestions and John Meacham for
+@@ -30,6 +30,7 @@
+ " in eol comment character class
+ " 2004 Feb 23: Made the leading comments somewhat clearer where it comes
+ " to attribution of work.
++" 2008 Dec 15: Added comments as contained element in import statements
+
+ " Remove any old syntax stuff hanging around
+ if version < 600
+@@ -67,7 +68,7 @@
+ " because otherwise they would match as keywords at the start of a
+ " "literate" comment (see lhs.vim).
+ syn match hsModule "\<module\>"
+-syn match hsImport "\<import\>.*"he=s+6 contains=hsImportMod
++syn match hsImport "\<import\>.*"he=s+6 contains=hsImportMod,hsLineComment,hsBlockComment
+ syn match hsImportMod contained "\<\(as\|qualified\|hiding\)\>"
+ syn match hsInfix "\<\(infix\|infixl\|infixr\)\>"
+ syn match hsStructure "\<\(class\|data\|deriving\|instance\|default\|where\)\>"
+diff -u -r --new-file runtime/syntax.orig/help.vim runtime/syntax/help.vim
+--- runtime/syntax.orig/help.vim 2006-05-13 01:42:22.000000000 -0500
++++ runtime/syntax/help.vim 2009-06-03 05:07:39.000000000 -0500
+@@ -1,14 +1,14 @@
+ " Vim syntax file
+ " Language: Vim help file
+ " Maintainer: Bram Moolenaar (Bram@vim.org)
+-" Last Change: 2006 May 13
++" Last Change: 2009 May 18
+
+ " Quit when a (custom) syntax file was already loaded
+ if exists("b:current_syntax")
+ finish
+ endif
+
+-syn match helpHeadline "^[-A-Z .]\+[ \t]\+\*"me=e-1
++syn match helpHeadline "^[-A-Z .][-A-Z0-9 .()]*[ \t]\+\*"me=e-1
+ syn match helpSectionDelim "^=\{3,}.*===$"
+ syn match helpSectionDelim "^-\{3,}.*--$"
+ syn region helpExample matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<"
+diff -u -r --new-file runtime/syntax.orig/indent.vim runtime/syntax/indent.vim
+--- runtime/syntax.orig/indent.vim 2007-06-17 10:02:22.000000000 -0500
++++ runtime/syntax/indent.vim 2010-02-11 06:48:22.000000000 -0600
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: indent(1) configuration file
+ " Maintainer: Nikolai Weibull <now@bitwi.se>
+-" Latest Revision: 2007-06-17
++" Latest Revision: 2010-01-23
+ " indent_is_bsd: If exists, will change somewhat to match BSD implementation
+ "
+ " TODO: is the deny-all (a la lilo.vim nice or no?)...
+@@ -27,7 +27,7 @@
+ \ contains=indentTodo,@Spell
+
+ if !exists("indent_is_bsd")
+- syn match indentOptions '-i\|--indentation-level'
++ syn match indentOptions '-i\|--indentation-level\|-il\|--indent-level'
+ \ nextgroup=indentNumber skipwhite skipempty
+ endif
+ syn match indentOptions '-\%(bli\|c\%([bl]i\|[dip]\)\=\|di\=\|ip\=\|lc\=\|pp\=i\|sbi\|ts\|-\%(brace-indent\|comment-indentation\|case-brace-indentation\|declaration-comment-column\|continuation-indentation\|case-indentation\|else-endif-column\|line-comments-indentation\|declaration-indentation\|indent-level\|parameter-indentation\|line-length\|comment-line-length\|paren-indentation\|preprocessor-indentation\|struct-brace-indentation\|tab-size\)\)'
+@@ -123,6 +123,7 @@
+ \ -ut --use-tabs
+ \ -v --verbose
+ \ -version --version
++ \ -linux --linux-style
+
+ if exists("indent_is_bsd")
+ syn keyword indentOptions -ip -ei -nei
+diff -u -r --new-file runtime/syntax.orig/java.vim runtime/syntax/java.vim
+--- runtime/syntax.orig/java.vim 2007-12-20 17:14:48.000000000 -0600
++++ runtime/syntax/java.vim 2009-03-22 14:39:44.000000000 -0500
+@@ -2,7 +2,7 @@
+ " Language: Java
+ " Maintainer: Claudio Fleiner <claudio@fleiner.com>
+ " URL: http://www.fleiner.com/vim/syntax/java.vim
+-" Last Change: 2007 Dec 21
++" Last Change: 2009 Mar 14
+
+ " Please check :help java.vim for comments on some of the options available.
+
+@@ -15,6 +15,7 @@
+ endif
+ " we define it here so that included files can test for it
+ let main_syntax='java'
++ syn region javaFold start="{" end="}" transparent fold
+ endif
+
+ " don't use standard HiLink, it will not work with included syntax files
+@@ -58,7 +59,7 @@
+ syn keyword javaClassDecl enum
+ syn match javaClassDecl "^class\>"
+ syn match javaClassDecl "[^.]\s*\<class\>"ms=s+1
+-syn match javaAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>"
++syn match javaAnnotation "@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>"
+ syn match javaClassDecl "@interface\>"
+ syn keyword javaBranch break continue nextgroup=javaUserLabelRef skipwhite
+ syn match javaUserLabelRef "\k\+" contained
+@@ -121,11 +122,6 @@
+ syn keyword javaLabel default
+
+ if !exists("java_allow_cpp_keywords")
+- " The default used to be to highlight C++ keywords. But several people
+- " don't like that, so default to not highlighting these.
+- let java_allow_cpp_keywords = 1
+-endif
+-if !java_allow_cpp_keywords
+ syn keyword javaError auto delete extern friend inline redeclared
+ syn keyword javaError register signed sizeof struct template typedef union
+ syn keyword javaError unsigned operator
+@@ -161,6 +157,11 @@
+ " syntax coloring for javadoc comments (HTML)
+ syntax include @javaHtml <sfile>:p:h/html.vim
+ unlet b:current_syntax
++ " HTML enables spell checking for all text that is not in a syntax item. This
++ " is wrong for Java (all identifiers would be spell-checked), so it's undone
++ " here.
++ syntax spell default
++
+ syn region javaDocComment start="/\*\*" end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaDocSeeTag,javaTodo,@Spell
+ syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*" matchgroup=javaCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,@Spell,javaDocTags,javaDocSeeTag
+
+@@ -179,7 +180,7 @@
+ " Strings and constants
+ syn match javaSpecialError contained "\\."
+ syn match javaSpecialCharError contained "[^']"
+-syn match javaSpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
++syn match javaSpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\+\x\{4\}\)"
+ syn region javaString start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaSpecialError,@Spell
+ " next line disabled, it can cause a crash for a long line
+ "syn match javaStringError +"\([^"\\]\|\\.\)*$+
+@@ -192,7 +193,7 @@
+ syn match javaNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
+
+ " unicode characters
+-syn match javaSpecial "\\u\d\{4\}"
++syn match javaSpecial "\\u\+\d\{4\}"
+
+ syn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStringError
+
+diff -u -r --new-file runtime/syntax.orig/kconfig.vim runtime/syntax/kconfig.vim
+--- runtime/syntax.orig/kconfig.vim 2006-04-19 15:49:04.000000000 -0500
++++ runtime/syntax/kconfig.vim 2009-06-03 05:05:43.000000000 -0500
+@@ -1,6 +1,6 @@
+ " Vim syntax file
+ " Maintainer: Nikolai Weibull <now@bitwi.se>
+-" Latest Revision: 2006-04-14
++" Latest Revision: 2009-05-25
+
+ if exists("b:current_syntax")
+ finish
+@@ -666,9 +666,9 @@
+
+ syn match kconfigComment display '#.*$' contains=kconfigTodo
+
+-syn keyword kconfigKeyword config menuconfig comment menu mainmenu
++syn keyword kconfigKeyword config menuconfig comment mainmenu
+
+-syn keyword kconfigConditional choice endchoice if endif
++syn keyword kconfigConditional menu endmenu choice endchoice if endif
+
+ syn keyword kconfigPreProc source
+ \ nextgroup=kconfigPath
+diff -u -r --new-file runtime/syntax.orig/lex.vim runtime/syntax/lex.vim
+--- runtime/syntax.orig/lex.vim 2005-09-06 12:27:26.000000000 -0500
++++ runtime/syntax/lex.vim 2009-10-08 16:18:57.000000000 -0500
+@@ -1,8 +1,8 @@
+ " Vim syntax file
+ " Language: Lex
+-" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
+-" Last Change: Sep 06, 2005
+-" Version: 7
++" Maintainer: Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
++" Last Change: Sep 11, 2009
++" Version: 10
+ " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
+ "
+ " Option:
+@@ -16,7 +16,7 @@
+ finish
+ endif
+
+-" Read the C syntax to start with
++" Read the C/C++ syntax to start with
+ if version >= 600
+ if exists("lex_uses_cpp")
+ runtime! syntax/cpp.vim
+@@ -36,32 +36,60 @@
+ " --- Lex stuff ---
+ " --- ========= ---
+
+-"I'd prefer to use lex.* , but it doesn't handle forward definitions yet
++"I'd prefer to use lex.* , but vim doesn't handle forward definitions yet
+ syn cluster lexListGroup contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatString,lexPatTag,lexPatTag,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,lexPatCode,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
+-syn cluster lexListPatCodeGroup contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatTag,lexPatTag,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
++syn cluster lexListPatCodeGroup contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatTag,lexPatTag,lexPatTagZoneStart,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
+
+ " Abbreviations Section
+-syn region lexAbbrvBlock start="^\(\h\+\s\|%{\)" end="^\ze%%$" skipnl nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState
++if has("folding")
++ syn region lexAbbrvBlock fold start="^\(\h\+\s\|%{\)" end="^\ze%%$" skipnl nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState
++else
++ syn region lexAbbrvBlock start="^\(\h\+\s\|%{\)" end="^\ze%%$" skipnl nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState
++endif
+ syn match lexAbbrv "^\I\i*\s"me=e-1 skipwhite contained nextgroup=lexAbbrvRegExp
+ syn match lexAbbrv "^%[sx]" contained
+ syn match lexAbbrvRegExp "\s\S.*$"lc=1 contained nextgroup=lexAbbrv,lexInclude
+-syn region lexInclude matchgroup=lexSep start="^%{" end="%}" contained contains=ALLBUT,@lexListGroup
+-syn region lexAbbrvComment start="^\s\+/\*" end="\*/" contains=@Spell
+-syn region lexStartState matchgroup=lexAbbrv start="^%\a\+" end="$" contained
++if has("folding")
++ syn region lexInclude fold matchgroup=lexSep start="^%{" end="%}" contained contains=ALLBUT,@lexListGroup
++ syn region lexAbbrvComment fold start="^\s\+/\*" end="\*/" contains=@Spell
++ syn region lexStartState fold matchgroup=lexAbbrv start="^%\a\+" end="$" contained
++else
++ syn region lexInclude matchgroup=lexSep start="^%{" end="%}" contained contains=ALLBUT,@lexListGroup
++ syn region lexAbbrvComment start="^\s\+/\*" end="\*/" contains=@Spell
++ syn region lexStartState matchgroup=lexAbbrv start="^%\a\+" end="$" contained
++endif
+
+ "%% : Patterns {Actions}
+-syn region lexPatBlock matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPat,lexPatTag,lexPatComment
+-syn region lexPat start=+\S+ skip="\\\\\|\\." end="\s"me=e-1 contained nextgroup=lexMorePat,lexPatSep contains=lexPatString,lexSlashQuote,lexBrace
+-syn region lexBrace start="\[" skip=+\\\\\|\\+ end="]" contained
+-syn region lexPatString matchgroup=String start=+"+ skip=+\\\\\|\\"+ matchgroup=String end=+"+ contained
+-syn match lexPatTag "^<\I\i*\(,\I\i*\)*>*" contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep
++if has("folding")
++ syn region lexPatBlock fold matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat
++ syn region lexPat fold start=+\S+ skip="\\\\\|\\." end="\s"me=e-1 contained nextgroup=lexMorePat,lexPatSep contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
++ syn region lexBrace fold start="\[" skip=+\\\\\|\\+ end="]" contained
++ syn region lexPatString fold matchgroup=String start=+"+ skip=+\\\\\|\\"+ matchgroup=String end=+"+ contained
++else
++ syn region lexPatBlock matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat
++ syn region lexPat start=+\S+ skip="\\\\\|\\." end="\s"me=e-1 contained nextgroup=lexMorePat,lexPatSep contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
++ syn region lexBrace start="\[" skip=+\\\\\|\\+ end="]" contained
++ syn region lexPatString matchgroup=String start=+"+ skip=+\\\\\|\\"+ matchgroup=String end=+"+ contained
++endif
++syn match lexPatTag "^<\I\i*\(,\I\i*\)*>" contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep
++syn match lexPatTagZone "^<\I\i*\(,\I\i*\)*>\s*\ze{" contained nextgroup=lexPatTagZoneStart
+ syn match lexPatTag +^<\I\i*\(,\I\i*\)*>*\(\\\\\)*\\"+ contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep
+-syn region lexPatComment start="^\s*/\*" end="\*/" skipnl contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell
++if has("folding")
++ syn region lexPatTagZoneStart matchgroup=lexPatTag fold start='{' end='}' contained contains=lexPat,lexPatComment
++ syn region lexPatComment start="\s\+/\*" end="\*/" fold skipnl contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell
++else
++ syn region lexPatTagZoneStart matchgroup=lexPatTag start='{' end='}' contained contains=lexPat,lexPatComment
++ syn region lexPatComment start="\s\+/\*" end="\*/" skipnl contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell
++endif
+ syn match lexPatCodeLine ".*$" contained contains=ALLBUT,@lexListGroup
+ syn match lexMorePat "\s*|\s*$" skipnl contained nextgroup=lexPat,lexPatTag,lexPatComment
+ syn match lexPatSep "\s\+" contained nextgroup=lexMorePat,lexPatCode,lexPatCodeLine
+ syn match lexSlashQuote +\(\\\\\)*\\"+ contained
+-syn region lexPatCode matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" skipnl contained contains=ALLBUT,@lexListPatCodeGroup
++if has("folding")
++ syn region lexPatCode matchgroup=Delimiter start="{" end="}" fold skipnl contained contains=ALLBUT,@lexListPatCodeGroup
++else
++ syn region lexPatCode matchgroup=Delimiter start="{" end="}" skipnl contained contains=ALLBUT,@lexListPatCodeGroup
++endif
+
+ syn keyword lexCFunctions BEGIN input unput woutput yyleng yylook yytext
+ syn keyword lexCFunctions ECHO output winput wunput yyless yymore yywrap
+@@ -80,9 +108,10 @@
+ syn sync match lexSyncPat groupthere lexPatBlock "^%%$"
+
+ " The default highlighting.
+-hi def link lexSlashQuote lexPat
+-hi def link lexBrace lexPat
+ hi def link lexAbbrvComment lexPatComment
++hi def link lexBrace lexPat
++hi def link lexPatTagZone lexPatTag
++hi def link lexSlashQuote lexPat
+
+ hi def link lexAbbrvRegExp Macro
+ hi def link lexAbbrv SpecialChar
+diff -u -r --new-file runtime/syntax.orig/lhaskell.vim runtime/syntax/lhaskell.vim
+--- runtime/syntax.orig/lhaskell.vim 2008-07-01 12:47:29.000000000 -0500
++++ runtime/syntax/lhaskell.vim 2009-05-14 13:53:07.000000000 -0500
+@@ -4,8 +4,8 @@
+ " \begin{code} \end{code} blocks
+ " Maintainer: Haskell Cafe mailinglist <haskell-cafe@haskell.org>
+ " Original Author: Arthur van Leeuwen <arthurvl@cs.uu.nl>
+-" Last Change: 2008 Jul 01
+-" Version: 1.02
++" Last Change: 2009 May 08
++" Version: 1.04
+ "
+ " Thanks to Ian Lynagh for thoughtful comments on initial versions and
+ " for the inspiration for writing this in the first place.
+@@ -29,8 +29,10 @@
+ " 2004 February 20: Cleaned up the guessing and overriding a bit
+ " 2004 February 23: Cleaned up syntax highlighting for \begin{code} and
+ " \end{code}, added some clarification to the attributions
+-" 2008 July 1: Removed % from guess list, as it totally breaks plain
+-" text markup guessing
++" 2008 July 1: Removed % from guess list, as it totally breaks plain
++" text markup guessing
++" 2009 April 29: Fixed highlighting breakage in TeX mode,
++" thanks to Kalman Noel
+ "
+
+
+@@ -73,14 +75,14 @@
+ " - \begin{env} (for env != code)
+ " - \part, \chapter, \section, \subsection, \subsubsection, etc
+ if b:lhs_markup == "unknown"
+- if search('\\documentclass\|\\begin{\(code}\)\@!\|\\\(sub \)*section\|\\chapter|\\part','W') != 0
++ if search('\\documentclass\|\\begin{\(code}\)\@!\|\\\(sub\)*section\|\\chapter|\\part','W') != 0
+ let b:lhs_markup = "tex"
+ else
+ let b:lhs_markup = "plain"
+ endif
+ endif
+
+-" If user wants us to highlight TeX syntax or guess thinks it's TeX, read it.
++" If user wants us to highlight TeX syntax or guess thinks it's TeX, read it.
+ if b:lhs_markup == "tex"
+ if version < 600
+ source <sfile>:p:h/tex.vim
+@@ -91,6 +93,9 @@
+ " Tex.vim removes "_" from 'iskeyword', but we need it for Haskell.
+ setlocal isk+=_
+ endif
++ syntax cluster lhsTeXContainer contains=tex.*Zone,texAbstract
++else
++ syntax cluster lhsTeXContainer contains=.*
+ endif
+
+ " Literate Haskell is Haskell in between text, so at least read Haskell
+@@ -101,8 +106,8 @@
+ syntax include @haskellTop syntax/haskell.vim
+ endif
+
+-syntax region lhsHaskellBirdTrack start="^>" end="\%(^[^>]\)\@=" contains=@haskellTop,lhsBirdTrack
+-syntax region lhsHaskellBeginEndBlock start="^\\begin{code}\s*$" matchgroup=NONE end="\%(^\\end{code}.*$\)\@=" contains=@haskellTop,@beginCode
++syntax region lhsHaskellBirdTrack start="^>" end="\%(^[^>]\)\@=" contains=@haskellTop,lhsBirdTrack containedin=@lhsTeXContainer
++syntax region lhsHaskellBeginEndBlock start="^\\begin{code}\s*$" matchgroup=NONE end="\%(^\\end{code}.*$\)\@=" contains=@haskellTop,@beginCode containedin=@lhsTeXContainer
+
+ syntax match lhsBirdTrack "^>" contained
+
+diff -u -r --new-file runtime/syntax.orig/lilo.vim runtime/syntax/lilo.vim
+--- runtime/syntax.orig/lilo.vim 2004-07-20 12:53:05.000000000 -0500
++++ runtime/syntax/lilo.vim 2010-02-11 06:45:15.000000000 -0600
+@@ -1,10 +1,8 @@
+ " Vim syntax file
+-" This is a GENERATED FILE. Please always refer to source file at the URI below.
+ " Language: lilo configuration (lilo.conf)
+-" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
+-" Last Change: 2004-07-20
+-" URL: http://trific.ath.cx/Ftp/vim/syntax/lilo.vim
+-
++" Maintainer: Niels Horn <niels.horn@gmail.com>
++" Previous Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
++" Last Change: 2010-02-03
+
+ " Setup
+ if version >= 600
+@@ -64,7 +62,7 @@
+
+ " String
+ syn keyword liloOption menu-title nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
+-syn keyword liloKernelOpt append nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
++syn keyword liloKernelOpt append addappend nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
+ syn keyword liloImageOpt fallback literal nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
+
+ " Hex number
+diff -u -r --new-file runtime/syntax.orig/lisp.vim runtime/syntax/lisp.vim
+--- runtime/syntax.orig/lisp.vim 2007-11-14 10:37:14.000000000 -0600
++++ runtime/syntax/lisp.vim 2009-03-22 14:39:57.000000000 -0500
+@@ -1,8 +1,8 @@
+ " Vim syntax file
+ " Language: Lisp
+ " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
+-" Last Change: Oct 19, 2007
+-" Version: 20
++" Last Change: Mar 05, 2009
++" Version: 21
+ " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
+ "
+ " Thanks to F Xavier Noria for a list of 978 Common Lisp symbols
+@@ -534,7 +534,8 @@
+
+ " ---------------------------------------------------------------------
+ " Numbers: supporting integers and floating point numbers {{{1
+-syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\="
++syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\([dDeEfFlL][-+]\=\d\+\)\="
++syn match lispNumber "-\=\(\d\+/\d\+\)"
+
+ syn match lispSpecial "\*\w[a-z_0-9-]*\*"
+ syn match lispSpecial !#|[^()'`,"; \t]\+|#!
+diff -u -r --new-file runtime/syntax.orig/logtalk.vim runtime/syntax/logtalk.vim
+--- runtime/syntax.orig/logtalk.vim 2008-07-06 13:09:17.000000000 -0500
++++ runtime/syntax/logtalk.vim 2008-11-06 10:05:14.000000000 -0600
+@@ -2,7 +2,7 @@
+ "
+ " Language: Logtalk
+ " Maintainer: Paulo Moura <pmoura@logtalk.org>
+-" Last Change: June 16, 2008
++" Last Change: Oct 31, 2008
+
+
+ " Quit when a syntax file was already loaded:
+@@ -51,9 +51,9 @@
+
+ " Logtalk opening entity directives
+
+-syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- object(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom,logtalkEntityRel
+-syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- protocol(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel
+-syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- category(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel
++syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- object(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom,logtalkEntityRel,logtalkLineComment
++syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- protocol(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
++syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- category(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
+
+
+ " Logtalk closing entity directives
+diff -u -r --new-file runtime/syntax.orig/mail.vim runtime/syntax/mail.vim
+--- runtime/syntax.orig/mail.vim 2008-01-18 06:28:18.000000000 -0600
++++ runtime/syntax/mail.vim 2008-11-09 07:12:28.000000000 -0600
+@@ -2,7 +2,7 @@
+ " Language: Mail file
+ " Previous Maintainer: Felix von Leitner <leitner@math.fu-berlin.de>
+ " Maintainer: Gautam Iyer <gi1242@users.sourceforge.net>
+-" Last Change: Thu 17 Jan 2008 11:25:44 AM PST
++" Last Change: Thu 06 Nov 2008 10:10:55 PM PST
+
+ " Quit when a syntax file was already loaded
+ if exists("b:current_syntax")
+@@ -24,28 +24,35 @@
+ " emails
+ " According to RFC 2822 any printable ASCII character can appear in a field
+ " name, except ':'.
+-syn region mailHeader contains=@mailHeaderFields,@NoSpell start="^From .*\d\d\d\d$" skip="^\s" end="\v^[!-9;-~]*([^!-~]|$)"me=s-1
++syn region mailHeader contains=@mailHeaderFields,@NoSpell start="^From .*\d\d\d\d$" skip="^\s" end="\v^[!-9;-~]*([^!-~]|$)"me=s-1 fold
+ syn match mailHeaderKey contained contains=mailEmail,@NoSpell "^From\s.*\d\d\d\d$"
++
++" Nothing else depends on case.
++syn case ignore
++
++" Headers in properly quoted (with "> " or ">") emails are matched
++syn region mailHeader keepend contains=@mailHeaderFields,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)*\)\v(newsgroups|x-([a-z\-])*|path|xref|message-id|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[!-9;-~]*([^!-~]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1 fold
++
+ " Usenet headers
+ syn match mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(Newsgroups|Followup-To|Message-ID|Supersedes|Control):.*$"
+
+-syn case ignore
+-" Nothing else depends on case. Headers in properly quoted (with "> " or ">")
+-" emails are matched
+-syn region mailHeader keepend contains=@mailHeaderFields,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)*\)\v(newsgroups|x-([a-z\-])*|path|xref|message-id|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[!-9;-~]*([^!-~]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1
+
+ syn region mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@mailQuoteExps,@NoSpell start="\v(^(\> ?)*)@<=(to|b?cc):" skip=",$" end="$"
+-syn match mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$"
++syn match mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$" fold
+ syn match mailHeaderKey contained contains=@NoSpell "\v(^(\> ?)*)@<=date:"
+-syn match mailSubject contained "\v^subject:.*$"
++syn match mailSubject contained "\v^subject:.*$" fold
+ syn match mailSubject contained contains=@NoSpell "\v(^(\> ?)+)@<=subject:.*$"
+
+ " Anything in the header between < and > is an email address
+ syn match mailHeaderEmail contained contains=@NoSpell "<.\{-}>"
+
+ " Mail Signatures. (Begin with "-- ", end with change in quote level)
+-syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps start="^--\s$" end="^$" end="^\(> \?\)\+"me=s-1
+-syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)--\s$" end="^\z1$" end="^\z1\@!"me=s-1 end="^\z1\(> \?\)\+"me=s-1
++syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps start="^--\s$" end="^$" end="^\(> \?\)\+"me=s-1 fold
++syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)--\s$" end="^\z1$" end="^\z1\@!"me=s-1 end="^\z1\(> \?\)\+"me=s-1 fold
++
++" Treat verbatim Text special.
++syn region mailVerbatim contains=@NoSpell keepend start="^#v+$" end="^#v-$" fold
++syn region mailVerbatim contains=@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold
+
+ " URLs start with a known protocol or www,web,w3.
+ syn match mailURL contains=@NoSpell `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-z0-9/]`
+@@ -59,13 +66,13 @@
+ syn match mailQuoteExp5 contained "\v^(\> ?){5}"
+ syn match mailQuoteExp6 contained "\v^(\> ?){6}"
+
+-" Even and odd quoted lines. order is imporant here!
+-syn match mailQuoted1 contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\([a-z]\+>\|[]|}>]\).*$"
+-syn match mailQuoted2 contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{2}.*$"
+-syn match mailQuoted3 contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{3}.*$"
+-syn match mailQuoted4 contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{4}.*$"
+-syn match mailQuoted5 contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{5}.*$"
+-syn match mailQuoted6 contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{6}.*$"
++" Even and odd quoted lines. Order is important here!
++syn region mailQuoted6 keepend contains=mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{5}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
++syn region mailQuoted5 keepend contains=mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{4}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
++syn region mailQuoted4 keepend contains=mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{3}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
++syn region mailQuoted3 keepend contains=mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{2}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
++syn region mailQuoted2 keepend contains=mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{1}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
++syn region mailQuoted1 keepend contains=mailQuoted2,mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z([a-z]\+>\|[]|}>]\)" end="^\z1\@!" fold
+
+ " Need to sync on the header. Assume we can do that within 100 lines
+ if exists("mail_minlines")
+@@ -75,6 +82,7 @@
+ endif
+
+ " Define the default highlighting.
++hi def link mailVerbatim Special
+ hi def link mailHeader Statement
+ hi def link mailHeaderKey Type
+ hi def link mailSignature PreProc
+diff -u -r --new-file runtime/syntax.orig/man.vim runtime/syntax/man.vim
+--- runtime/syntax.orig/man.vim 2007-12-30 07:19:15.000000000 -0600
++++ runtime/syntax/man.vim 2008-09-18 13:56:38.000000000 -0500
+@@ -1,9 +1,9 @@
+ " Vim syntax file
+ " Language: Man page
+-" Maintainer: Nam SungHyun <namsh@kldp.org>
++" Maintainer: SungHyun Nam <goweol@gmail.com>
+ " Previous Maintainer: Gautam H. Mudunuri <gmudunur@informatica.com>
+ " Version Info:
+-" Last Change: 2007 Dec 30
++" Last Change: 2008 Sep 17
+
+ " Additional highlighting by Johannes Tanzler <johannes.tanzler@aon.at>:
+ " * manSubHeading
+diff -u -r --new-file runtime/syntax.orig/matlab.vim runtime/syntax/matlab.vim
+--- runtime/syntax.orig/matlab.vim 2004-06-07 09:32:35.000000000 -0500
++++ runtime/syntax/matlab.vim 2010-01-16 07:33:01.000000000 -0600
+@@ -1,8 +1,10 @@
+ " Vim syntax file
+ " Language: Matlab
+-" Maintainer: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
++" Maintainer: Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
++" Credits: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
+ " Original author: Mario Eusebio
+-" Last Change: 30 May 2003
++" Last Change: Wed Jan 13 11:12:34 CET 2010
++" - 'global' and 'persistent' keyword are now recognized
+
+ " For version 5.x: Clear all syntax items
+ " For version 6.x: Quit when a syntax file was already loaded
+@@ -16,8 +18,12 @@
+ syn keyword matlabLabel case switch
+ syn keyword matlabConditional else elseif end if otherwise
+ syn keyword matlabRepeat do for while
++" MT_ADDON - added exception-specific keywords
++syn keyword matlabExceptions try catch
++syn keyword matlabOO classdef properties events methods
+
+ syn keyword matlabTodo contained TODO
++syn keyword matlabScope global persistent
+
+ " If you do not want these operators lit, uncommment them and the "hi link" below
+ syn match matlabArithmeticOperator "[-+]"
+@@ -31,7 +37,8 @@
+ "syn match matlabIdentifier "\<\a\w*\>"
+
+ " String
+-syn region matlabString start=+'+ end=+'+ oneline
++" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence
++syn region matlabString start=+'+ end=+'+ oneline skip=+''+
+
+ " If you don't like tabs
+ syn match matlabTab "\t"
+@@ -51,6 +58,9 @@
+ syn match matlabSemicolon ";"
+
+ syn match matlabComment "%.*$" contains=matlabTodo,matlabTab
++" MT_ADDON - correctly highlights words after '...' as comments
++syn match matlabComment "\.\.\..*$" contains=matlabTodo,matlabTab
++syn region matlabMultilineComment start=+%{+ end=+%}+ contains=matlabTodo,matlabTab
+
+ syn keyword matlabOperator break zeros default margin round ones rand
+ syn keyword matlabOperator ceil floor size clear zeros eye mean std cov
+@@ -75,10 +85,11 @@
+ endif
+
+ HiLink matlabTransposeOperator matlabOperator
+- HiLink matlabOperator Operator
+- HiLink matlabLineContinuation Special
++ HiLink matlabOperator Operator
++ HiLink matlabLineContinuation Special
+ HiLink matlabLabel Label
+ HiLink matlabConditional Conditional
++ HiLink matlabExceptions Conditional
+ HiLink matlabRepeat Repeat
+ HiLink matlabTodo Todo
+ HiLink matlabString String
+@@ -86,12 +97,15 @@
+ HiLink matlabTransposeOther Identifier
+ HiLink matlabNumber Number
+ HiLink matlabFloat Float
+- HiLink matlabFunction Function
++ HiLink matlabFunction Function
+ HiLink matlabError Error
+- HiLink matlabImplicit matlabStatement
++ HiLink matlabImplicit matlabStatement
+ HiLink matlabStatement Statement
++ HiLink matlabOO Statement
+ HiLink matlabSemicolon SpecialChar
+ HiLink matlabComment Comment
++ HiLink matlabMultilineComment Comment
++ HiLink matlabScope Type
+
+ HiLink matlabArithmeticOperator matlabOperator
+ HiLink matlabRelationalOperator matlabOperator
+diff -u -r --new-file runtime/syntax.orig/maxima.vim runtime/syntax/maxima.vim
+--- runtime/syntax.orig/maxima.vim 2006-04-10 03:17:50.000000000 -0500
++++ runtime/syntax/maxima.vim 2009-11-28 06:36:52.000000000 -0600
+@@ -227,7 +227,7 @@
+ " Comments:
+ " maxima supports /* ... */ (like C)
+ syn keyword maximaTodo contained TODO Todo DEBUG
+-syn region maximaCommentBlock start="/\*" end="\*/" contains=maximaString,maximaTodo
++syn region maximaCommentBlock start="/\*" end="\*/" contains=maximaString,maximaTodo,maximaCommentBlock
+
+ " synchronizing
+ syn sync match maximaSyncComment grouphere maximaCommentBlock "/*"
+diff -u -r --new-file runtime/syntax.orig/mysql.vim runtime/syntax/mysql.vim
+--- runtime/syntax.orig/mysql.vim 2007-12-19 22:09:52.000000000 -0600
++++ runtime/syntax/mysql.vim 2009-07-02 13:05:29.000000000 -0500
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: mysql
+ " Maintainer: Kenneth J. Pronovici <pronovic@ieee.org>
+-" Last Change: $LastChangedDate: 2007-12-19 10:59:39 -0600 (Wed, 19 Dec 2007) $
++" Last Change: $LastChangedDate: 2009-06-29 23:08:37 -0500 (Mon, 29 Jun 2009) $
+ " Filenames: *.mysql
+ " URL: ftp://cedar-solutions.com/software/mysql.vim
+ " Note: The definitions below are taken from the mysql user manual as of April 2002, for version 3.23
+@@ -36,7 +36,7 @@
+ syn keyword mysqlKeyword natural no
+ syn keyword mysqlKeyword on optimize option optionally order outer outfile
+ syn keyword mysqlKeyword pack_keys partial password primary privileges procedure process processlist
+-syn keyword mysqlKeyword read references reload rename replace restrict returns revoke row rows
++syn keyword mysqlKeyword read references reload rename replace restrict returns revoke right row rows
+ syn keyword mysqlKeyword second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off
+ syn keyword mysqlKeyword sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting
+ syn keyword mysqlKeyword status straight_join string
+@@ -57,7 +57,7 @@
+ " Numbers and hexidecimal values
+ syn match mysqlNumber "-\=\<[0-9]*\>"
+ syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*\>"
+-syn match mysqlNumber "-\=\<[0-9]*e[+-]\=[0-9]*\>"
++syn match mysqlNumber "-\=\<[0-9][0-9]*e[+-]\=[0-9]*\>"
+ syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>"
+ syn match mysqlNumber "\<0x[abcdefABCDEF0-9]*\>"
+
+diff -u -r --new-file runtime/syntax.orig/netrc.vim runtime/syntax/netrc.vim
+--- runtime/syntax.orig/netrc.vim 2006-04-21 07:39:13.000000000 -0500
++++ runtime/syntax/netrc.vim 2010-01-12 14:39:39.000000000 -0600
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: netrc(5) configuration file
+ " Maintainer: Nikolai Weibull <now@bitwi.se>
+-" Latest Revision: 2006-04-19
++" Latest Revision: 2010-01-03
+
+ if exists("b:current_syntax")
+ finish
+@@ -11,12 +11,13 @@
+ set cpo&vim
+
+ syn keyword netrcKeyword machine nextgroup=netrcMachine skipwhite skipnl
+-syn keyword netrcKeyword login nextgroup=netrcLogin,netrcSpecial
+- \ skipwhite skipnl
++syn keyword netrcKeyword account
++ \ login
++ \ nextgroup=netrcLogin,netrcSpecial skipwhite skipnl
+ syn keyword netrcKeyword password nextgroup=netrcPassword skipwhite skipnl
+ syn keyword netrcKeyword default
+-syn keyword netrcKeyword macdef nextgroup=netrcInit,netrcMacroName
+- \ skipwhite skipnl
++syn keyword netrcKeyword macdef
++ \ nextgroup=netrcInit,netrcMacroName skipwhite skipnl
+ syn region netrcMacro contained start='.' end='^$'
+
+ syn match netrcMachine contained display '\S\+'
+@@ -25,14 +26,14 @@
+ syn match netrcLogin contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
+ syn match netrcPassword contained display '\S\+'
+ syn match netrcPassword contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
+-syn match netrcMacroName contained display '\S\+' nextgroup=netrcMacro
+- \ skipwhite skipnl
++syn match netrcMacroName contained display '\S\+'
++ \ nextgroup=netrcMacro skipwhite skipnl
+ syn match netrcMacroName contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
+- \ nextgroup=netrcMacro skipwhite skipnl
++ \ nextgroup=netrcMacro skipwhite skipnl
+
+ syn keyword netrcSpecial contained anonymous
+-syn match netrcInit contained '\<init$' nextgroup=netrcMacro
+- \ skipwhite skipnl
++syn match netrcInit contained '\<init$'
++ \ nextgroup=netrcMacro skipwhite skipnl
+
+ syn sync fromstart
+
+diff -u -r --new-file runtime/syntax.orig/netrw.vim runtime/syntax/netrw.vim
+--- runtime/syntax.orig/netrw.vim 2008-03-28 13:35:41.000000000 -0500
++++ runtime/syntax/netrw.vim 2010-01-12 14:33:53.000000000 -0600
+@@ -1,7 +1,7 @@
+ " Language : Netrw Remote-Directory Listing Syntax
+ " Maintainer : Charles E. Campbell, Jr.
+-" Last change: Feb 06, 2008
+-" Version : 12
++" Last change: Jan 14, 2009
++" Version : 16
+ " ---------------------------------------------------------------------
+
+ " Syntax Clearing: {{{1
+@@ -16,85 +16,91 @@
+ syn cluster NetrwGroup contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt
+ syn cluster NetrwTreeGroup contains=netrwDir,netrwSymLink,netrwExe
+
+-syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify
+-syn match netrwDir "\.\{1,2}/" contains=netrwClassify
+-syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify
+-syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" contains=netrwDateSep skipwhite nextgroup=netrwTime
+-syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify
+-syn match netrwExe "\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify
+-syn match netrwTreeBar "^\%(| \)*" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
+-syn match netrwTreeBarSpace " " contained
+-
+-syn match netrwClassify "[*=|@/]\ze\%(\s\{2,}\|$\)" contained
+-syn match netrwDateSep "/" contained
+-syn match netrwTime "\d\{1,2}:\d\{2}:\d\{2}" contained contains=netrwTimeSep
++syn match netrwPlain "\(\S\+ \)*\S\+" contains=@NoSpell
++syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
++syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell
++syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify,@NoSpell
++syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" skipwhite contains=netrwDateSep,@NoSpell nextgroup=netrwTime
++syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
++syn match netrwExe "\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
++syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
++syn match netrwTreeBarSpace " " contained
++
++syn match netrwClassify "[*=|@/]\ze\%(\s\{2,}\|$\)" contained
++syn match netrwDateSep "/" contained
++syn match netrwTime "\d\{1,2}:\d\{2}:\d\{2}" contained contains=netrwTimeSep
+ syn match netrwTimeSep ":"
+
+-syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup
+-syn match netrwHide '^"\s*\(Hid\|Show\)ing:' skipwhite nextgroup=netrwHidePat
++syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup,@NoSpell
++syn match netrwHide '^"\s*\(Hid\|Show\)ing:' skipwhite contains=@NoSpell nextgroup=netrwHidePat
+ syn match netrwSlash "/" contained
+-syn match netrwHidePat "[^,]\+" contained skipwhite nextgroup=netrwHideSep
+-syn match netrwHideSep "," contained transparent skipwhite nextgroup=netrwHidePat
+-syn match netrwSortBy "Sorted by" contained transparent skipwhite nextgroup=netrwList
+-syn match netrwSortSeq "Sort sequence:" contained transparent skipwhite nextgroup=netrwList
+-syn match netrwCopyTgt "Copy/Move Tgt:" contained transparent skipwhite nextgroup=netrwList
+-syn match netrwList ".*$" contained contains=netrwComma
++syn match netrwHidePat "[^,]\+" contained skipwhite contains=@NoSpell nextgroup=netrwHideSep
++syn match netrwHideSep "," contained skipwhite nextgroup=netrwHidePat
++syn match netrwSortBy "Sorted by" contained transparent skipwhite nextgroup=netrwList
++syn match netrwSortSeq "Sort sequence:" contained transparent skipwhite nextgroup=netrwList
++syn match netrwCopyTgt "Copy/Move Tgt:" contained transparent skipwhite nextgroup=netrwList
++syn match netrwList ".*$" contained contains=netrwComma,@NoSpell
+ syn match netrwComma "," contained
+-syn region netrwQuickHelp matchgroup=Comment start="Quick Help:\s\+" end="$" contains=netrwHelpCmd keepend contained
+-syn match netrwHelpCmd "\S\ze:" contained skipwhite nextgroup=netrwCmdSep
++syn region netrwQuickHelp matchgroup=Comment start="Quick Help:\s\+" end="$" contains=netrwHelpCmd,@NoSpell keepend contained
++syn match netrwHelpCmd "\S\ze:" contained skipwhite contains=@NoSpell nextgroup=netrwCmdSep
+ syn match netrwCmdSep ":" contained nextgroup=netrwCmdNote
+-syn match netrwCmdNote ".\{-}\ze " contained
+-syn match netrwVersion "(netrw.*)" contained
++syn match netrwCmdNote ".\{-}\ze " contained contains=@NoSpell
++syn match netrwVersion "(netrw.*)" contained contains=@NoSpell
+
+ " -----------------------------
+ " Special filetype highlighting {{{1
+ " -----------------------------
+ if exists("g:netrw_special_syntax") && netrw_special_syntax
+- syn match netrwBak "\(\S\+ \)*\S\+\.bak\>" contains=netrwTreeBar
+- syn match netrwCompress "\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>" contains=netrwTreeBar
+- syn match netrwData "\(\S\+ \)*\S\+\.dat\>" contains=netrwTreeBar
+- syn match netrwHdr "\(\S\+ \)*\S\+\.h\>" contains=netrwTreeBar
+- syn match netrwLib "\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>" contains=netrwTreeBar
+- syn match netrwMakeFile "\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>" contains=netrwTreeBar
+- syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar
+- syn match netrwTags "\<tags\>" contains=netrwTreeBar
+- syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar
+- syn match netrwTilde "\(\S\+ \)*\S\+\~\>" contains=netrwTreeBar
+- syn match netrwTmp "\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar
++ syn match netrwBak "\(\S\+ \)*\S\+\.bak\>" contains=netrwTreeBar,@NoSpell
++ syn match netrwCompress "\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>" contains=netrwTreeBar,@NoSpell
++ if has("unix")
++ syn match netrwCoreDump "\<core\%(\.\d\+\)\=\>" contains=netrwTreeBar,@NoSpell
++ endif
++ syn match netrwData "\(\S\+ \)*\S\+\.dat\>" contains=netrwTreeBar,@NoSpell
++ syn match netrwHdr "\(\S\+ \)*\S\+\.h\>" contains=netrwTreeBar,@NoSpell
++ syn match netrwLib "\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>" contains=netrwTreeBar,@NoSpell
++ syn match netrwMakeFile "\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>" contains=netrwTreeBar,@NoSpell
++ syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar,@NoSpell
++ syn match netrwTags "\<tags\>" contains=netrwTreeBar,@NoSpell
++ syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar,@NoSpell
++ syn match netrwTilde "\(\S\+ \)*\S\+\~\>" contains=netrwTreeBar,@NoSpell
++ syn match netrwTmp "\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar,@NoSpell
+ endif
+
+ " ---------------------------------------------------------------------
+ " Highlighting Links: {{{1
+ if !exists("did_drchip_netrwlist_syntax")
+ let did_drchip_netrwlist_syntax= 1
+- hi link netrwClassify Function
+- hi link netrwCmdSep Delimiter
+- hi link netrwComment Comment
+- hi link netrwDir Directory
+- hi link netrwHelpCmd Function
+- hi link netrwHidePat Statement
+- hi link netrwList Statement
+- hi link netrwVersion Identifier
+- hi link netrwSymLink Question
+- hi link netrwExe PreProc
+- hi link netrwDateSep Delimiter
+-
+- hi link netrwTreeBar Special
+- hi link netrwTimeSep netrwDateSep
+- hi link netrwComma netrwComment
+- hi link netrwHide netrwComment
+- hi link netrwMarkFile Identifier
++ hi default link netrwClassify Function
++ hi default link netrwCmdSep Delimiter
++ hi default link netrwComment Comment
++ hi default link netrwDir Directory
++ hi default link netrwHelpCmd Function
++ hi default link netrwHidePat Statement
++ hi default link netrwHideSep netrwComment
++ hi default link netrwList Statement
++ hi default link netrwVersion Identifier
++ hi default link netrwSymLink Question
++ hi default link netrwExe PreProc
++ hi default link netrwDateSep Delimiter
++
++ hi default link netrwTreeBar Special
++ hi default link netrwTimeSep netrwDateSep
++ hi default link netrwComma netrwComment
++ hi default link netrwHide netrwComment
++ hi default link netrwMarkFile Identifier
+
+ " special syntax highlighting (see :he g:netrw_special_syntax)
+- hi link netrwBak NonText
+- hi link netrwCompress Folded
+- hi link netrwData DiffChange
+- hi link netrwLib DiffChange
+- hi link netrwMakefile DiffChange
+- hi link netrwObj Folded
+- hi link netrwTilde Folded
+- hi link netrwTmp Folded
+- hi link netrwTags Folded
++ hi default link netrwBak NonText
++ hi default link netrwCompress Folded
++ hi default link netrwCoreDump WarningMsg
++ hi default link netrwData DiffChange
++ hi default link netrwLib DiffChange
++ hi default link netrwMakefile DiffChange
++ hi default link netrwObj Folded
++ hi default link netrwTilde Folded
++ hi default link netrwTmp Folded
++ hi default link netrwTags Folded
+ endif
+
+ " Current Syntax: {{{1
+diff -u -r --new-file runtime/syntax.orig/papp.vim runtime/syntax/papp.vim
+--- runtime/syntax.orig/papp.vim 2004-06-07 09:32:35.000000000 -0500
++++ runtime/syntax/papp.vim 2009-11-28 06:31:38.000000000 -0600
+@@ -2,7 +2,7 @@
+ "
+ " Language: papp
+ " Maintainer: Marc Lehmann <pcg@goof.com>
+-" Last Change: 2003 May 11
++" Last Change: 2009 Nov 11
+ " Filenames: *.papp *.pxml *.pxsl
+ " URL: http://papp.plan9.de/
+
+@@ -37,6 +37,7 @@
+ syn include @PAppHtml syntax/html.vim
+ endif
+ unlet b:current_syntax
++ syntax spell default " added by Bram
+ endif
+
+ if version < 600
+diff -u -r --new-file runtime/syntax.orig/po.vim runtime/syntax/po.vim
+--- runtime/syntax.orig/po.vim 2008-06-15 06:29:12.000000000 -0500
++++ runtime/syntax/po.vim 2008-09-18 13:56:38.000000000 -0500
+@@ -1,10 +1,10 @@
+ " Vim syntax file
+ " Language: po (gettext)
+ " Maintainer: Dwayne Bailey <dwayne@translate.org.za>
+-" Last Change: 2008 Jan 08
++" Last Change: 2008 Sep 17
+ " Contributors: Dwayne Bailey (Most advanced syntax highlighting)
+ " Leonardo Fontenelle (Spell checking)
+-" Nam SungHyun <namsh@kldp.org> (Original maintainer)
++" SungHyun Nam <goweol@gmail.com> (Original maintainer)
+
+ " For version 5.x: Clear all syntax items
+ " For version 6.x: Quit when a syntax file was already loaded
+diff -u -r --new-file runtime/syntax.orig/prolog.vim runtime/syntax/prolog.vim
+--- runtime/syntax.orig/prolog.vim 2008-05-04 14:21:09.000000000 -0500
++++ runtime/syntax/prolog.vim 2009-12-16 14:38:21.000000000 -0600
+@@ -1,8 +1,8 @@
+ " Vim syntax file
+ " Language: PROLOG
+ " Maintainers: Thomas Koehler <jean-luc@picard.franken.de>
+-" Last Change: 2008 April 5
+-" URL: http://gott-gehabt/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim
++" Last Change: 2009 Dec 04
++" URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim
+
+ " There are two sets of highlighting in here:
+ " If the "prolog_highlighting_clean" variable exists, it is rather sparse.
+@@ -63,7 +63,7 @@
+ syn match prologOperator "=\\=\|=:=\|\\==\|=<\|==\|>=\|\\=\|\\+\|<\|>\|="
+ syn match prologAsIs "===\|\\===\|<=\|=>"
+
+- syn match prologNumber "\<[0123456789]*\>"
++ syn match prologNumber "\<[0123456789]*\>'\@!"
+ syn match prologCommentError "\*/"
+ syn match prologSpecialCharacter ";"
+ syn match prologSpecialCharacter "!"
+diff -u -r --new-file runtime/syntax.orig/pyrex.vim runtime/syntax/pyrex.vim
+--- runtime/syntax.orig/pyrex.vim 2004-06-07 09:32:36.000000000 -0500
++++ runtime/syntax/pyrex.vim 2009-11-28 06:31:38.000000000 -0600
+@@ -2,7 +2,7 @@
+ " Language: Pyrex
+ " Maintainer: Marco Barisione <marco.bari@people.it>
+ " URL: http://marcobari.altervista.org/pyrex_vim.html
+-" Last Change: 2004 May 16
++" Last Change: 2009 Nov 09
+
+ " For version 5.x: Clear all syntax items
+ " For version 6.x: Quit when a syntax file was already loaded
+@@ -25,7 +25,7 @@
+ syn keyword pyrexType int long short float double char object void
+ syn keyword pyrexType signed unsigned
+ syn keyword pyrexStructure struct union enum
+-syn keyword pyrexPrecondit include cimport
++syn keyword pyrexInclude include cimport
+ syn keyword pyrexAccess public private property readonly extern
+ " If someome wants Python's built-ins highlighted probably he
+ " also wants Pyrex's built-ins highlighted
+@@ -35,9 +35,9 @@
+
+ " This deletes "from" from the keywords and re-adds it as a
+ " match with lower priority than pyrexForFrom
+-syn clear pythonPreCondit
+-syn keyword pythonPreCondit import
+-syn match pythonPreCondit "from"
++syn clear pythonInclude
++syn keyword pythonInclude import
++syn match pythonInclude "from"
+
+ " With "for[^:]*\zsfrom" VIM does not match "for" anymore, so
+ " I used the slower "\@<=" form
+@@ -54,7 +54,7 @@
+ HiLink pyrexStatement Statement
+ HiLink pyrexType Type
+ HiLink pyrexStructure Structure
+- HiLink pyrexPrecondit PreCondit
++ HiLink pyrexInclude PreCondit
+ HiLink pyrexAccess pyrexStatement
+ if exists("python_highlight_builtins") || exists("pyrex_highlight_builtins")
+ HiLink pyrexBuiltin Function
+diff -u -r --new-file runtime/syntax.orig/python.vim runtime/syntax/python.vim
+--- runtime/syntax.orig/python.vim 2006-10-15 16:04:19.000000000 -0500
++++ runtime/syntax/python.vim 2009-10-28 15:56:59.000000000 -0500
+@@ -1,143 +1,252 @@
+ " Vim syntax file
+ " Language: Python
+ " Maintainer: Neil Schemenauer <nas@python.ca>
+-" Updated: 2006-10-15
+-" Added Python 2.4 features 2006 May 4 (Dmitry Vasiliev)
++" Last Change: 2009-10-13
++" Credits: Zvezdan Petkovic <zpetkovic@acm.org>
++" Neil Schemenauer <nas@python.ca>
++" Dmitry Vasiliev
+ "
+-" Options to control Python syntax highlighting:
++" This version is a major rewrite by Zvezdan Petkovic.
+ "
+-" For highlighted numbers:
++" - introduced highlighting of doctests
++" - updated keywords, built-ins, and exceptions
++" - corrected regular expressions for
+ "
+-" let python_highlight_numbers = 1
++" * functions
++" * decorators
++" * strings
++" * escapes
++" * numbers
++" * space error
+ "
+-" For highlighted builtin functions:
++" - corrected synchronization
++" - more highlighting is ON by default, except
++" - space error highlighting is OFF by default
+ "
+-" let python_highlight_builtins = 1
++" Optional highlighting can be controlled using these variables.
+ "
+-" For highlighted standard exceptions:
++" let python_no_builtin_highlight = 1
++" let python_no_doctest_code_highlight = 1
++" let python_no_doctest_highlight = 1
++" let python_no_exception_highlight = 1
++" let python_no_number_highlight = 1
++" let python_space_error_highlight = 1
+ "
+-" let python_highlight_exceptions = 1
++" All the options above can be switched on together.
+ "
+-" Highlight erroneous whitespace:
+-"
+-" let python_highlight_space_errors = 1
+-"
+-" If you want all possible Python highlighting (the same as setting the
+-" preceding options):
+-"
+-" let python_highlight_all = 1
++" let python_highlight_all = 1
+ "
+
+-" For version 5.x: Clear all syntax items
+-" For version 6.x: Quit when a syntax file was already loaded
++" For version 5.x: Clear all syntax items.
++" For version 6.x: Quit when a syntax file was already loaded.
+ if version < 600
+ syntax clear
+ elseif exists("b:current_syntax")
+ finish
+ endif
+
+-
+-syn keyword pythonStatement break continue del
+-syn keyword pythonStatement except exec finally
+-syn keyword pythonStatement pass print raise
+-syn keyword pythonStatement return try with
+-syn keyword pythonStatement global assert
+-syn keyword pythonStatement lambda yield
+-syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite
+-syn match pythonFunction "[a-zA-Z_][a-zA-Z0-9_]*" contained
++" Keep Python keywords in alphabetical order inside groups for easy
++" comparison with the table in the 'Python Language Reference'
++" http://docs.python.org/reference/lexical_analysis.html#keywords.
++" Groups are in the order presented in NAMING CONVENTIONS in syntax.txt.
++" Exceptions come last at the end of each group (class and def below).
++"
++" Keywords 'with' and 'as' are new in Python 2.6
++" (use 'from __future__ import with_statement' in Python 2.5).
++"
++" Some compromises had to be made to support both Python 3.0 and 2.6.
++" We include Python 3.0 features, but when a definition is duplicated,
++" the last definition takes precedence.
++"
++" - 'False', 'None', and 'True' are keywords in Python 3.0 but they are
++" built-ins in 2.6 and will be highlighted as built-ins below.
++" - 'exec' is a built-in in Python 3.0 and will be highlighted as
++" built-in below.
++" - 'nonlocal' is a keyword in Python 3.0 and will be highlighted.
++" - 'print' is a built-in in Python 3.0 and will be highlighted as
++" built-in below (use 'from __future__ import print_function' in 2.6)
++"
++syn keyword pythonStatement False, None, True
++syn keyword pythonStatement as assert break continue del exec global
++syn keyword pythonStatement lambda nonlocal pass print return with yield
++syn keyword pythonStatement class def nextgroup=pythonFunction skipwhite
++syn keyword pythonConditional elif else if
+ syn keyword pythonRepeat for while
+-syn keyword pythonConditional if elif else
+ syn keyword pythonOperator and in is not or
+-" AS will be a keyword in Python 3
+-syn keyword pythonPreCondit import from as
+-syn match pythonComment "#.*$" contains=pythonTodo,@Spell
+-syn keyword pythonTodo TODO FIXME XXX contained
++syn keyword pythonException except finally raise try
++syn keyword pythonInclude from import
+
+ " Decorators (new in Python 2.4)
+ syn match pythonDecorator "@" display nextgroup=pythonFunction skipwhite
++" The zero-length non-grouping match before the function name is
++" extremely important in pythonFunction. Without it, everything is
++" interpreted as a function inside the contained environment of
++" doctests.
++" A dot must be allowed because of @MyClass.myfunc decorators.
++syn match pythonFunction
++ \ "\%(\%(def\s\|class\s\|@\)\s*\)\@<=\h\%(\w\|\.\)*" contained
++
++syn match pythonComment "#.*$" contains=pythonTodo,@Spell
++syn keyword pythonTodo FIXME NOTE NOTES TODO XXX contained
+
+-" strings
+-syn region pythonString matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape,@Spell
+-syn region pythonString matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape,@Spell
+-syn region pythonString matchgroup=Normal start=+[uU]\="""+ end=+"""+ contains=pythonEscape,@Spell
+-syn region pythonString matchgroup=Normal start=+[uU]\='''+ end=+'''+ contains=pythonEscape,@Spell
+-syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+ contains=@Spell
+-syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+ contains=@Spell
+-syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+ contains=@Spell
+-syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]'''+ end=+'''+ contains=@Spell
+-syn match pythonEscape +\\[abfnrtv'"\\]+ contained
+-syn match pythonEscape "\\\o\{1,3}" contained
+-syn match pythonEscape "\\x\x\{2}" contained
+-syn match pythonEscape "\(\\u\x\{4}\|\\U\x\{8}\)" contained
+-syn match pythonEscape "\\$"
++" Triple-quoted strings can contain doctests.
++syn region pythonString
++ \ start=+[uU]\=\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1"
++ \ contains=pythonEscape,@Spell
++syn region pythonString
++ \ start=+[uU]\=\z('''\|"""\)+ end="\z1" keepend
++ \ contains=pythonEscape,pythonSpaceError,pythonDoctest,@Spell
++syn region pythonRawString
++ \ start=+[uU]\=[rR]\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1"
++ \ contains=@Spell
++syn region pythonRawString
++ \ start=+[uU]\=[rR]\z('''\|"""\)+ end="\z1" keepend
++ \ contains=pythonSpaceError,pythonDoctest,@Spell
++
++syn match pythonEscape +\\[abfnrtv'"\\]+ contained
++syn match pythonEscape "\\\o\{1,3}" contained
++syn match pythonEscape "\\x\x\{2}" contained
++syn match pythonEscape "\%(\\u\x\{4}\|\\U\x\{8}\)" contained
++" Python allows case-insensitive Unicode IDs: http://www.unicode.org/charts/
++syn match pythonEscape "\\N{\a\+\%(\s\a\+\)*}" contained
++syn match pythonEscape "\\$"
+
+ if exists("python_highlight_all")
+- let python_highlight_numbers = 1
+- let python_highlight_builtins = 1
+- let python_highlight_exceptions = 1
+- let python_highlight_space_errors = 1
++ if exists("python_no_builtin_highlight")
++ unlet python_no_builtin_highlight
++ endif
++ if exists("python_no_doctest_code_highlight")
++ unlet python_no_doctest_code_highlight
++ endif
++ if exists("python_no_doctest_highlight")
++ unlet python_no_doctest_highlight
++ endif
++ if exists("python_no_exception_highlight")
++ unlet python_no_exception_highlight
++ endif
++ if exists("python_no_number_highlight")
++ unlet python_no_number_highlight
++ endif
++ let python_space_error_highlight = 1
+ endif
+
+-if exists("python_highlight_numbers")
++" It is very important to understand all details before changing the
++" regular expressions below or their order.
++" The word boundaries are *not* the floating-point number boundaries
++" because of a possible leading or trailing decimal point.
++" The expressions below ensure that all valid number literals are
++" highlighted, and invalid number literals are not. For example,
++"
++" - a decimal point in '4.' at the end of a line is highlighted,
++" - a second dot in 1.0.0 is not highlighted,
++" - 08 is not highlighted,
++" - 08e0 or 08j are highlighted,
++"
++" and so on, as specified in the 'Python Language Reference'.
++" http://docs.python.org/reference/lexical_analysis.html#numeric-literals
++if !exists("python_no_number_highlight")
+ " numbers (including longs and complex)
+- syn match pythonNumber "\<0x\x\+[Ll]\=\>"
+- syn match pythonNumber "\<\d\+[LljJ]\=\>"
+- syn match pythonNumber "\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>"
+- syn match pythonNumber "\<\d\+\.\([eE][+-]\=\d\+\)\=[jJ]\=\>"
+- syn match pythonNumber "\<\d\+\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>"
+-endif
+-
+-if exists("python_highlight_builtins")
+- " builtin functions, types and objects, not really part of the syntax
+- syn keyword pythonBuiltin True False bool enumerate set frozenset help
+- syn keyword pythonBuiltin reversed sorted sum
+- syn keyword pythonBuiltin Ellipsis None NotImplemented __import__ abs
+- syn keyword pythonBuiltin apply buffer callable chr classmethod cmp
+- syn keyword pythonBuiltin coerce compile complex delattr dict dir divmod
+- syn keyword pythonBuiltin eval execfile file filter float getattr globals
+- syn keyword pythonBuiltin hasattr hash hex id input int intern isinstance
+- syn keyword pythonBuiltin issubclass iter len list locals long map max
+- syn keyword pythonBuiltin min object oct open ord pow property range
+- syn keyword pythonBuiltin raw_input reduce reload repr round setattr
+- syn keyword pythonBuiltin slice staticmethod str super tuple type unichr
+- syn keyword pythonBuiltin unicode vars xrange zip
+-endif
+-
+-if exists("python_highlight_exceptions")
+- " builtin exceptions and warnings
+- syn keyword pythonException ArithmeticError AssertionError AttributeError
+- syn keyword pythonException DeprecationWarning EOFError EnvironmentError
+- syn keyword pythonException Exception FloatingPointError IOError
+- syn keyword pythonException ImportError IndentationError IndexError
+- syn keyword pythonException KeyError KeyboardInterrupt LookupError
+- syn keyword pythonException MemoryError NameError NotImplementedError
+- syn keyword pythonException OSError OverflowError OverflowWarning
+- syn keyword pythonException ReferenceError RuntimeError RuntimeWarning
+- syn keyword pythonException StandardError StopIteration SyntaxError
+- syn keyword pythonException SyntaxWarning SystemError SystemExit TabError
+- syn keyword pythonException TypeError UnboundLocalError UnicodeError
+- syn keyword pythonException UnicodeEncodeError UnicodeDecodeError
+- syn keyword pythonException UnicodeTranslateError
+- syn keyword pythonException UserWarning ValueError Warning WindowsError
+- syn keyword pythonException ZeroDivisionError
++ syn match pythonNumber "\<0[oO]\=\o\+[Ll]\=\>"
++ syn match pythonNumber "\<0[xX]\x\+[Ll]\=\>"
++ syn match pythonNumber "\<0[bB][01]\+[Ll]\=\>"
++ syn match pythonNumber "\<\%([1-9]\d*\|0\)[Ll]\=\>"
++ syn match pythonNumber "\<\d\+[jJ]\>"
++ syn match pythonNumber "\<\d\+[eE][+-]\=\d\+[jJ]\=\>"
++ syn match pythonNumber
++ \ "\<\d\+\.\%([eE][+-]\=\d\+\)\=[jJ]\=\%(\W\|$\)\@="
++ syn match pythonNumber
++ \ "\%(^\|\W\)\@<=\d*\.\d\+\%([eE][+-]\=\d\+\)\=[jJ]\=\>"
++endif
++
++" Group the built-ins in the order in the 'Python Library Reference' for
++" easier comparison.
++" http://docs.python.org/library/constants.html
++" http://docs.python.org/library/functions.html
++" http://docs.python.org/library/functions.html#non-essential-built-in-functions
++" Python built-in functions are in alphabetical order.
++if !exists("python_no_builtin_highlight")
++ " built-in constants
++ " 'False', 'True', and 'None' are also reserved words in Python 3.0
++ syn keyword pythonBuiltin False True None
++ syn keyword pythonBuiltin NotImplemented Ellipsis __debug__
++ " built-in functions
++ syn keyword pythonBuiltin abs all any bin bool chr classmethod
++ syn keyword pythonBuiltin compile complex delattr dict dir divmod
++ syn keyword pythonBuiltin enumerate eval filter float format
++ syn keyword pythonBuiltin frozenset getattr globals hasattr hash
++ syn keyword pythonBuiltin help hex id input int isinstance
++ syn keyword pythonBuiltin issubclass iter len list locals map max
++ syn keyword pythonBuiltin min next object oct open ord pow print
++ syn keyword pythonBuiltin property range repr reversed round set
++ syn keyword pythonBuiltin setattr slice sorted staticmethod str
++ syn keyword pythonBuiltin sum super tuple type vars zip __import__
++ " Python 2.6 only
++ syn keyword pythonBuiltin basestring callable cmp execfile file
++ syn keyword pythonBuiltin long raw_input reduce reload unichr
++ syn keyword pythonBuiltin unicode xrange
++ " Python 3.0 only
++ syn keyword pythonBuiltin ascii bytearray bytes exec memoryview
++ " non-essential built-in functions; Python 2.6 only
++ syn keyword pythonBuiltin apply buffer coerce intern
++endif
++
++" From the 'Python Library Reference' class hierarchy at the bottom.
++" http://docs.python.org/library/exceptions.html
++if !exists("python_no_exception_highlight")
++ " builtin base exceptions (only used as base classes for other exceptions)
++ syn keyword pythonExceptions BaseException Exception
++ syn keyword pythonExceptions ArithmeticError EnvironmentError
++ syn keyword pythonExceptions LookupError
++ " builtin base exception removed in Python 3.0
++ syn keyword pythonExceptions StandardError
++ " builtin exceptions (actually raised)
++ syn keyword pythonExceptions AssertionError AttributeError BufferError
++ syn keyword pythonExceptions EOFError FloatingPointError GeneratorExit
++ syn keyword pythonExceptions IOError ImportError IndentationError
++ syn keyword pythonExceptions IndexError KeyError KeyboardInterrupt
++ syn keyword pythonExceptions MemoryError NameError NotImplementedError
++ syn keyword pythonExceptions OSError OverflowError ReferenceError
++ syn keyword pythonExceptions RuntimeError StopIteration SyntaxError
++ syn keyword pythonExceptions SystemError SystemExit TabError TypeError
++ syn keyword pythonExceptions UnboundLocalError UnicodeError
++ syn keyword pythonExceptions UnicodeDecodeError UnicodeEncodeError
++ syn keyword pythonExceptions UnicodeTranslateError ValueError VMSError
++ syn keyword pythonExceptions WindowsError ZeroDivisionError
++ " builtin warnings
++ syn keyword pythonExceptions BytesWarning DeprecationWarning FutureWarning
++ syn keyword pythonExceptions ImportWarning PendingDeprecationWarning
++ syn keyword pythonExceptions RuntimeWarning SyntaxWarning UnicodeWarning
++ syn keyword pythonExceptions UserWarning Warning
+ endif
+
+-if exists("python_highlight_space_errors")
++if exists("python_space_error_highlight")
+ " trailing whitespace
+- syn match pythonSpaceError display excludenl "\S\s\+$"ms=s+1
++ syn match pythonSpaceError display excludenl "\s\+$"
+ " mixed tabs and spaces
+- syn match pythonSpaceError display " \+\t"
+- syn match pythonSpaceError display "\t\+ "
++ syn match pythonSpaceError display " \+\t"
++ syn match pythonSpaceError display "\t\+ "
+ endif
+
+-" This is fast but code inside triple quoted strings screws it up. It
+-" is impossible to fix because the only way to know if you are inside a
+-" triple quoted string is to start from the beginning of the file. If
+-" you have a fast machine you can try uncommenting the "sync minlines"
+-" and commenting out the rest.
+-syn sync match pythonSync grouphere NONE "):$"
+-syn sync maxlines=200
+-"syn sync minlines=2000
++" Do not spell doctests inside strings.
++" Notice that the end of a string, either ''', or """, will end the contained
++" doctest too. Thus, we do *not* need to have it as an end pattern.
++if !exists("python_no_doctest_highlight")
++ if !exists("python_no_doctest_code_higlight")
++ syn region pythonDoctest
++ \ start="^\s*>>>\s" end="^\s*$"
++ \ contained contains=ALLBUT,pythonDoctest,@Spell
++ syn region pythonDoctestValue
++ \ start=+^\s*\%(>>>\s\|\.\.\.\s\|"""\|'''\)\@!\S\++ end="$"
++ \ contained
++ else
++ syn region pythonDoctest
++ \ start="^\s*>>>" end="^\s*$"
++ \ contained contains=@NoSpell
++ endif
++endif
++
++" Sync at the beginning of class, function, or method definition.
++syn sync match pythonSync grouphere NONE "^\s*\%(def\|class\)\s\+\h\w*\s*("
+
+ if version >= 508 || !exists("did_python_syn_inits")
+ if version <= 508
+@@ -147,35 +256,40 @@
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+- " The default methods for highlighting. Can be overridden later
++ " The default highlight links. Can be overridden later.
+ HiLink pythonStatement Statement
+- HiLink pythonFunction Function
+ HiLink pythonConditional Conditional
+ HiLink pythonRepeat Repeat
+- HiLink pythonString String
+- HiLink pythonRawString String
+- HiLink pythonEscape Special
+ HiLink pythonOperator Operator
+- HiLink pythonPreCondit PreCondit
++ HiLink pythonException Exception
++ HiLink pythonInclude Include
++ HiLink pythonDecorator Define
++ HiLink pythonFunction Function
+ HiLink pythonComment Comment
+ HiLink pythonTodo Todo
+- HiLink pythonDecorator Define
+- if exists("python_highlight_numbers")
+- HiLink pythonNumber Number
++ HiLink pythonString String
++ HiLink pythonRawString String
++ HiLink pythonEscape Special
++ if !exists("python_no_number_highlight")
++ HiLink pythonNumber Number
+ endif
+- if exists("python_highlight_builtins")
++ if !exists("python_no_builtin_highlight")
+ HiLink pythonBuiltin Function
+ endif
+- if exists("python_highlight_exceptions")
+- HiLink pythonException Exception
++ if !exists("python_no_exception_highlight")
++ HiLink pythonExceptions Structure
+ endif
+- if exists("python_highlight_space_errors")
++ if exists("python_space_error_highlight")
+ HiLink pythonSpaceError Error
+ endif
++ if !exists("python_no_doctest_highlight")
++ HiLink pythonDoctest Special
++ HiLink pythonDoctestValue Define
++ endif
+
+ delcommand HiLink
+ endif
+
+ let b:current_syntax = "python"
+
+-" vim: ts=8
++" vim:set sw=2 sts=2 ts=8 noet:
+diff -u -r --new-file runtime/syntax.orig/readline.vim runtime/syntax/readline.vim
+--- runtime/syntax.orig/readline.vim 2007-06-17 10:03:20.000000000 -0500
++++ runtime/syntax/readline.vim 2009-06-13 07:38:40.000000000 -0500
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: readline(3) configuration file
+ " Maintainer: Nikolai Weibull <now@bitwi.se>
+-" Latest Revision: 2007-06-17
++" Latest Revision: 2009-05-25
+ " readline_has_bash - if defined add support for bash specific
+ " settings/functions
+
+@@ -128,6 +128,7 @@
+ \ arrow-key-prefix vi-back-to-indent vi-bword
+ \ vi-bWord vi-eword vi-eWord vi-fword vi-fWord
+ \ vi-next-word
++ \ vi-movement-mode
+
+ if exists("readline_has_bash")
+ syn keyword readlineFunctions contained
+diff -u -r --new-file runtime/syntax.orig/remind.vim runtime/syntax/remind.vim
+--- runtime/syntax.orig/remind.vim 2006-05-12 12:55:59.000000000 -0500
++++ runtime/syntax/remind.vim 2009-10-08 16:18:08.000000000 -0500
+@@ -1,12 +1,13 @@
+ " Vim syntax file
+ " Language: Remind
+ " Maintainer: Davide Alberani <alberanid@libero.it>
+-" Last Change: 10 May 2006
+-" Version: 0.3
++" Last Change: 18 Sep 2009
++" Version: 0.5
+ " URL: http://erlug.linux.it/~da/vim/syntax/remind.vim
+ "
+-" remind is a sophisticated reminder service; you can download remind from:
+-" http://www.roaringpenguin.com/penguin/open_source_remind.php
++" remind is a sophisticated reminder service
++" you can download remind from:
++" http://www.roaringpenguin.com/penguin/open_source_remind.php
+
+ if version < 600
+ syntax clear
+@@ -14,24 +15,30 @@
+ finish
+ endif
+
+-" shut case off
++" shut case off.
+ syn case ignore
+
+ syn keyword remindCommands REM OMIT SET FSET UNSET
+-syn keyword remindExpiry UNTIL SCANFROM SCAN WARN SCHED
++syn keyword remindExpiry UNTIL FROM SCANFROM SCAN WARN SCHED
+ syn keyword remindTag PRIORITY TAG
+ syn keyword remindTimed AT DURATION
+ syn keyword remindMove ONCE SKIP BEFORE AFTER
+-syn keyword remindSpecial INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP
++syn keyword remindSpecial INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP COLOR
+ syn keyword remindRun MSG MSF RUN CAL SATISFY SPECIAL PS PSFILE SHADE MOON
+ syn keyword remindConditional IF ELSE ENDIF IFTRIG
++syn keyword remindDebug DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
+ syn match remindComment "#.*$"
+ syn region remindString start=+'+ end=+'+ skip=+\\\\\|\\'+ oneline
+ syn region remindString start=+"+ end=+"+ skip=+\\\\\|\\"+ oneline
+-syn keyword remindDebug DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
+ syn match remindVar "\$[_a-zA-Z][_a-zA-Z0-9]*"
+ syn match remindSubst "%[^ ]"
+ syn match remindAdvanceNumber "\(\*\|+\|-\|++\|--\)[0-9]\+"
++" XXX: use different separators for dates and times?
++syn match remindDateSeparators "[/:@\.-]" contained
++syn match remindTimes "[0-9]\{1,2}[:\.][0-9]\{1,2}" contains=remindDateSeparators
++" XXX: why not match only valid dates? Ok, checking for 'Feb the 30' would
++" be impossible, but at least check for valid months and times.
++syn match remindDates "'[0-9]\{4}[/-][0-9]\{1,2}[/-][0-9]\{1,2}\(@[0-9]\{1,2}[:\.][0-9]\{1,2}\)\?'" contains=remindDateSeparators
+ " This will match trailing whitespaces that seem to break rem2ps.
+ " Courtesy of Michael Dunn.
+ syn match remindWarning display excludenl "\S\s\+$"ms=s+1
+@@ -54,11 +61,14 @@
+ HiLink remindRun Function
+ HiLink remindConditional Conditional
+ HiLink remindComment Comment
++ HiLink remindTimes String
+ HiLink remindString String
+ HiLink remindDebug Debug
+ HiLink remindVar Identifier
+ HiLink remindSubst Constant
+ HiLink remindAdvanceNumber Number
++ HiLink remindDateSeparators Comment
++ HiLink remindDates String
+ HiLink remindWarning Error
+
+ delcommand HiLink
+diff -u -r --new-file runtime/syntax.orig/rhelp.vim runtime/syntax/rhelp.vim
+--- runtime/syntax.orig/rhelp.vim 2008-04-10 14:24:17.000000000 -0500
++++ runtime/syntax/rhelp.vim 2009-05-14 13:53:07.000000000 -0500
+@@ -1,13 +1,14 @@
+ " Vim syntax file
+ " Language: R Help File
+ " Maintainer: Johannes Ranke <jranke@uni-bremen.de>
+-" Last Change: 2008 Apr 10
+-" Version: 0.7.1
+-" SVN: $Id: rhelp.vim 81 2008-04-10 08:30:11Z ranke $
++" Last Change: 2009 Mai 12
++" Version: 0.7.2
++" SVN: $Id: rhelp.vim 86 2009-05-12 19:23:47Z ranke $
+ " Remarks: - Now includes R syntax highlighting in the appropriate
+ " sections if an r.vim file is in the same directory or in the
+ " default debian location.
+ " - There is no Latex markup in equations
++" - Thanks to Will Gray for finding and fixing a bug
+
+ " Version Clears: {{{1
+ " For version 5.x: Clear all syntax items
+@@ -57,7 +58,7 @@
+
+ " Links {{{1
+ syn region rhelpLink matchgroup=rhelpSection start="\\link{" end="}" contained keepend
+-syn region rhelpLink matchgroup=rhelpSection start="\\link\[.*\]{" end="}" contained keepend
++syn region rhelpLink matchgroup=rhelpSection start="\\link\[.\{-}\]{" end="}" contained keepend
+ syn region rhelpLink matchgroup=rhelpSection start="\\linkS4class{" end="}" contained keepend
+
+ " Type Styles {{{1
+diff -u -r --new-file runtime/syntax.orig/rnoweb.vim runtime/syntax/rnoweb.vim
+--- runtime/syntax.orig/rnoweb.vim 2007-05-05 12:55:31.000000000 -0500
++++ runtime/syntax/rnoweb.vim 2009-05-05 14:48:52.000000000 -0500
+@@ -1,9 +1,9 @@
+ " Vim syntax file
+ " Language: R noweb Files
+ " Maintainer: Johannes Ranke <jranke@uni-bremen.de>
+-" Last Change: 2007 Mär 30
+-" Version: 0.8
+-" SVN: $Id: rnoweb.vim,v 1.3 2007/05/05 17:55:31 vimboss Exp $
++" Last Change: 2009 May 05
++" Version: 0.9
++" SVN: $Id: rnoweb.vim 84 2009-05-03 19:52:47Z ranke $
+ " Remarks: - This file is inspired by the proposal of
+ " Fernando Henrique Ferraz Pereira da Rosa <feferraz@ime.usp.br>
+ " http://www.ime.usp.br/~feferraz/en/sweavevim.html
+@@ -25,6 +25,7 @@
+ unlet b:current_syntax
+
+ syn cluster texMatchGroup add=@rnoweb
++syn cluster texMathMatchGroup add=rnowebSexpr
+ syn cluster texEnvGroup add=@rnoweb
+ syn cluster texFoldGroup add=@rnoweb
+ syn cluster texDocGroup add=@rnoweb
+diff -u -r --new-file runtime/syntax.orig/rst.vim runtime/syntax/rst.vim
+--- runtime/syntax.orig/rst.vim 2006-07-03 18:49:39.000000000 -0500
++++ runtime/syntax/rst.vim 2010-02-11 06:41:37.000000000 -0600
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: reStructuredText documentation format
+ " Maintainer: Nikolai Weibull <now@bitwi.se>
+-" Latest Revision: 2006-07-04
++" Latest Revision: 2010-01-23
+
+ if exists("b:current_syntax")
+ finish
+@@ -12,12 +12,9 @@
+
+ syn case ignore
+
+-" FIXME: The problem with these two is that Vim doesn’t seem to like
+-" matching across line boundaries.
+-"
+-" syn match rstSections /^.*\n[=`:.'"~^_*+#-]\+$/
++syn match rstSections "^\%(\([=`:.'"~^_*+#-]\)\1\+\n\)\=.\+\n\([=`:.'"~^_*+#-]\)\2\+$"
+
+-" syn match rstTransition /^\s*[=`:.'"~^_*+#-]\{4,}\s*$/
++syn match rstTransition /^[=`:.'"~^_*+#-]\{4,}\s*$/
+
+ syn cluster rstCruft contains=rstEmphasis,rstStrongEmphasis,
+ \ rstInterpretedText,rstInlineLiteral,rstSubstitutionReference,
+@@ -140,12 +137,12 @@
+
+ " TODO: Use better syncing. I don’t know the specifics of syncing well enough,
+ " though.
+-syn sync minlines=50
++syn sync minlines=50 linebreaks=1
+
+ hi def link rstTodo Todo
+ hi def link rstComment Comment
+-"hi def link rstSections Type
+-"hi def link rstTransition Type
++hi def link rstSections Type
++hi def link rstTransition Type
+ hi def link rstLiteralBlock String
+ hi def link rstQuotedLiteralBlock String
+ hi def link rstDoctestBlock PreProc
+diff -u -r --new-file runtime/syntax.orig/samba.vim runtime/syntax/samba.vim
+--- runtime/syntax.orig/samba.vim 2004-09-21 04:51:35.000000000 -0500
++++ runtime/syntax/samba.vim 2009-09-18 05:27:18.000000000 -0500
+@@ -2,8 +2,10 @@
+ " Language: samba configuration files (smb.conf)
+ " Maintainer: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+ " URL: http://rgarciasuarez.free.fr/vim/syntax/samba.vim
+-" Last change: 2004 September 21
+-
++" Last change: 2009 Aug 06
++"
++" New maintainer wanted!
++"
+ " Don't forget to run your config file through testparm(1)!
+
+ " For version 5.x: Clear all syntax items
+@@ -51,7 +53,7 @@
+ syn keyword sambaKeyword contained netbios nis notify nt null offset ok ole
+ syn keyword sambaKeyword contained only open oplock oplocks options order os
+ syn keyword sambaKeyword contained output packet page panic passwd password
+-syn keyword sambaKeyword contained passwords path permissions pipe port
++syn keyword sambaKeyword contained passwords path permissions pipe port ports
+ syn keyword sambaKeyword contained postexec postscript prediction preexec
+ syn keyword sambaKeyword contained prefered preferred preload preserve print
+ syn keyword sambaKeyword contained printable printcap printer printers
+diff -u -r --new-file runtime/syntax.orig/scheme.vim runtime/syntax/scheme.vim
+--- runtime/syntax.orig/scheme.vim 2007-06-16 15:09:14.000000000 -0500
++++ runtime/syntax/scheme.vim 2009-11-28 06:33:43.000000000 -0600
+@@ -1,6 +1,6 @@
+ " Vim syntax file
+-" Language: Scheme (R5RS)
+-" Last Change: 2007 Jun 16
++" Language: Scheme (R5RS + some R6RS extras)
++" Last Change: 2009 Nov 27
+ " Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
+ " Original author: Dirk van Deun <dirk@igwe.vub.ac.be>
+
+@@ -26,8 +26,8 @@
+
+ " Fascist highlighting: everything that doesn't fit the rules is an error...
+
+-syn match schemeError oneline ![^ \t()\[\]";]*!
+-syn match schemeError oneline ")"
++syn match schemeError ![^ \t()\[\]";]*!
++syn match schemeError ")"
+
+ " Quoted and backquoted stuff
+
+@@ -71,6 +71,8 @@
+ syn keyword schemeSyntax begin do delay set! else =>
+ syn keyword schemeSyntax quote quasiquote unquote unquote-splicing
+ syn keyword schemeSyntax define-syntax let-syntax letrec-syntax syntax-rules
++" R6RS
++syn keyword schemeSyntax define-record-type fields protocol
+
+ syn keyword schemeFunc not boolean? eq? eqv? equal? pair? cons car cdr set-car!
+ syn keyword schemeFunc set-cdr! caar cadr cdar cddr caaar caadr cadar caddr
+@@ -109,30 +111,39 @@
+ syn keyword schemeFunc dynamic-wind port? values call-with-values
+ syn keyword schemeFunc scheme-report-environment null-environment
+ syn keyword schemeFunc interaction-environment
++" R6RS
++syn keyword schemeFunc make-eq-hashtable make-eqv-hashtable make-hashtable
++syn keyword schemeFunc hashtable? hashtable-size hashtable-ref hashtable-set!
++syn keyword schemeFunc hashtable-delete! hashtable-contains? hashtable-update!
++syn keyword schemeFunc hashtable-copy hashtable-clear! hashtable-keys
++syn keyword schemeFunc hashtable-entries hashtable-equivalence-function hashtable-hash-function
++syn keyword schemeFunc hashtable-mutable? equal-hash string-hash string-ci-hash symbol-hash
++syn keyword schemeFunc find for-all exists filter partition fold-left fold-right
++syn keyword schemeFunc remp remove remv remq memp assp cons*
+
+ " ... so that a single + or -, inside a quoted context, would not be
+ " interpreted as a number (outside such contexts, it's a schemeFunc)
+
+-syn match schemeDelimiter oneline !\.[ \t\[\]()";]!me=e-1
+-syn match schemeDelimiter oneline !\.$!
++syn match schemeDelimiter !\.[ \t\[\]()";]!me=e-1
++syn match schemeDelimiter !\.$!
+ " ... and a single dot is not a number but a delimiter
+
+ " This keeps all other stuff unhighlighted, except *stuff* and <stuff>:
+
+-syn match schemeOther oneline ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*,
+-syn match schemeError oneline ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
++syn match schemeOther ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*,
++syn match schemeError ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
+
+-syn match schemeOther oneline "\.\.\."
+-syn match schemeError oneline !\.\.\.[^ \t\[\]()";]\+!
++syn match schemeOther "\.\.\."
++syn match schemeError !\.\.\.[^ \t\[\]()";]\+!
+ " ... a special identifier
+
+-syn match schemeConstant oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[ \t\[\]()";],me=e-1
+-syn match schemeConstant oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*$,
+-syn match schemeError oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
+-
+-syn match schemeConstant oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t\[\]()";],me=e-1
+-syn match schemeConstant oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$,
+-syn match schemeError oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
++syn match schemeConstant ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*[ \t\[\]()";],me=e-1
++syn match schemeConstant ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*$,
++syn match schemeError ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
++
++syn match schemeConstant ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t\[\]()";],me=e-1
++syn match schemeConstant ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$,
++syn match schemeError ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
+
+ " Non-quoted lists, and strings:
+
+@@ -153,23 +164,27 @@
+ " Writing out the complete description of Scheme numerals without
+ " using variables is a day's work for a trained secretary...
+
+-syn match schemeOther oneline ![+-][ \t\[\]()";]!me=e-1
+-syn match schemeOther oneline ![+-]$!
++syn match schemeOther ![+-][ \t\[\]()";]!me=e-1
++syn match schemeOther ![+-]$!
+ "
+ " This is a useful lax approximation:
+-syn match schemeNumber oneline "[-#+0-9.][-#+/0-9a-f@i.boxesfdl]*"
+-syn match schemeError oneline ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t\[\]()";][^ \t\[\]()";]*!
++syn match schemeNumber "[-#+.]\=[0-9][-#+/0-9a-f@i.boxesfdl]*"
++syn match schemeError ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t\[\]()";][^ \t\[\]()";]*!
+
+-syn match schemeBoolean oneline "#[tf]"
+-syn match schemeError oneline !#[tf][^ \t\[\]()";]\+!
++syn match schemeBoolean "#[tf]"
++syn match schemeError !#[tf][^ \t\[\]()";]\+!
++
++syn match schemeCharacter "#\\"
++syn match schemeCharacter "#\\."
++syn match schemeError !#\\.[^ \t\[\]()";]\+!
++syn match schemeCharacter "#\\space"
++syn match schemeError !#\\space[^ \t\[\]()";]\+!
++syn match schemeCharacter "#\\newline"
++syn match schemeError !#\\newline[^ \t\[\]()";]\+!
++
++" R6RS
++syn match schemeCharacter "#\\x[0-9a-fA-F]\+"
+
+-syn match schemeChar oneline "#\\"
+-syn match schemeChar oneline "#\\."
+-syn match schemeError oneline !#\\.[^ \t\[\]()";]\+!
+-syn match schemeChar oneline "#\\space"
+-syn match schemeError oneline !#\\space[^ \t\[\]()";]\+!
+-syn match schemeChar oneline "#\\newline"
+-syn match schemeError oneline !#\\newline[^ \t\[\]()";]\+!
+
+ if exists("b:is_mzscheme") || exists("is_mzscheme")
+ " MzScheme extensions
+@@ -177,11 +192,11 @@
+ syn region schemeComment start="#|" end="|#"
+
+ " #%xxx are the special MzScheme identifiers
+- syn match schemeOther oneline "#%[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
++ syn match schemeOther "#%[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+ " anything limited by |'s is identifier
+- syn match schemeOther oneline "|[^|]\+|"
++ syn match schemeOther "|[^|]\+|"
+
+- syn match schemeChar oneline "#\\\%(return\|tab\)"
++ syn match schemeCharacter "#\\\%(return\|tab\)"
+
+ " Modules require stmt
+ syn keyword schemeExtSyntax module require dynamic-require lib prefix all-except prefix-all-except rename
+@@ -234,8 +249,8 @@
+ " multiline comment
+ syntax region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment
+
+- syn match schemeOther oneline "##[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+- syn match schemeExtSyntax oneline "#:[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
++ syn match schemeOther "##[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
++ syn match schemeExtSyntax "#:[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+
+ syn keyword schemeExtSyntax unit uses declare hide foreign-declare foreign-parse foreign-parse/spec
+ syn keyword schemeExtSyntax foreign-lambda foreign-lambda* define-external define-macro load-library
+@@ -266,7 +281,7 @@
+ endif
+
+ " suggested by Alex Queiroz
+- syn match schemeExtSyntax oneline "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
++ syn match schemeExtSyntax "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+ syn region schemeString start=+#<#\s*\z(.*\)+ end=+^\z1$+
+ endif
+
+@@ -290,7 +305,7 @@
+ HiLink schemeFunc Function
+
+ HiLink schemeString String
+- HiLink schemeChar Character
++ HiLink schemeCharacter Character
+ HiLink schemeNumber Number
+ HiLink schemeBoolean Boolean
+
+diff -u -r --new-file runtime/syntax.orig/screen.vim runtime/syntax/screen.vim
+--- runtime/syntax.orig/screen.vim 2006-04-21 07:41:02.000000000 -0500
++++ runtime/syntax/screen.vim 2010-01-12 14:33:53.000000000 -0600
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: screen(1) configuration file
+ " Maintainer: Nikolai Weibull <now@bitwi.se>
+-" Latest Revision: 2006-04-19
++" Latest Revision: 2010-01-03
+
+ if exists("b:current_syntax")
+ finish
+@@ -15,54 +15,219 @@
+ syn keyword screenTodo contained TODO FIXME XXX NOTE
+
+ syn region screenComment display oneline start='#' end='$'
+- \ contains=screenTodo,@Spell
++ \ contains=screenTodo,@Spell
+
+ syn region screenString display oneline start=+"+ skip=+\\"+ end=+"+
+- \ contains=screenVariable,screenSpecial
++ \ contains=screenVariable,screenSpecial
+
+ syn region screenLiteral display oneline start=+'+ skip=+\\'+ end=+'+
+
+-syn match screenVariable contained display '$\(\h\w*\|{\h\w*}\)'
++syn match screenVariable contained display '$\%(\h\w*\|{\h\w*}\)'
+
+ syn keyword screenBoolean on off
+
+ syn match screenNumbers display '\<\d\+\>'
+
+ syn match screenSpecials contained
+- \ '%\([%aAdDhlmMstuwWyY?:{]\|[0-9]*n\|0?cC\)'
++ \ '%\%([%aAdDhlmMstuwWyY?:{]\|[0-9]*n\|0?cC\)'
+
+-syn keyword screenCommands acladd aclchg acldel aclgrp aclumask activity
+- \ addacl allpartial at attrcolor autodetach
+- \ bell_msg bind bindkey bufferfile caption chacl
+- \ chdir clear colon command compacthist console
+- \ copy copy_regcrlf debug detach digraph dinfo
+- \ crlf displays dumptermcap echo exec fit focus
+- \ height help history info kill lastmsg license
+- \ lockscreen markkeys meta msgminwait msgwait
+- \ multiuser nethack next nonblock number only
+- \ other partial_state password paste pastefont
+- \ pow_break pow_detach_msg prev printcmd process
+- \ quit readbuf readreg redisplay register
+- \ remove removebuf reset resize screen select
+- \ sessionname setenv shelltitle silencewait
+- \ verbose sleep sorendition split startup_message
+- \ stuff su suspend time title umask version wall
+- \ width writebuf xoff xon defmode hardstatus
+- \ altscreen break breaktype copy_reg defbreaktype
+- \ defencoding deflog encoding eval ignorecase
+- \ ins_reg maxwin partial pow_detach setsid source
+- \ unsetenv windowlist windows defautonuke autonuke
+- \ defbce bce defc1 c1 defcharset charset defescape
+- \ escape defflow flow defkanji kanji deflogin
+- \ login defmonitor monitor defhstatus hstatus
+- \ defobuflimit obuflimit defscrollback scrollback
+- \ defshell shell defsilence silence defslowpaste
+- \ slowpaste defutf8 utf8 defwrap wrap defwritelock
+- \ writelock defzombie zombie defgr gr hardcopy
+- \ hardcopy_append hardcopydir hardstatus log
+- \ logfile login logtstamp mapdefault mapnotnext
+- \ maptimeout term termcap terminfo termcapinfo
+- \ vbell vbell_msg vbellwait
++syn keyword screenCommands
++ \ acladd
++ \ aclchg
++ \ acldel
++ \ aclgrp
++ \ aclumask
++ \ activity
++ \ addacl
++ \ allpartial
++ \ altscreen
++ \ at
++ \ attrcolor
++ \ autodetach
++ \ autonuke
++ \ backtick
++ \ bce
++ \ bd_bc_down
++ \ bd_bc_left
++ \ bd_bc_right
++ \ bd_bc_up
++ \ bd_bell
++ \ bd_braille_table
++ \ bd_eightdot
++ \ bd_info
++ \ bd_link
++ \ bd_lower_left
++ \ bd_lower_right
++ \ bd_ncrc
++ \ bd_port
++ \ bd_scroll
++ \ bd_skip
++ \ bd_start_braille
++ \ bd_type
++ \ bd_upper_left
++ \ bd_upper_right
++ \ bd_width
++ \ bell
++ \ bell_msg
++ \ bind
++ \ bindkey
++ \ blanker
++ \ blankerprg
++ \ break
++ \ breaktype
++ \ bufferfile
++ \ c1
++ \ caption
++ \ chacl
++ \ charset
++ \ chdir
++ \ clear
++ \ colon
++ \ command
++ \ compacthist
++ \ console
++ \ copy
++ \ crlf
++ \ debug
++ \ defautonuke
++ \ defbce
++ \ defbreaktype
++ \ defc1
++ \ defcharset
++ \ defencoding
++ \ defescape
++ \ defflow
++ \ defgr
++ \ defhstatus
++ \ defkanji
++ \ deflog
++ \ deflogin
++ \ defmode
++ \ defmonitor
++ \ defnonblock
++ \ defobuflimit
++ \ defscrollback
++ \ defshell
++ \ defsilence
++ \ defslowpaste
++ \ defutf8
++ \ defwrap
++ \ defwritelock
++ \ detach
++ \ digraph
++ \ dinfo
++ \ displays
++ \ dumptermcap
++ \ echo
++ \ encoding
++ \ escape
++ \ eval
++ \ exec
++ \ fit
++ \ flow
++ \ focus
++ \ gr
++ \ hardcopy
++ \ hardcopy_append
++ \ hardcopydir
++ \ hardstatus
++ \ height
++ \ help
++ \ history
++ \ hstatus
++ \ idle
++ \ ignorecase
++ \ info
++ \ kanji
++ \ kill
++ \ lastmsg
++ \ layout
++ \ license
++ \ lockscreen
++ \ log
++ \ logfile
++ \ login
++ \ logtstamp
++ \ mapdefault
++ \ mapnotnext
++ \ maptimeout
++ \ markkeys
++ \ maxwin
++ \ meta
++ \ monitor
++ \ msgminwait
++ \ msgwait
++ \ multiuser
++ \ nethack
++ \ next
++ \ nonblock
++ \ number
++ \ obuflimit
++ \ only
++ \ other
++ \ partial
++ \ password
++ \ paste
++ \ pastefont
++ \ pow_break
++ \ pow_detach
++ \ pow_detach_msg
++ \ prev
++ \ printcmd
++ \ process
++ \ quit
++ \ readbuf
++ \ readreg
++ \ redisplay
++ \ register
++ \ remove
++ \ removebuf
++ \ reset
++ \ resize
++ \ screen
++ \ scrollback
++ \ select
++ \ sessionname
++ \ setenv
++ \ setsid
++ \ shell
++ \ shelltitle
++ \ silence
++ \ silencewait
++ \ sleep
++ \ slowpaste
++ \ sorendition
++ \ source
++ \ split
++ \ startup_message
++ \ stuff
++ \ su
++ \ suspend
++ \ term
++ \ termcap
++ \ termcapinfo
++ \ terminfo
++ \ time
++ \ title
++ \ umask
++ \ unsetenv
++ \ utf8
++ \ vbell
++ \ vbell_msg
++ \ vbellwait
++ \ verbose
++ \ version
++ \ wall
++ \ width
++ \ windowlist
++ \ windows
++ \ wrap
++ \ writebuf
++ \ writelock
++ \ xoff
++ \ xon
++ \ zmodem
++ \ zombie
+
+ hi def link screenEscape Special
+ hi def link screenComment Comment
+diff -u -r --new-file runtime/syntax.orig/sdc.vim runtime/syntax/sdc.vim
+--- runtime/syntax.orig/sdc.vim 1969-12-31 18:00:00.000000000 -0600
++++ runtime/syntax/sdc.vim 2009-05-05 13:28:48.000000000 -0500
+@@ -0,0 +1,41 @@
++" Vim syntax file
++" Language: SDC - Synopsys Design Constraints
++" Maintainer: Maurizio Tranchero - maurizio.tranchero@gmail.com
++" Last Change: Thu Mar 25 17:35:16 CET 2009
++" Credits: based on TCL Vim syntax file
++" Version: 0.3
++
++" Quit when a syntax file was already loaded
++if exists("b:current_syntax")
++ finish
++endif
++
++" Read the TCL syntax to start with
++runtime! syntax/tcl.vim
++
++" SDC-specific keywords
++syn keyword sdcCollections foreach_in_collection
++syn keyword sdcObjectsQuery get_clocks get_ports
++syn keyword sdcObjectsInfo get_point_info get_node_info get_path_info
++syn keyword sdcObjectsInfo get_timing_paths set_attribute
++syn keyword sdcConstraints set_false_path
++syn keyword sdcNonIdealities set_min_delay set_max_delay
++syn keyword sdcNonIdealities set_input_delay set_output_delay
++syn keyword sdcNonIdealities set_load set_min_capacitance set_max_capacitance
++syn keyword sdcCreateOperations create_clock create_timing_netlist update_timing_netlist
++
++" command flags highlighting
++syn match sdcFlags "[[:space:]]-[[:alpha:]]*\>"
++
++" Define the default highlighting.
++hi def link sdcCollections Repeat
++hi def link sdcObjectsInfo Operator
++hi def link sdcCreateOperations Operator
++hi def link sdcObjectsQuery Operator
++hi def link sdcConstraints Operator
++hi def link sdcNonIdealities Operator
++hi def link sdcFlags Special
++
++let b:current_syntax = "sdc"
++
++" vim: ts=8
+diff -u -r --new-file runtime/syntax.orig/sgmllnx.vim runtime/syntax/sgmllnx.vim
+--- runtime/syntax.orig/sgmllnx.vim 2004-06-07 09:32:35.000000000 -0500
++++ runtime/syntax/sgmllnx.vim 2008-09-18 13:56:21.000000000 -0500
+@@ -1,8 +1,8 @@
+ " Vim syntax file
+ " Language: SGML-linuxdoc (supported by old sgmltools-1.x)
+ " (for more information, visit www.sgmltools.org)
+-" Maintainer: Nam SungHyun <namsh@kldp.org>
+-" Last Change: 2001 Apr 26
++" Maintainer: SungHyun Nam <goweol@gmail.com>
++" Last Change: 2008 Sep 17
+
+ " For version 5.x: Clear all syntax items
+ " For version 6.x: Quit when a syntax file was already loaded
+diff -u -r --new-file runtime/syntax.orig/sh.vim runtime/syntax/sh.vim
+--- runtime/syntax.orig/sh.vim 2008-07-14 15:23:42.000000000 -0500
++++ runtime/syntax/sh.vim 2010-01-12 14:45:24.000000000 -0600
+@@ -2,8 +2,8 @@
+ " Language: shell (sh) Korn shell (ksh) bash (sh)
+ " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
+ " Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
+-" Last Change: Jul 11, 2008
+-" Version: 102
++" Last Change: Nov 17, 2009
++" Version: 110
+ " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
+ " For options and settings, please use: :help ft-sh-syntax
+ " This file includes many ideas from Éric Brunet (eric.brunet@ens.fr)
+@@ -67,13 +67,13 @@
+
+ " Clusters: contains=@... clusters {{{1
+ "==================================
+-syn cluster shErrorList contains=shDoError,shIfError,shInError,shCaseError,shEsacError,shCurlyError,shParenError,shTestError
++syn cluster shErrorList contains=shDoError,shIfError,shInError,shCaseError,shEsacError,shCurlyError,shParenError,shTestError,shOK
+ if exists("b:is_kornshell")
+ syn cluster ErrorList add=shDTestError
+ endif
+-syn cluster shArithParenList contains=shArithmetic,shDeref,shDerefSimple,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen
++syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shDeref,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement
+ syn cluster shArithList contains=@shArithParenList,shParenError
+-syn cluster shCaseEsacList contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial
++syn cluster shCaseEsacList contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
+ syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
+ syn cluster shColonList contains=@shCaseList
+ syn cluster shCommandSubList contains=shArithmetic,shDeref,shDerefSimple,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest,shCtrlSeq,shSpecial
+@@ -84,7 +84,7 @@
+ syn cluster shEchoList contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shExpr,shExSingleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
+ syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
+ syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest
+-syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
++syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
+ if exists("b:is_kornshell") || exists("b:is_bash")
+ syn cluster shFunctionList add=shRepeat
+ syn cluster shFunctionList add=shDblBrace,shDblParen
+@@ -94,19 +94,18 @@
+ syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload
+ syn cluster shIdList contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shRedir,shExSingleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial
+ syn cluster shLoopList contains=@shCaseList,shTestOpr,shExpr,shDblBrace,shConditional,shCaseEsac,shTest,@shErrorList,shSet
+-syn cluster shSubShList contains=@shCaseList,shOperator
++syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
+ syn cluster shTestList contains=shCharClass,shComment,shCommandSub,shDeref,shDerefSimple,shDoubleQuote,shExpr,shExpr,shNumber,shOperator,shExSingleQuote,shSingleQuote,shTestOpr,shTest,shCtrlSeq
+
+-
+ " Echo: {{{1
+ " ====
+ " This one is needed INSIDE a CommandSub, so that `echo bla` be correct
+-syn region shEcho matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
+-syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
+-syn match shEchoQuote contained '\%(\\\\\)*\\["`']'
++syn region shEcho matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment
++syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment
++syn match shEchoQuote contained '\%(\\\\\)*\\["`'()]'
+
+ " This must be after the strings, so that ... \" will be correct
+-syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shDoubleQuote,shCharClass,shCtrlSeq
++syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shDoubleQuote,shCharClass,shCtrlSeq
+
+ " Alias: {{{1
+ " =====
+@@ -125,6 +124,7 @@
+ syn match shEsacError "\<esac\>"
+ syn match shCurlyError "}"
+ syn match shParenError ")"
++syn match shOK '\.\(done\|fi\|in\|esac\)'
+ if exists("b:is_kornshell")
+ syn match shDTestError "]]"
+ endif
+@@ -152,14 +152,13 @@
+
+ " Subshells: {{{1
+ " ==========
+-syn region shExpr transparent matchgroup=shExprRegion start="{" end="}" contains=@shExprList2
+-syn region shSubSh transparent matchgroup=shSubShRegion start="(" end=")" contains=@shSubShList
++syn region shExpr transparent matchgroup=shExprRegion start="{" end="}" contains=@shExprList2 nextgroup=shMoreSpecial
++syn region shSubSh transparent matchgroup=shSubShRegion start="(" end=")" contains=@shSubShList nextgroup=shMoreSpecial
+
+ " Tests: {{{1
+ "=======
+-"syn region shExpr transparent matchgroup=shRange start="\[" skip=+\\\\\|\\$+ end="\]" contains=@shTestList
+-syn region shExpr matchgroup=shRange start="\[" skip=+\\\\\|\\$+ end="\]" contains=@shTestList
+-syn region shTest transparent matchgroup=shStatement start="\<test\>" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
++syn region shExpr matchgroup=shRange start="\[" skip=+\\\\\|\\$+ end="\]" contains=@shTestList,shSpecial
++syn region shTest transparent matchgroup=shStatement start="\<test\s" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
+ syn match shTestOpr contained "<=\|>=\|!=\|==\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]"
+ syn match shTestOpr contained '=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
+ syn match shTestPattern contained '\w\+'
+@@ -203,10 +202,11 @@
+ " ====
+ syn match shCaseBar contained skipwhite "\(^\|[^\\]\)\(\\\\\)*\zs|" nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
+ syn match shCaseStart contained skipwhite skipnl "(" nextgroup=shCase,shCaseBar
+-syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
+ if (g:sh_fold_enabled % (s:sh_fold_ifdofor * 2))/s:sh_fold_ifdofor
++ syn region shCase fold contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
+ syn region shCaseEsac fold matchgroup=shConditional start="\<case\>" end="\<esac\>" contains=@shCaseEsacList
+ else
++ syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
+ syn region shCaseEsac matchgroup=shConditional start="\<case\>" end="\<esac\>" contains=@shCaseEsacList
+ endif
+ syn keyword shCaseIn contained skipwhite skipnl in nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
+@@ -218,6 +218,7 @@
+ syn region shCaseSingleQuote matchgroup=shOperator start=+'+ end=+'+ contains=shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained
+ syn region shCaseDoubleQuote matchgroup=shOperator start=+"+ skip=+\\\\\|\\.+ end=+"+ contains=@shDblQuoteList,shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained
+ syn region shCaseCommandSub start=+`+ skip=+\\\\\|\\.+ end=+`+ contains=@shCommandSubList skipwhite skipnl nextgroup=shCaseBar contained
++syn region shCaseRange matchgroup=Delimiter start=+\[+ skip=+\\\\+ end=+]+ contained
+
+ " Misc: {{{1
+ "======
+@@ -256,34 +257,36 @@
+
+ syn match shSource "^\.\s"
+ syn match shSource "\s\.\s"
+-syn region shColon start="^\s*:" end="$\|" end="#"me=e-1 contains=@shColonList
++"syn region shColon start="^\s*:" end="$" end="\s#"me=e-2 contains=@shColonList
++syn region shColon start="^\s*\zs:" end="$" end="\s#"me=e-2
+
+ " String And Character Constants: {{{1
+ "================================
+ syn match shNumber "-\=\<\d\+\>#\="
+ syn match shCtrlSeq "\\\d\d\d\|\\[abcfnrtv0]" contained
+ if exists("b:is_bash")
+- syn match shSpecial "\\\o\o\o\|\\x\x\x\|\\c.\|\\[abefnrtv]" contained
++ syn match shSpecial "\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]" contained
+ endif
+ if exists("b:is_bash")
+ syn region shExSingleQuote matchgroup=shOperator start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial,shSpecial
+ else
+ syn region shExSingleQuote matchGroup=Error start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial
+ endif
+-syn region shSingleQuote matchgroup=shOperator start=+'+ end=+'+ contains=shStringSpecial,@Spell
++syn region shSingleQuote matchgroup=shOperator start=+'+ end=+'+ contains=@Spell
+ syn region shDoubleQuote matchgroup=shOperator start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell
+ syn match shStringSpecial "[^[:print:] \t]" contained
+ syn match shStringSpecial "\%(\\\\\)*\\[\\"'`$()#]"
+-syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
++syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial
+ syn match shSpecial "^\%(\\\\\)*\\[\\"'`$()#]"
++syn match shMoreSpecial "\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial contained
+
+ " Comments: {{{1
+ "==========
+-syn cluster shCommentGroup contains=shTodo,@Spell
+-syn keyword shTodo contained COMBAK FIXME TODO XXX
+-syn match shComment "^\s*\zs#.*$" contains=@shCommentGroup
+-syn match shComment "\s\zs#.*$" contains=@shCommentGroup
+-syn match shQuickComment contained "#.*$"
++syn cluster shCommentGroup contains=shTodo,@Spell
++syn keyword shTodo contained COMBAK FIXME TODO XXX
++syn match shComment "^\s*\zs#.*$" contains=@shCommentGroup
++syn match shComment "\s\zs#.*$" contains=@shCommentGroup
++syn match shQuickComment contained "#.*$"
+
+ " Here Documents: {{{1
+ " =========================================
+@@ -338,13 +341,13 @@
+ syn match shVariable "\<\([bwglsav]:\)\=[a-zA-Z0-9.!@_%+,]*\ze=" nextgroup=shSetIdentifier
+ syn match shSetIdentifier "=" contained nextgroup=shPattern,shDeref,shDerefSimple,shDoubleQuote,shSingleQuote,shExSingleQuote
+ if exists("b:is_bash")
+- syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze#\|=" contains=@shIdList
+- syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|)]\|$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze[#=]" contains=@shIdList
++ syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList
++ syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|)]\|$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
+ elseif exists("b:is_kornshell")
+- syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze[#=]" contains=@shIdList
+- syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze[#=]" contains=@shIdList
++ syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
++ syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
+ else
+- syn region shSetList oneline matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze[#=]" contains=@shIdList
++ syn region shSetList oneline matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
+ endif
+
+ " Functions: {{{1
+@@ -492,7 +495,7 @@
+ hi def link shCaseSingleQuote shSingleQuote
+ hi def link shCaseStart shConditional
+ hi def link shCmdSubRegion shShellVariables
+-hi def link shColon shStatement
++hi def link shColon shComment
+ hi def link shDerefOp shOperator
+ hi def link shDerefPOL shDerefOp
+ hi def link shDerefPPS shDerefOp
+@@ -511,6 +514,7 @@
+ hi def link shHereDoc shString
+ hi def link shHerePayload shHereDoc
+ hi def link shLoop shStatement
++hi def link shMoreSpecial shSpecial
+ hi def link shOption shCommandSub
+ hi def link shPattern shString
+ hi def link shParen shArithmetic
+diff -u -r --new-file runtime/syntax.orig/sisu.vim runtime/syntax/sisu.vim
+--- runtime/syntax.orig/sisu.vim 2008-05-27 14:24:19.000000000 -0500
++++ runtime/syntax/sisu.vim 2008-11-09 07:12:28.000000000 -0600
+@@ -1,6 +1,6 @@
+ "SiSU Vim syntax file
+ "SiSU Maintainer: Ralph Amissah <ralph@amissah.com>
+-"SiSU Markup: SiSU (sisu-0.66.0, 2008-02-24)
++"SiSU Markup: SiSU (sisu-0.69.0, 2008-09-16)
+ "(originally looked at Ruby Vim by Mirko Nasato)
+
+ if version < 600
+@@ -81,6 +81,7 @@
+ syn region sisu_comment matchgroup=sisu_comment start="^%\{1,2\} " end="$"
+ "font face curly brackets
+ "syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_sem start="\S\+:{" end="}:[^<>,.!?:; ]\+" oneline
++syn region sisu_index matchgroup=sisu_index_block start="^={" end="}"
+ syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\*{" end="}\*"
+ syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="!{" end="}!"
+ syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="_{" end="}_"
+@@ -162,7 +163,6 @@
+ hi def link sisu_fontface Include
+ hi def link sisu_strikeout DiffDelete
+ hi def link sisu_content_alt Special
+-hi def link sisu_sem_content String
+ hi def link sisu_sem_content SpecialKey
+ hi def link sisu_sem_block Special
+ hi def link sisu_sem_marker Visual
+@@ -173,6 +173,8 @@
+ hi def link sisu_sem_ex_content Comment
+ "hi def link sisu_sem_ex_content SpecialKey
+ hi def link sisu_sem_ex_block Comment
++hi def link sisu_index SpecialKey
++hi def link sisu_index_block Visual
+ hi def link sisu_content_endnote Special
+ hi def link sisu_control Define
+ hi def link sisu_ocn Include
+diff -u -r --new-file runtime/syntax.orig/spec.vim runtime/syntax/spec.vim
+--- runtime/syntax.orig/spec.vim 2005-01-04 03:46:51.000000000 -0600
++++ runtime/syntax/spec.vim 2009-12-16 14:42:02.000000000 -0600
+@@ -1,8 +1,7 @@
+ " Filename: spec.vim
+ " Purpose: Vim syntax file
+ " Language: SPEC: Build/install scripts for Linux RPM packages
+-" Maintainer: Donovan Rebbechi elflord@pegasus.rutgers.edu
+-" URL: http://pegasus.rutgers.edu/~elflord/vim/syntax/spec.vim
++" Maintainer: Donovan Rebbechi elflord@panix.com
+ " Last Change: Fri Dec 3 11:54 EST 2004 Marcin Dalecki
+
+ " For version 5.x: Clear all syntax items
+diff -u -r --new-file runtime/syntax.orig/spyce.vim runtime/syntax/spyce.vim
+--- runtime/syntax.orig/spyce.vim 2004-06-07 09:32:36.000000000 -0500
++++ runtime/syntax/spyce.vim 2009-11-28 06:33:43.000000000 -0600
+@@ -2,7 +2,7 @@
+ " Language: SPYCE
+ " Maintainer: Rimon Barr <rimon AT acm DOT org>
+ " URL: http://spyce.sourceforge.net
+-" Last Change: 2003 May 11
++" Last Change: 2009 Nov 11
+
+ " For version 5.x: Clear all syntax items
+ " For version 6.x: Quit when a syntax file was already loaded
+@@ -25,6 +25,7 @@
+ else
+ runtime! syntax/html.vim
+ unlet b:current_syntax
++ syntax spell default " added by Bram
+ endif
+
+ " include python
+diff -u -r --new-file runtime/syntax.orig/sqlanywhere.vim runtime/syntax/sqlanywhere.vim
+--- runtime/syntax.orig/sqlanywhere.vim 2008-02-06 14:32:21.000000000 -0600
++++ runtime/syntax/sqlanywhere.vim 2009-10-08 16:18:57.000000000 -0500
+@@ -2,10 +2,11 @@
+ " Vim syntax file
+ " Language: SQL, Adaptive Server Anywhere
+ " Maintainer: David Fishburn <fishburn at ianywhere dot com>
+-" Last Change: Tue 29 Jan 2008 12:54:19 PM Eastern Standard Time
+-" Version: 10.0.1
++" Last Change: 2009 Mar 15
++" Version: 11.0.1
+
+-" Description: Updated to Adaptive Server Anywhere 10.0.1
++" Description: Updated to Adaptive Server Anywhere 11.0.1
++" Updated to Adaptive Server Anywhere 10.0.1
+ " Updated to Adaptive Server Anywhere 9.0.2
+ " Updated to Adaptive Server Anywhere 9.0.1
+ " Updated to Adaptive Server Anywhere 9.0.0
+@@ -54,20 +55,24 @@
+ syn keyword sqlFunction strtouuid varexists
+
+ " 9.0.1 functions
+-syn keyword sqlFunction acos asin atan atn2 cast ceiling convert cos cot
++syn keyword sqlFunction acos asin atan atn2 cast ceiling convert cos cot
+ syn keyword sqlFunction char_length coalesce dateformat datetime degrees exp
+-syn keyword sqlFunction floor getdate insertstr
++syn keyword sqlFunction floor getdate insertstr
+ syn keyword sqlFunction log log10 lower mod pi power
+-syn keyword sqlFunction property radians replicate round sign sin
++syn keyword sqlFunction property radians replicate round sign sin
+ syn keyword sqlFunction sqldialect tan truncate truncnum
+ syn keyword sqlFunction base64_encode base64_decode
+ syn keyword sqlFunction hash compress decompress encrypt decrypt
+
++" 11.0.1 functions
++syn keyword sqlFunction connection_extended_property text_handle_vector_match
++syn keyword sqlFunction read_client_file write_client_file
++
+ " string functions
+ syn keyword sqlFunction ascii char left ltrim repeat
+ syn keyword sqlFunction space right rtrim trim lcase ucase
+ syn keyword sqlFunction locate charindex patindex replace
+-syn keyword sqlFunction errormsg csconvert
++syn keyword sqlFunction errormsg csconvert
+
+ " property functions
+ syn keyword sqlFunction db_id db_name property_name
+@@ -358,125 +363,135 @@
+ syn keyword sqlFunction sa_set_http_header sa_set_http_option
+ syn keyword sqlFunction sa_http_variable_info sa_http_header_info
+
+-" http functions 9.0.1
++" http functions 9.0.1
+ syn keyword sqlFunction http_encode http_decode
+ syn keyword sqlFunction html_encode html_decode
+
+ " keywords
+-syn keyword sqlKeyword absolute accent action activ add address after
+-syn keyword sqlKeyword algorithm allow_dup_row
+-syn keyword sqlKeyword alter and any as append asc ascii ase at atomic
+-syn keyword sqlKeyword attach attended audit authorization
++syn keyword sqlKeyword absolute accent action active add address aes_decrypt
++syn keyword sqlKeyword after aggregate algorithm allow_dup_row allowed
++syn keyword sqlKeyword alter and ansi_substring any as append apply asc ascii ase
++syn keyword sqlKeyword assign at atan2 atomic attach attended audit authorization
+ syn keyword sqlKeyword autoincrement autostop batch bcp before
+-syn keyword sqlKeyword between blank blanks block
+-syn keyword sqlKeyword both bottom unbounded break bufferpool
++syn keyword sqlKeyword between bit_and bit_length bit_or bit_substr bit_xor
++syn keyword sqlKeyword blank blanks block
++syn keyword sqlKeyword both bottom unbounded break breaker bufferpool
+ syn keyword sqlKeyword build bulk by byte bytes cache calibrate calibration
+ syn keyword sqlKeyword cancel capability cascade cast
+-syn keyword sqlKeyword catalog changes char char_convert check checksum
++syn keyword sqlKeyword catalog ceil changes char char_convert check checksum
+ syn keyword sqlKeyword class classes client cmp
+-syn keyword sqlKeyword cluster clustered collation column columns
++syn keyword sqlKeyword cluster clustered collation
++syn keyword sqlKeyword column columns
+ syn keyword sqlKeyword command comment committed comparisons
+ syn keyword sqlKeyword compatible component compressed compute computes
+-syn keyword sqlKeyword concat confirm conflict connection
++syn keyword sqlKeyword concat configuration confirm conflict connection
+ syn keyword sqlKeyword console consolidate consolidated
+-syn keyword sqlKeyword constraint constraints continue
+-syn keyword sqlKeyword convert copy count crc cross cube
++syn keyword sqlKeyword constraint constraints content continue
++syn keyword sqlKeyword convert coordinator copy count count_set_bits
++syn keyword sqlKeyword crc createtime cross cube cume_dist
+ syn keyword sqlKeyword current cursor data data database
+ syn keyword sqlKeyword current_timestamp current_user
+-syn keyword sqlKeyword datatype dba dbfile
+-syn keyword sqlKeyword dbspace dbspacename debug decoupled
+-syn keyword sqlKeyword decrypted default defaults deferred definition
++syn keyword sqlKeyword databases datatype dba dbfile
++syn keyword sqlKeyword dbspace dbspaces dbspacename debug decoupled
++syn keyword sqlKeyword decrypted default defaults default_dbspace deferred
++syn keyword sqlKeyword definer definition
+ syn keyword sqlKeyword delay deleting delimited dependencies desc
+ syn keyword sqlKeyword description detach deterministic directory
+-syn keyword sqlKeyword disable disabled distinct do domain download
++syn keyword sqlKeyword disable disabled distinct do domain download duplicate
+ syn keyword sqlKeyword dsetpass dttm dynamic each editproc ejb
+-syn keyword sqlKeyword else elseif enable encapsulated encrypted end
+-syn keyword sqlKeyword encoding endif engine erase error escape escapes event
+-syn keyword sqlKeyword every except exception exclude exclusive exec
+-syn keyword sqlKeyword existing exists expanded express
++syn keyword sqlKeyword else elseif empty enable encapsulated encrypted end
++syn keyword sqlKeyword encoding endif engine environment erase error escape escapes event
++syn keyword sqlKeyword event_parameter every except exception exclude excluded exclusive exec
++syn keyword sqlKeyword existing exists expanded expiry express exprtype extended_property
+ syn keyword sqlKeyword external externlogin factor failover false
+-syn keyword sqlKeyword fastfirstrow fieldproc file filler
+-syn keyword sqlKeyword fillfactor finish first first_keyword
+-syn keyword sqlKeyword following force foreign format
+-syn keyword sqlKeyword freepage french fresh full function go global
+-syn keyword sqlKeyword group handler hash having header hexadecimal
+-syn keyword sqlKeyword hidden high history hold holdlock
+-syn keyword sqlKeyword hours id identified identity ignore
++syn keyword sqlKeyword fastfirstrow fieldproc file files filler
++syn keyword sqlKeyword fillfactor finish first first_keyword first_value
++syn keyword sqlKeyword following force foreign format forxml forxml_sep fp frame
++syn keyword sqlKeyword freepage french fresh full function gb get_bit go global
++syn keyword sqlKeyword group handler hash having header hexadecimal
++syn keyword sqlKeyword hidden high history hg hng hold holdlock host
++syn keyword sqlKeyword hours http_body http_session_timeout id identified identity ignore
+ syn keyword sqlKeyword ignore_dup_key ignore_dup_row immediate
+-syn keyword sqlKeyword in inactive inactivity incremental index info
++syn keyword sqlKeyword in inactiv inactive inactivity included incremental
++syn keyword sqlKeyword index index_enabled index_lparen indexonly info
+ syn keyword sqlKeyword inline inner inout insensitive inserting
+ syn keyword sqlKeyword instead integrated
+-syn keyword sqlKeyword internal into introduced iq is isolation jar java
++syn keyword sqlKeyword internal intersection into introduced invoker iq is isolation
++syn keyword sqlKeyword jar java java_location java_main_userid java_vm_options
+ syn keyword sqlKeyword jconnect jdk join kb key keep kerberos language last
+-syn keyword sqlKeyword last_keyword lateral left level like
+-syn keyword sqlKeyword limit local location log
+-syn keyword sqlKeyword logging login logscan long low lru main
+-syn keyword sqlKeyword match materialized max maximum membership
+-syn keyword sqlKeyword minutes mirror mode modify monitor mru
+-syn keyword sqlKeyword name named national native natural new next no
++syn keyword sqlKeyword last_keyword last_value lateral ld left len lf ln level like
++syn keyword sqlKeyword limit local location log
++syn keyword sqlKeyword logging login logscan long low lru main manual mark
++syn keyword sqlKeyword match matched materialized max maximum mb membership
++syn keyword sqlKeyword merge metadata methods minimum minutes mirror mode modify monitor move mru
++syn keyword sqlKeyword multiplex name named national native natural new next no
+ syn keyword sqlKeyword noholdlock nolock nonclustered none not
+-syn keyword sqlKeyword notify null nulls of off old on
+-syn keyword sqlKeyword only optimization optimizer option
++syn keyword sqlKeyword notify null nullable_constant nulls object oem_string of off offline
++syn keyword sqlKeyword old on online only openstring optimization optimizer option
+ syn keyword sqlKeyword or order others out outer over
+ syn keyword sqlKeyword package packetsize padding page pages
+-syn keyword sqlKeyword paglock parallel part partition partner password path
+-syn keyword sqlKeyword pctfree plan preceding precision prefetch prefix
+-syn keyword sqlKeyword preserve preview primary
+-syn keyword sqlKeyword prior priqty private privileges procedure profile
+-syn keyword sqlKeyword public publication publish publisher
+-syn keyword sqlKeyword quote quotes range readcommitted readonly
++syn keyword sqlKeyword paglock parallel part partial partition partitions partner password path
++syn keyword sqlKeyword pctfree plan policy populate port postfilter preceding precision
++syn keyword sqlKeyword prefetch prefilter prefix preserve preview primary
++syn keyword sqlKeyword prior priority priqty private privileges procedure profile
++syn keyword sqlKeyword property_is_cumulative property_is_numeric public publication publish publisher
++syn keyword sqlKeyword quiesce quote quotes range readclientfile readcommitted reader readfile readonly
+ syn keyword sqlKeyword readpast readuncommitted readwrite rebuild
+ syn keyword sqlKeyword received recompile recover recursive references
+-syn keyword sqlKeyword referencing refresh relative relocate
++syn keyword sqlKeyword referencing refresh regex regexp regexp_substr relative relocate
+ syn keyword sqlKeyword rename repeatable repeatableread
+-syn keyword sqlKeyword replicate rereceive resend reserve reset
++syn keyword sqlKeyword replicate request_timeout required rereceive resend reserve reset
+ syn keyword sqlKeyword resizing resolve resource respect
+ syn keyword sqlKeyword restrict result retain
+-syn keyword sqlKeyword returns right
+-syn keyword sqlKeyword rollup root row rowlock rows save
+-syn keyword sqlKeyword schedule schema scripted scroll seconds secqty
++syn keyword sqlKeyword returns reverse right role
++syn keyword sqlKeyword rollup root row row_number rowlock rows save
++syn keyword sqlKeyword sa_index_hash sa_internal_fk_verify sa_internal_termbreak
++syn keyword sqlKeyword sa_order_preserving_hash sa_order_preserving_hash_big sa_order_preserving_hash_prefix
++syn keyword sqlKeyword schedule schema scope scripted scroll seconds secqty security
+ syn keyword sqlKeyword send sensitive sent serializable
+-syn keyword sqlKeyword server server session sets
++syn keyword sqlKeyword server server session set_bit set_bits sets
+ syn keyword sqlKeyword share simple since site size skip
+-syn keyword sqlKeyword snapshot soapheader some sorted_data
+-syn keyword sqlKeyword sqlcode sqlid sqlstate stacker stale statement
+-syn keyword sqlKeyword statistics status stogroup store
+-syn keyword sqlKeyword strip subpages subscribe subscription
+-syn keyword sqlKeyword subtransaction synchronization
++syn keyword sqlKeyword snapshot soapheader soap_header split some sorted_data
++syn keyword sqlKeyword sqlcode sqlid sqlflagger sqlstate sqrt square
++syn keyword sqlKeyword stacker stale statement statistics status stddev_pop stddev_samp
++syn keyword sqlKeyword stemmer stogroup stoplist store
++syn keyword sqlKeyword strip stripesizekb striping subpages subscribe subscription
++syn keyword sqlKeyword subtransaction suser_id suser_name synchronization
+ syn keyword sqlKeyword syntax_error table tablock
+-syn keyword sqlKeyword tablockx tb temp template temporary then
+-syn keyword sqlKeyword ties timezone to top tracing
+-syn keyword sqlKeyword transaction transactional tries true
++syn keyword sqlKeyword tablockx tb temp template temporary term then
++syn keyword sqlKeyword ties timezone to to_char to_nchar top traced_plan tracing
++syn keyword sqlKeyword transfer transaction transactional tries true
+ syn keyword sqlKeyword tsequal type tune uncommitted unconditionally
+-syn keyword sqlKeyword unenforced unique union unknown unload
+-syn keyword sqlKeyword updating updlock upgrade upload use user
++syn keyword sqlKeyword unenforced unicode unique union unistr unknown unlimited unload
++syn keyword sqlKeyword unpartition unquiesce updatetime updating updlock upgrade upload
++syn keyword sqlKeyword upper use user
+ syn keyword sqlKeyword using utc utilities validproc
+ syn keyword sqlKeyword value values varchar variable
+-syn keyword sqlKeyword varying vcat verify view virtual wait
+-syn keyword sqlKeyword warning web when where window with with_auto
++syn keyword sqlKeyword varying var_pop var_samp vcat verify versions view virtual wait
++syn keyword sqlKeyword warning wd web when where window with with_auto
+ syn keyword sqlKeyword with_auto with_cube with_rollup without
+-syn keyword sqlKeyword with_lparen within word work workload writefile
+-syn keyword sqlKeyword writers writeserver xlock zeros
++syn keyword sqlKeyword with_lparen within word work workload write writefile
++syn keyword sqlKeyword writeclientfile writer writers writeserver xlock zeros
+ " XML function support
+-syn keyword sqlFunction openxml xmlelement xmlforest xmlgen xmlconcat xmlagg
+-syn keyword sqlFunction xmlattributes
++syn keyword sqlFunction openxml xmlelement xmlforest xmlgen xmlconcat xmlagg
++syn keyword sqlFunction xmlattributes
+ syn keyword sqlKeyword raw auto elements explicit
+ " HTTP support
+-syn keyword sqlKeyword authorization secure url service
++syn keyword sqlKeyword authorization secure url service next_soap_header
+ " HTTP 9.0.2 new procedure keywords
+ syn keyword sqlKeyword namespace certificate clientport proxy
+ " OLAP support 9.0.0
+-syn keyword sqlKeyword covar_pop covar_samp corr regr_slope regr_intercept
++syn keyword sqlKeyword covar_pop covar_samp corr regr_slope regr_intercept
+ syn keyword sqlKeyword regr_count regr_r2 regr_avgx regr_avgy
+ syn keyword sqlKeyword regr_sxx regr_syy regr_sxy
+
+ " Alternate keywords
+ syn keyword sqlKeyword character dec options proc reference
+-syn keyword sqlKeyword subtrans tran syn keyword
++syn keyword sqlKeyword subtrans tran syn keyword
+
+
+ syn keyword sqlOperator in any some all between exists
+-syn keyword sqlOperator like escape not is and or
++syn keyword sqlOperator like escape not is and or
+ syn keyword sqlOperator intersect minus
+ syn keyword sqlOperator prior distinct
+
+@@ -496,43 +511,38 @@
+
+
+ syn keyword sqlType char long varchar text
+-syn keyword sqlType bigint decimal double float int integer numeric
++syn keyword sqlType bigint decimal double float int integer numeric
+ syn keyword sqlType smallint tinyint real
+ syn keyword sqlType money smallmoney
+-syn keyword sqlType bit
+-syn keyword sqlType date datetime smalldate time timestamp
++syn keyword sqlType bit
++syn keyword sqlType date datetime smalldate time timestamp
+ syn keyword sqlType binary image varbinary uniqueidentifier
+ syn keyword sqlType xml unsigned
+ " New types 10.0.0
+ syn keyword sqlType varbit nchar nvarchar
+
+ syn keyword sqlOption Allow_nulls_by_default
++syn keyword sqlOption Allow_read_client_file
++syn keyword sqlOption Allow_snapshot_isolation
++syn keyword sqlOption Allow_write_client_file
+ syn keyword sqlOption Ansi_blanks
+ syn keyword sqlOption Ansi_close_cursors_on_rollback
+-syn keyword sqlOption Ansi_integer_overflow
+ syn keyword sqlOption Ansi_permissions
++syn keyword sqlOption Ansi_substring
+ syn keyword sqlOption Ansi_update_constraints
+ syn keyword sqlOption Ansinull
+-syn keyword sqlOption Assume_distinct_servers
+ syn keyword sqlOption Auditing
+ syn keyword sqlOption Auditing_options
+-syn keyword sqlOption Auto_commit
+-syn keyword sqlOption Auto_refetch
+-syn keyword sqlOption Automatic_timestamp
+ syn keyword sqlOption Background_priority
+-syn keyword sqlOption Bell
+-syn keyword sqlOption Blob_threshold
+ syn keyword sqlOption Blocking
+ syn keyword sqlOption Blocking_timeout
+ syn keyword sqlOption Chained
+-syn keyword sqlOption Char_OEM_Translation
+ syn keyword sqlOption Checkpoint_time
+ syn keyword sqlOption Cis_option
+ syn keyword sqlOption Cis_rowset_size
+ syn keyword sqlOption Close_on_endtrans
+-syn keyword sqlOption Command_delimiter
+-syn keyword sqlOption Commit_on_exit
+-syn keyword sqlOption Compression
++syn keyword sqlOption Collect_statistics_on_dml_updates
++syn keyword sqlOption Conn_auditing
+ syn keyword sqlOption Connection_authentication
+ syn keyword sqlOption Continue_after_raiserror
+ syn keyword sqlOption Conversion_error
+@@ -543,125 +553,90 @@
+ syn keyword sqlOption Date_order
+ syn keyword sqlOption Debug_messages
+ syn keyword sqlOption Dedicated_task
++syn keyword sqlOption Default_dbspace
+ syn keyword sqlOption Default_timestamp_increment
+ syn keyword sqlOption Delayed_commit_timeout
+ syn keyword sqlOption Delayed_commits
+-syn keyword sqlOption Delete_old_logs
+-syn keyword sqlOption Describe_Java_Format
+-syn keyword sqlOption Divide_by_zero_error
+-syn keyword sqlOption Echo
+ syn keyword sqlOption Escape_character
+ syn keyword sqlOption Exclude_operators
+ syn keyword sqlOption Extended_join_syntax
+-syn keyword sqlOption External_remote_options
+ syn keyword sqlOption Fire_triggers
+ syn keyword sqlOption First_day_of_week
+-syn keyword sqlOption Float_as_double
+ syn keyword sqlOption For_xml_null_treatment
+ syn keyword sqlOption Force_view_creation
+ syn keyword sqlOption Global_database_id
+-syn keyword sqlOption Headings
+-syn keyword sqlOption Input_format
++syn keyword sqlOption Http_session_timeout
+ syn keyword sqlOption Integrated_server_name
+ syn keyword sqlOption Isolation_level
+-syn keyword sqlOption ISQL_command_timing
+-syn keyword sqlOption ISQL_escape_character
+-syn keyword sqlOption ISQL_field_separator
+-syn keyword sqlOption ISQL_log
+-syn keyword sqlOption ISQL_plan
+-syn keyword sqlOption ISQL_plan_cursor_sensitivity
+-syn keyword sqlOption ISQL_plan_cursor_writability
+-syn keyword sqlOption ISQL_quote
+-syn keyword sqlOption Java_heap_size
+-syn keyword sqlOption Java_input_output
+-syn keyword sqlOption Java_namespace_size
+-syn keyword sqlOption Java_page_buffer_size
++syn keyword sqlOption Java_location
++syn keyword sqlOption Java_main_userid
++syn keyword sqlOption Java_vm_options
+ syn keyword sqlOption Lock_rejected_rows
+ syn keyword sqlOption Log_deadlocks
+-syn keyword sqlOption Log_detailed_plans
+-syn keyword sqlOption Log_max_requests
+ syn keyword sqlOption Login_mode
+ syn keyword sqlOption Login_procedure
++syn keyword sqlOption Materialized_view_optimization
++syn keyword sqlOption Max_client_statements_cached
+ syn keyword sqlOption Max_cursor_count
+ syn keyword sqlOption Max_hash_size
+ syn keyword sqlOption Max_plans_cached
++syn keyword sqlOption Max_priority
++syn keyword sqlOption Max_query_tasks
+ syn keyword sqlOption Max_recursive_iterations
+ syn keyword sqlOption Max_statement_count
+-syn keyword sqlOption Max_work_table_hash_size
++syn keyword sqlOption Max_temp_space
+ syn keyword sqlOption Min_password_length
+ syn keyword sqlOption Nearest_century
+ syn keyword sqlOption Non_keywords
+-syn keyword sqlOption NULLS
+-syn keyword sqlOption ODBC_describe_binary_as_varbinary
+-syn keyword sqlOption ODBC_distinguish_char_and_varchar
+-syn keyword sqlOption On_Charset_conversion_failure
+-syn keyword sqlOption On_error
++syn keyword sqlOption Odbc_describe_binary_as_varbinary
++syn keyword sqlOption Odbc_distinguish_char_and_varchar
++syn keyword sqlOption Oem_string
++syn keyword sqlOption On_charset_conversion_failure
+ syn keyword sqlOption On_tsql_error
+-syn keyword sqlOption Optimistic_wait_for_commit
+ syn keyword sqlOption Optimization_goal
+ syn keyword sqlOption Optimization_level
+-syn keyword sqlOption Optimization_logging
+ syn keyword sqlOption Optimization_workload
+-syn keyword sqlOption Output_format
+-syn keyword sqlOption Output_length
+-syn keyword sqlOption Output_nulls
+-syn keyword sqlOption Percent_as_comment
+ syn keyword sqlOption Pinned_cursor_percent_of_cache
++syn keyword sqlOption Post_login_procedure
+ syn keyword sqlOption Precision
+ syn keyword sqlOption Prefetch
+ syn keyword sqlOption Preserve_source_format
+ syn keyword sqlOption Prevent_article_pkey_update
+-syn keyword sqlOption Qualify_owners
+-syn keyword sqlOption Query_plan_on_open
+-syn keyword sqlOption Quiet
+-syn keyword sqlOption Quote_all_identifiers
++syn keyword sqlOption Priority
++syn keyword sqlOption Query_mem_timeout
+ syn keyword sqlOption Quoted_identifier
+ syn keyword sqlOption Read_past_deleted
+ syn keyword sqlOption Recovery_time
+ syn keyword sqlOption Remote_idle_timeout
+ syn keyword sqlOption Replicate_all
+-syn keyword sqlOption Replication_error
+-syn keyword sqlOption Replication_error_piece
++syn keyword sqlOption Request_timeout
+ syn keyword sqlOption Return_date_time_as_string
+-syn keyword sqlOption Return_java_as_string
+-syn keyword sqlOption RI_Trigger_time
+ syn keyword sqlOption Rollback_on_deadlock
+ syn keyword sqlOption Row_counts
+-syn keyword sqlOption Save_remote_passwords
+ syn keyword sqlOption Scale
+-syn keyword sqlOption Screen_format
+-syn keyword sqlOption Sort_Collation
+-syn keyword sqlOption SQL_flagger_error_level
+-syn keyword sqlOption SQL_flagger_warning_level
+-syn keyword sqlOption SQLConnect
+-syn keyword sqlOption SQLStart
+-syn keyword sqlOption SR_Date_Format
+-syn keyword sqlOption SR_Time_Format
+-syn keyword sqlOption SR_TimeStamp_Format
+-syn keyword sqlOption Statistics
++syn keyword sqlOption Secure_feature_key
++syn keyword sqlOption Sort_collation
++syn keyword sqlOption Sql_flagger_error_level
++syn keyword sqlOption Sql_flagger_warning_level
+ syn keyword sqlOption String_rtruncation
+-syn keyword sqlOption Subscribe_by_remote
+ syn keyword sqlOption Subsume_row_locks
+-syn keyword sqlOption Suppress_TDS_debugging
+-syn keyword sqlOption TDS_Empty_string_is_null
++syn keyword sqlOption Suppress_tds_debugging
++syn keyword sqlOption Synchronize_mirror_on_commit
++syn keyword sqlOption Tds_empty_string_is_null
+ syn keyword sqlOption Temp_space_limit_check
+-syn keyword sqlOption Thread_count
+-syn keyword sqlOption Thread_stack
+-syn keyword sqlOption Thread_swaps
+ syn keyword sqlOption Time_format
+ syn keyword sqlOption Time_zone_adjustment
+ syn keyword sqlOption Timestamp_format
+-syn keyword sqlOption Truncate_date_values
+ syn keyword sqlOption Truncate_timestamp_values
+-syn keyword sqlOption Truncate_with_auto_commit
+-syn keyword sqlOption Truncation_length
+-syn keyword sqlOption Tsql_hex_constant
++syn keyword sqlOption Tsql_outer_joins
+ syn keyword sqlOption Tsql_variables
++syn keyword sqlOption Updatable_statement_isolation
+ syn keyword sqlOption Update_statistics
++syn keyword sqlOption Upgrade_database_capability
+ syn keyword sqlOption User_estimates
+-syn keyword sqlOption Verify_all_columns
+-syn keyword sqlOption Verify_threshold
++syn keyword sqlOption Verify_password_function
+ syn keyword sqlOption Wait_for_commit
++syn keyword sqlOption Webservice_namespace_host
+
+ " Strings and characters:
+ syn region sqlString start=+"+ end=+"+ contains=@Spell
+diff -u -r --new-file runtime/syntax.orig/sshconfig.vim runtime/syntax/sshconfig.vim
+--- runtime/syntax.orig/sshconfig.vim 2006-03-05 15:55:08.000000000 -0600
++++ runtime/syntax/sshconfig.vim 2009-07-26 06:44:10.000000000 -0500
+@@ -1,23 +1,21 @@
+ " Vim syntax file
+-" This is a GENERATED FILE. Please always refer to source file at the URI below.
+-" Language: OpenSSH server configuration file (ssh_config)
+-" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
+-" Last Change: 2006-03-05
+-" URL: http://trific.ath.cx/Ftp/vim/syntax/sshconfig.vim
++" Language: OpenSSH client configuration file (ssh_config)
++" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
++" Last Change: 2009-07-09
+
+ " Setup
+ if version >= 600
+- if exists("b:current_syntax")
+- finish
+- endif
++ if exists("b:current_syntax")
++ finish
++ endif
+ else
+- syntax clear
++ syntax clear
+ endif
+
+ if version >= 600
+- setlocal iskeyword=_,-,a-z,A-Z,48-57
++ setlocal iskeyword=_,-,a-z,A-Z,48-57
+ else
+- set iskeyword=_,-,a-z,A-Z,48-57
++ set iskeyword=_,-,a-z,A-Z,48-57
+ endif
+
+ syn case ignore
+@@ -28,19 +26,21 @@
+
+ " Constants
+ syn keyword sshconfigYesNo yes no ask
+-syn keyword sshconfigCipher blowfish des 3des
++syn keyword sshconfigYesNo any auto
+ syn keyword sshconfigCipher aes128-cbc 3des-cbc blowfish-cbc cast128-cbc
+ syn keyword sshconfigCipher aes192-cbc aes256-cbc aes128-ctr aes256-ctr
+ syn keyword sshconfigCipher arcfour arcfour128 arcfour256 cast128-cbc
+ syn keyword sshconfigMAC hmac-md5 hmac-sha1 hmac-ripemd160 hmac-sha1-96
+ syn keyword sshconfigMAC hmac-md5-96
++syn match sshconfigMAC "\<umac-64@openssh\.com\>"
+ syn keyword sshconfigHostKeyAlg ssh-rsa ssh-dss
+ syn keyword sshconfigPreferredAuth hostbased publickey password
+ syn keyword sshconfigPreferredAuth keyboard-interactive
+ syn keyword sshconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
+ syn keyword sshconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
+-syn keyword sshconfigSysLogFacility DAEMON USER AUTH LOCAL0 LOCAL1 LOCAL2
+-syn keyword sshconfigSysLogFacility LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
++syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
++syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
++syn match sshconfigVar "%[rhpldun]\>"
+ syn match sshconfigSpecial "[*?]"
+ syn match sshconfigNumber "\d\+"
+ syn match sshconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
+@@ -49,57 +49,68 @@
+
+ " Keywords
+ syn keyword sshconfigHostSect Host
+-syn keyword sshconfigKeyword AddressFamily BatchMode BindAddress
++syn keyword sshconfigKeyword AddressFamily
++syn keyword sshconfigKeyword BatchMode BindAddress
+ syn keyword sshconfigKeyword ChallengeResponseAuthentication CheckHostIP
+ syn keyword sshconfigKeyword Cipher Ciphers ClearAllForwardings
+ syn keyword sshconfigKeyword Compression CompressionLevel ConnectTimeout
+ syn keyword sshconfigKeyword ConnectionAttempts ControlMaster
+-syn keyword sshconfigKeyword ControlPath DynamicForward EnableSSHKeysign
+-syn keyword sshconfigKeyword EscapeChar ForwardAgent ForwardX11
+-syn keyword sshconfigKeyword ForwardX11Trusted GSSAPIAuthentication
++syn keyword sshconfigKeyword ControlPath DynamicForward
++syn keyword sshconfigKeyword EnableSSHKeysign EscapeChar ExitOnForwardFailure
++syn keyword sshconfigKeyword ForwardAgent ForwardX11
++syn keyword sshconfigKeyword ForwardX11Trusted
++syn keyword sshconfigKeyword GSSAPIAuthentication
+ syn keyword sshconfigKeyword GSSAPIDelegateCredentials GatewayPorts
+-syn keyword sshconfigKeyword GlobalKnownHostsFile HostKeyAlgorithms
+-syn keyword sshconfigKeyword HashKnownHosts KbdInteractiveDevices
++syn keyword sshconfigKeyword GlobalKnownHostsFile
++syn keyword sshconfigKeyword HostKeyAlgorithms HashKnownHosts
+ syn keyword sshconfigKeyword HostKeyAlias HostName HostbasedAuthentication
+-syn keyword sshconfigKeyword IdentitiesOnly IdentityFile LocalForward
+-syn keyword sshconfigKeyword LogLevel MACs NoHostAuthenticationForLocalhost
+-syn keyword sshconfigKeyword NumberOfPasswordPrompts PasswordAuthentication
++syn keyword sshconfigKeyword IdentitiesOnly IdentityFile
++syn keyword sshconfigKeyword KbdInteractiveAuthentication KbdInteractiveDevices
++syn keyword sshconfigKeyword LocalCommand LocalForward LogLevel
++syn keyword sshconfigKeyword MACs
++syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
++syn keyword sshconfigKeyword NumberOfPasswordPrompts
++syn keyword sshconfigKeyword PasswordAuthentication PermitLocalCommand
+ syn keyword sshconfigKeyword Port PreferredAuthentications Protocol
+ syn keyword sshconfigKeyword ProxyCommand PubkeyAuthentication
+-syn keyword sshconfigKeyword RSAAuthentication RemoteForward
+-syn keyword sshconfigKeyword RhostsAuthentication RhostsRSAAuthentication
++syn keyword sshconfigKeyword PermitLocalCommand
++syn keyword sshconfigKeyword RSAAuthentication RemoteForward RekeyLimit
++syn keyword sshconfigKeyword RhostsRSAAuthentication
+ syn keyword sshconfigKeyword SendEnv ServerAliveCountMax ServerAliveInterval
+ syn keyword sshconfigKeyword SmartcardDevice StrictHostKeyChecking
++syn keyword sshconfigKeyword Tunnel TunnelDevice
+ syn keyword sshconfigKeyword TCPKeepAlive UsePrivilegedPort User
+-syn keyword sshconfigKeyword UserKnownHostsFile VerifyHostKeyDNS XAuthLocation
++syn keyword sshconfigKeyword UserKnownHostsFile
++syn keyword sshconfigKeyword VerifyHostKeyDNS VisualHostKey
++syn keyword sshconfigKeyword XAuthLocation
+
+ " Define the default highlighting
+ if version >= 508 || !exists("did_sshconfig_syntax_inits")
+- if version < 508
+- let did_sshconfig_syntax_inits = 1
+- command -nargs=+ HiLink hi link <args>
+- else
+- command -nargs=+ HiLink hi def link <args>
+- endif
+-
+- HiLink sshconfigComment Comment
+- HiLink sshconfigTodo Todo
+- HiLink sshconfigHostPort sshconfigConstant
+- HiLink sshconfigNumber sshconfigConstant
+- HiLink sshconfigConstant Constant
+- HiLink sshconfigYesNo sshconfigEnum
+- HiLink sshconfigCipher sshconfigEnum
+- HiLink sshconfigMAC sshconfigEnum
+- HiLink sshconfigHostKeyAlg sshconfigEnum
+- HiLink sshconfigLogLevel sshconfigEnum
+- HiLink sshconfigSysLogFacility sshconfigEnum
+- HiLink sshconfigPreferredAuth sshconfigEnum
+- HiLink sshconfigEnum Function
+- HiLink sshconfigSpecial Special
+- HiLink sshconfigKeyword Keyword
+- HiLink sshconfigHostSect Type
+- delcommand HiLink
++ if version < 508
++ let did_sshconfig_syntax_inits = 1
++ command -nargs=+ HiLink hi link <args>
++ else
++ command -nargs=+ HiLink hi def link <args>
++ endif
++
++ HiLink sshconfigComment Comment
++ HiLink sshconfigTodo Todo
++ HiLink sshconfigHostPort sshconfigConstant
++ HiLink sshconfigNumber sshconfigConstant
++ HiLink sshconfigConstant Constant
++ HiLink sshconfigYesNo sshconfigEnum
++ HiLink sshconfigCipher sshconfigEnum
++ HiLink sshconfigMAC sshconfigEnum
++ HiLink sshconfigHostKeyAlg sshconfigEnum
++ HiLink sshconfigLogLevel sshconfigEnum
++ HiLink sshconfigSysLogFacility sshconfigEnum
++ HiLink sshconfigPreferredAuth sshconfigEnum
++ HiLink sshconfigVar sshconfigEnum
++ HiLink sshconfigEnum Identifier
++ HiLink sshconfigSpecial Special
++ HiLink sshconfigKeyword Keyword
++ HiLink sshconfigHostSect Type
++ delcommand HiLink
+ endif
+
+ let b:current_syntax = "sshconfig"
+-
+diff -u -r --new-file runtime/syntax.orig/sshdconfig.vim runtime/syntax/sshdconfig.vim
+--- runtime/syntax.orig/sshdconfig.vim 2006-03-05 15:55:08.000000000 -0600
++++ runtime/syntax/sshdconfig.vim 2009-07-26 06:41:55.000000000 -0500
+@@ -1,23 +1,21 @@
+ " Vim syntax file
+-" This is a GENERATED FILE. Please always refer to source file at the URI below.
+ " Language: OpenSSH server configuration file (sshd_config)
+-" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
+-" Last Change: 2006-03-05
+-" URL: http://trific.ath.cx/Ftp/vim/syntax/sshdconfig.vim
++" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
++" Last Change: 2009-07-09
+
+ " Setup
+ if version >= 600
+- if exists("b:current_syntax")
+- finish
+- endif
++ if exists("b:current_syntax")
++ finish
++ endif
+ else
+- syntax clear
++ syntax clear
+ endif
+
+ if version >= 600
+- setlocal iskeyword=_,-,a-z,A-Z,48-57
++ setlocal iskeyword=_,-,a-z,A-Z,48-57
+ else
+- set iskeyword=_,-,a-z,A-Z,48-57
++ set iskeyword=_,-,a-z,A-Z,48-57
+ endif
+
+ syn case ignore
+@@ -27,78 +25,87 @@
+ syn keyword sshdconfigTodo TODO FIXME NOT contained
+
+ " Constants
+-syn keyword sshdconfigYesNo yes no
++syn keyword sshdconfigYesNo yes no none
++syn keyword sshdconfigAddressFamily any inet inet6
+ syn keyword sshdconfigCipher aes128-cbc 3des-cbc blowfish-cbc cast128-cbc
+ syn keyword sshdconfigCipher aes192-cbc aes256-cbc aes128-ctr aes256-ctr
+ syn keyword sshdconfigCipher arcfour arcfour128 arcfour256 cast128-cbc
+ syn keyword sshdconfigMAC hmac-md5 hmac-sha1 hmac-ripemd160 hmac-sha1-96
+ syn keyword sshdconfigMAC hmac-md5-96
++syn match sshdconfigMAC "\<umac-64@openssh\.com\>"
+ syn keyword sshdconfigRootLogin without-password forced-commands-only
+ syn keyword sshdconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
+ syn keyword sshdconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
+-syn keyword sshdconfigSysLogFacility DAEMON USER AUTH LOCAL0 LOCAL1 LOCAL2
+-syn keyword sshdconfigSysLogFacility LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
++syn keyword sshdconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
++syn keyword sshdconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
+ syn match sshdconfigSpecial "[*?]"
+ syn match sshdconfigNumber "\d\+"
+ syn match sshdconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
+ syn match sshdconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
++" FIXME: this matches quite a few things which are NOT valid IPv6 addresses
+ syn match sshdconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}:\d\+\>"
+ syn match sshdconfigTime "\<\(\d\+[sSmMhHdDwW]\)\+\>"
+
+ " Keywords
+-syn keyword sshdconfigKeyword AcceptEnv AddressFamily
++syn keyword sshdconfigMatch Host User Group Address
++syn keyword sshdconfigKeyword AcceptEnv AddressFamily AllowAgentForwarding
+ syn keyword sshdconfigKeyword AllowGroups AllowTcpForwarding
+-syn keyword sshdconfigKeyword AllowUsers AuthorizedKeysFile Banner
+-syn keyword sshdconfigKeyword ChallengeResponseAuthentication
++syn keyword sshdconfigKeyword AllowUsers AuthorizedKeysFile
++syn keyword sshdconfigKeyword Banner
++syn keyword sshdconfigKeyword ChallengeResponseAuthentication ChrootDirectory
+ syn keyword sshdconfigKeyword Ciphers ClientAliveCountMax
+ syn keyword sshdconfigKeyword ClientAliveInterval Compression
+-syn keyword sshdconfigKeyword DenyGroups DenyUsers GSSAPIAuthentication
+-syn keyword sshdconfigKeyword GSSAPICleanupCredentials GatewayPorts
+-syn keyword sshdconfigKeyword HostKey HostbasedAuthentication
++syn keyword sshdconfigKeyword DenyGroups DenyUsers
++syn keyword sshdconfigKeyword ForceCommand
++syn keyword sshdconfigKeyword GatewayPorts GSSAPIAuthentication
++syn keyword sshdconfigKeyword GSSAPICleanupCredentials
++syn keyword sshdconfigKeyword HostbasedAuthentication HostKey
+ syn keyword sshdconfigKeyword IgnoreRhosts IgnoreUserKnownHosts
+-syn keyword sshdconfigKeyword KerberosAuthentication KerberosOrLocalPasswd
+-syn keyword sshdconfigKeyword KerberosTgtPassing KerberosTicketCleanup
+-syn keyword sshdconfigKeyword KerberosGetAFSToken
+-syn keyword sshdconfigKeyword KeyRegenerationInterval ListenAddress
+-syn keyword sshdconfigKeyword LogLevel LoginGraceTime MACs MaxAuthTries
+-syn keyword sshdconfigKeyword MaxStartups PasswordAuthentication
+-syn keyword sshdconfigKeyword PermitEmptyPasswords PermitRootLogin
++syn keyword sshdconfigKeyword KerberosAuthentication KerberosGetAFSToken
++syn keyword sshdconfigKeyword KerberosOrLocalPasswd KerberosTicketCleanup
++syn keyword sshdconfigKeyword KeyRegenerationInterval
++syn keyword sshdconfigKeyword ListenAddress LoginGraceTime LogLevel
++syn keyword sshdconfigKeyword MACs Match MaxAuthTries MaxSessions MaxStartups
++syn keyword sshdconfigKeyword PasswordAuthentication PermitEmptyPasswords
++syn keyword sshdconfigKeyword PermitRootLogin PermitOpen PermitTunnel
+ syn keyword sshdconfigKeyword PermitUserEnvironment PidFile Port
+ syn keyword sshdconfigKeyword PrintLastLog PrintMotd Protocol
+-syn keyword sshdconfigKeyword PubkeyAuthentication RSAAuthentication
+-syn keyword sshdconfigKeyword RhostsAuthentication RhostsRSAAuthentication
+-syn keyword sshdconfigKeyword ServerKeyBits StrictModes Subsystem
+-syn keyword sshdconfigKeyword ShowPatchLevel
+-syn keyword sshdconfigKeyword SyslogFacility TCPKeepAlive UseDNS
+-syn keyword sshdconfigKeyword UseLogin UsePAM UsePrivilegeSeparation
++syn keyword sshdconfigKeyword PubkeyAuthentication
++syn keyword sshdconfigKeyword RhostsRSAAuthentication RSAAuthentication
++syn keyword sshdconfigKeyword ServerKeyBits ShowPatchLevel StrictModes
++syn keyword sshdconfigKeyword Subsystem SyslogFacility
++syn keyword sshdconfigKeyword TCPKeepAlive
++syn keyword sshdconfigKeyword UseDNS UseLogin UsePAM UsePrivilegeSeparation
+ syn keyword sshdconfigKeyword X11DisplayOffset X11Forwarding
+ syn keyword sshdconfigKeyword X11UseLocalhost XAuthLocation
+
+ " Define the default highlighting
+ if version >= 508 || !exists("did_sshdconfig_syntax_inits")
+- if version < 508
+- let did_sshdconfig_syntax_inits = 1
+- command -nargs=+ HiLink hi link <args>
+- else
+- command -nargs=+ HiLink hi def link <args>
+- endif
+-
+- HiLink sshdconfigComment Comment
+- HiLink sshdconfigTodo Todo
+- HiLink sshdconfigHostPort sshdconfigConstant
+- HiLink sshdconfigTime sshdconfigConstant
+- HiLink sshdconfigNumber sshdconfigConstant
+- HiLink sshdconfigConstant Constant
+- HiLink sshdconfigYesNo sshdconfigEnum
+- HiLink sshdconfigCipher sshdconfigEnum
+- HiLink sshdconfigMAC sshdconfigEnum
+- HiLink sshdconfigRootLogin sshdconfigEnum
+- HiLink sshdconfigLogLevel sshdconfigEnum
+- HiLink sshdconfigSysLogFacility sshdconfigEnum
+- HiLink sshdconfigEnum Function
+- HiLink sshdconfigSpecial Special
+- HiLink sshdconfigKeyword Keyword
+- delcommand HiLink
++ if version < 508
++ let did_sshdconfig_syntax_inits = 1
++ command -nargs=+ HiLink hi link <args>
++ else
++ command -nargs=+ HiLink hi def link <args>
++ endif
++
++ HiLink sshdconfigComment Comment
++ HiLink sshdconfigTodo Todo
++ HiLink sshdconfigHostPort sshdconfigConstant
++ HiLink sshdconfigTime sshdconfigConstant
++ HiLink sshdconfigNumber sshdconfigConstant
++ HiLink sshdconfigConstant Constant
++ HiLink sshdconfigYesNo sshdconfigEnum
++ HiLink sshdconfigAddressFamily sshdconfigEnum
++ HiLink sshdconfigCipher sshdconfigEnum
++ HiLink sshdconfigMAC sshdconfigEnum
++ HiLink sshdconfigRootLogin sshdconfigEnum
++ HiLink sshdconfigLogLevel sshdconfigEnum
++ HiLink sshdconfigSysLogFacility sshdconfigEnum
++ HiLink sshdconfigEnum Function
++ HiLink sshdconfigSpecial Special
++ HiLink sshdconfigKeyword Keyword
++ HiLink sshdconfigMatch Type
++ delcommand HiLink
+ endif
+
+ let b:current_syntax = "sshdconfig"
+diff -u -r --new-file runtime/syntax.orig/taskdata.vim runtime/syntax/taskdata.vim
+--- runtime/syntax.orig/taskdata.vim 1969-12-31 18:00:00.000000000 -0600
++++ runtime/syntax/taskdata.vim 2009-07-26 06:44:44.000000000 -0500
+@@ -0,0 +1,43 @@
++" Vim syntax file
++" Language: task data
++" Maintainer: John Florian <jflorian@doubledog.org>
++" Updated: Wed Jul 8 19:46:20 EDT 2009
++
++
++" For version 5.x: Clear all syntax items.
++" For version 6.x: Quit when a syntax file was already loaded.
++if version < 600
++ syntax clear
++elseif exists("b:current_syntax")
++ finish
++endif
++
++" Key Names for values.
++syn keyword taskdataKey description due end entry imask mask parent
++syn keyword taskdataKey priority project recur start status tags uuid
++syn match taskdataKey "annotation_\d\+"
++syn match taskdataUndo "^time.*$"
++syn match taskdataUndo "^\(old \|new \|---\)"
++
++" Values associated with key names.
++"
++" Strings
++syn region taskdataString matchgroup=Normal start=+"+ end=+"+
++ \ contains=taskdataEncoded,taskdataUUID,@Spell
++"
++" Special Embedded Characters (e.g., "&comma;")
++syn match taskdataEncoded "&\a\+;" contained
++" UUIDs
++syn match taskdataUUID "\x\{8}-\(\x\{4}-\)\{3}\x\{12}" contained
++
++
++" The default methods for highlighting. Can be overridden later.
++hi def link taskdataEncoded Function
++hi def link taskdataKey Statement
++hi def link taskdataString String
++hi def link taskdataUUID Special
++hi def link taskdataUndo Type
++
++let b:current_syntax = "taskdata"
++
++" vim:noexpandtab
+diff -u -r --new-file runtime/syntax.orig/taskedit.vim runtime/syntax/taskedit.vim
+--- runtime/syntax.orig/taskedit.vim 1969-12-31 18:00:00.000000000 -0600
++++ runtime/syntax/taskedit.vim 2009-07-26 06:44:44.000000000 -0500
+@@ -0,0 +1,35 @@
++" Vim syntax file
++" Language: support for 'task 42 edit'
++" Maintainer: John Florian <jflorian@doubledog.org>
++" Updated: Wed Jul 8 19:46:32 EDT 2009
++
++
++" For version 5.x: Clear all syntax items.
++" For version 6.x: Quit when a syntax file was already loaded.
++if version < 600
++ syntax clear
++elseif exists("b:current_syntax")
++ finish
++endif
++
++syn match taskeditHeading "^\s*#\s*Name\s\+Editable details\s*$" contained
++syn match taskeditHeading "^\s*#\s*-\+\s\+-\+\s*$" contained
++syn match taskeditReadOnly "^\s*#\s*\(UU\)\?ID:.*$" contained
++syn match taskeditReadOnly "^\s*#\s*Status:.*$" contained
++syn match taskeditReadOnly "^\s*#\s*i\?Mask:.*$" contained
++syn match taskeditKey "^ *.\{-}:" nextgroup=taskeditString
++syn match taskeditComment "^\s*#.*$"
++ \ contains=taskeditReadOnly,taskeditHeading
++syn match taskeditString ".*$" contained contains=@Spell
++
++
++" The default methods for highlighting. Can be overridden later.
++hi def link taskeditComment Comment
++hi def link taskeditHeading Function
++hi def link taskeditKey Statement
++hi def link taskeditReadOnly Special
++hi def link taskeditString String
++
++let b:current_syntax = "taskedit"
++
++" vim:noexpandtab
+diff -u -r --new-file runtime/syntax.orig/tcl.vim runtime/syntax/tcl.vim
+--- runtime/syntax.orig/tcl.vim 2006-11-17 13:25:54.000000000 -0600
++++ runtime/syntax/tcl.vim 2009-06-03 05:07:39.000000000 -0500
+@@ -1,13 +1,16 @@
+ " Vim syntax file
+-" Language: TCL/TK
+-" Maintainer: Brett Cannon <brett@python.org>
++" Language: Tcl/Tk
++" Maintainer: Taylor Venable <taylor@metasyntax.net>
++" (previously Brett Cannon <brett@python.org>)
+ " (previously Dean Copsey <copsey@cs.ucdavis.edu>)
+ " (previously Matt Neumann <mattneu@purpleturtle.com>)
+ " (previously Allan Kelly <allan@fruitloaf.co.uk>)
+ " Original: Robin Becker <robin@jessikat.demon.co.uk>
+-" Last Change: 2006 Nov 17
++" Last Change: 2009/04/06 02:38:36
++" Version: 1.13
++" URL: http://real.metasyntax.net:2357/cvs/cvsweb.cgi/Config/vim/syntax/tcl.vim
+ "
+-" Keywords TODO: format clock click anchor
++" Keywords TODO: click anchor
+
+ " For version 5.x: Clear all syntax items
+ " For version 6.x: Quit when a syntax file was already loaded
+@@ -17,19 +20,40 @@
+ finish
+ endif
+
+-" A bunch of useful keywords
+-syn keyword tclStatement tell socket subst open eof pwd glob list exec pid
+-syn keyword tclStatement auto_load_index time unknown eval lrange fblocked
+-syn keyword tclStatement lsearch auto_import gets lappend proc variable llength
+-syn keyword tclStatement auto_execok return linsert error catch clock info
+-syn keyword tclStatement split array fconfigure concat join lreplace source
+-syn keyword tclStatement fcopy global auto_qualify update close cd auto_load
+-syn keyword tclStatement file append format read package set binary namespace
+-syn keyword tclStatement scan trace seek flush after vwait uplevel lset rename
+-syn keyword tclStatement fileevent regexp upvar unset encoding expr load regsub
+-syn keyword tclStatement interp exit puts incr lindex lsort tclLog string
++" Basic Tcl commands: http://www.tcl.tk/man/tcl8.5/TclCmd/contents.htm
++syn keyword tclCommand after append apply array bgerror binary catch cd chan clock
++syn keyword tclCommand close concat dde dict encoding eof error eval exec exit
++syn keyword tclCommand expr fblocked fconfigure fcopy file fileevent filename flush
++syn keyword tclCommand format gets glob global history incr info interp join
++syn keyword tclCommand lappend lassign lindex linsert list llength load lrange lrepeat
++syn keyword tclCommand lreplace lreverse lsearch lset lsort memory namespace open package
++syn keyword tclCommand pid proc puts pwd read regexp registry regsub rename return
++syn keyword tclCommand scan seek set socket source split string subst tell time
++syn keyword tclCommand trace unknown unload unset update uplevel upvar variable vwait
++
++" The 'Tcl Standard Library' commands: http://www.tcl.tk/man/tcl8.5/TclCmd/library.htm
++syn keyword tclCommand auto_execok auto_import auto_load auto_mkindex auto_mkindex_old
++syn keyword tclCommand auto_qualify auto_reset parray tcl_endOfWord tcl_findLibrary
++syn keyword tclCommand tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter
++syn keyword tclCommand tcl_wordBreakBefore
++
++" Commands that were added in Tcl 8.6
++
++syn keyword tclCommand my oo::copy oo::define oo::objdefine self
++syn keyword tclCommand coroutine tailcall throw yield
++
++" Global variables used by Tcl: http://www.tcl.tk/man/tcl8.5/TclCmd/tclvars.htm
++syn keyword tclVars env errorCode errorInfo tcl_library tcl_patchLevel tcl_pkgPath
++syn keyword tclVars tcl_platform tcl_precision tcl_rcFileName tcl_traceCompile
++syn keyword tclVars tcl_traceExec tcl_wordchars tcl_nonwordchars tcl_version argc argv
++syn keyword tclVars argv0 tcl_interactive geometry
++
++" Strings which expr accepts as boolean values, aside from zero / non-zero.
++syn keyword tclBoolean true false on off yes no
++
+ syn keyword tclLabel case default
+ syn keyword tclConditional if then else elseif switch
++syn keyword tclConditional try finally
+ syn keyword tclRepeat while for foreach break continue
+ syn keyword tcltkSwitch contained insert create polygon fill outline tag
+
+@@ -63,9 +87,14 @@
+ syn keyword tcltkWidgetSwitch contained delete names types create
+ " variable reference
+ " ::optional::namespaces
+-syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_.]*::\)*\)\a[a-zA-Z0-9_.]*"
++syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_]*::\)*\)\a[[:alnum:]_]*"
+ " ${...} may contain any character except '}'
+ syn match tclVarRef "${[^}]*}"
++
++" The syntactic unquote-splicing replacement for [expand].
++syn match tclExpand '\s{\*}'
++syn match tclExpand '^{\*}'
++
+ " menu, mane add
+ syn keyword tcltkWidgetSwitch contained active end last none cascade checkbutton command radiobutton separator
+ syn keyword tcltkWidgetSwitch contained activebackground actveforeground accelerator background bitmap columnbreak
+@@ -130,11 +159,10 @@
+
+ " EXPR
+ " commands associated with expr
+-syn keyword tcltkMaths contained acos cos hypot sinh
+-syn keyword tcltkMaths contained asin cosh log sqrt
+-syn keyword tcltkMaths contained atan exp log10 tan
+-syn keyword tcltkMaths contained atan2 floor pow tanh
+-syn keyword tcltkMaths contained ceil fmod sin
++syn keyword tcltkMaths contained abs acos asin atan atan2 bool ceil cos cosh double entier
++syn keyword tcltkMaths contained exp floor fmod hypot int isqrt log log10 max min pow rand
++syn keyword tcltkMaths contained round sin sinh sqrt srand tan tanh wide
++
+ syn region tcltkCommand matchgroup=tcltkCommandColor start="\<expr\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1 contains=tclLineContinue,tcltkMaths,tclNumber,tclVarRef,tclString,tcltlWidgetSwitch,tcltkCommand,tcltkPackConf
+
+ " format
+@@ -165,17 +193,26 @@
+
+ syn keyword tclTodo contained TODO
+
++" Sequences which are backslash-escaped: http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M16
++" Octal, hexadecimal, unicode codepoints, and the classics.
++" Tcl takes as many valid characters in a row as it can, so \xAZ in a string is newline followed by 'Z'.
++syn match tclSpecial contained '\\\([0-7]\{1,3}\|x\x\{1,2}\|u\x\{1,4}\|[abfnrtv]\)'
++syn match tclSpecial contained '\\[\[\]\{\}\"\$]'
+
+-" String and Character contstants
+-" Highlight special characters (those which have a backslash) differently
+-syn match tclSpecial contained "\\\d\d\d\=\|\\."
++" Command appearing inside another command or inside a string.
++syn region tclEmbeddedStatement start='\[' end='\]' contained contains=tclCommand,tclNumber,tclLineContinue,tclString,tclVarRef,tclEmbeddedStatement
+ " A string needs the skip argument as it may legitimately contain \".
+ " Match at start of line
+ syn region tclString start=+^"+ end=+"+ contains=tclSpecial skip=+\\\\\|\\"+
+ "Match all other legal strings.
+-syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=tclSpecial skip=+\\\\\|\\"+
++syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=tclSpecial,tclVarRef,tclEmbeddedStatement skip=+\\\\\|\\"+
++
++" Line continuation is backslash immediately followed by newline.
++syn match tclLineContinue '\\$'
+
+-syn match tclLineContinue "\\\s*$"
++if exists('g:tcl_warn_continuation')
++ syn match tclNotLineContinue '\\\s\+$'
++endif
+
+ "integer number, or floating point number without a dot and with "f".
+ syn case ignore
+@@ -208,13 +245,13 @@
+ endif
+
+ HiLink tcltkSwitch Special
++ HiLink tclExpand Special
+ HiLink tclLabel Label
+ HiLink tclConditional Conditional
+ HiLink tclRepeat Repeat
+ HiLink tclNumber Number
+ HiLink tclError Error
+- HiLink tclStatement Statement
+- "HiLink tclStatementColor Statement
++ HiLink tclCommand Statement
+ HiLink tclString String
+ HiLink tclComment Comment
+ HiLink tclSpecial Special
+@@ -223,6 +260,9 @@
+ HiLink tcltkCommandColor Statement
+ HiLink tcltkWidgetColor Structure
+ HiLink tclLineContinue WarningMsg
++if exists('g:tcl_warn_continuation')
++ HiLink tclNotLineContinue ErrorMsg
++endif
+ HiLink tcltkStringSwitch Special
+ HiLink tcltkArraySwitch Special
+ HiLink tcltkLsortSwitch Special
+@@ -232,7 +272,6 @@
+ HiLink tcltkNamespaceSwitch Special
+ HiLink tcltkWidgetSwitch Special
+ HiLink tcltkPackConfColor Identifier
+- "HiLink tcltkLsort Statement
+ HiLink tclVarRef Identifier
+
+ delcommand HiLink
+@@ -240,4 +279,4 @@
+
+ let b:current_syntax = "tcl"
+
+-" vim: ts=8
++" vim: ts=8 noet
+diff -u -r --new-file runtime/syntax.orig/tcsh.vim runtime/syntax/tcsh.vim
+--- runtime/syntax.orig/tcsh.vim 2007-06-17 06:20:06.000000000 -0500
++++ runtime/syntax/tcsh.vim 2009-12-24 10:29:21.000000000 -0600
+@@ -1,6 +1,6 @@
+ " tcsh.vim: Vim syntax file for tcsh scripts
+-" Maintainer: Gautam Iyer <gi1242@users.sourceforge.net>
+-" Modified: Sat 16 Jun 2007 04:52:12 PM PDT
++" Maintainer: Gautam Iyer <gi1242@gmail.com>
++" Modified: Thu 17 Dec 2009 06:05:07 PM EST
+ "
+ " Description: We break up each statement into a "command" and an "end" part.
+ " All groups are either a "command" or part of the "end" of a statement (ie
+@@ -60,7 +60,7 @@
+ " alias and unalias (contains special aliases)
+ syn keyword tcshAliases contained beepcmd cwdcmd jobcmd helpcommand periodic precmd postcmd shell
+ syn keyword tcshBuiltin nextgroup=tcshAliCmd skipwhite alias unalias
+-syn match tcshAliCmd contained nextgroup=tcshAliEnd skipwhite '\v[\w-]+' contains=tcshAliases
++syn match tcshAliCmd contained nextgroup=tcshAliEnd skipwhite '\v(\w|-)+' contains=tcshAliases
+ syn region tcshAliEnd contained transparent matchgroup=tcshBuiltin start='' skip='\\$' end='$\|;' contains=@tcshStatementEnds
+
+ " if statements
+@@ -197,7 +197,11 @@
+
+ " ----- Synchronising -----
+ if exists('tcsh_minlines')
+- exec 'syn sync minlines=' . tcsh_minlines
++ if tcsh_minlines == 'fromstart'
++ syn sync fromstart
++ else
++ exec 'syn sync minlines=' . tcsh_minlines
++ endif
+ else
+ syn sync minlines=100 " Some completions can be quite long
+ endif
+diff -u -r --new-file runtime/syntax.orig/tex.vim runtime/syntax/tex.vim
+--- runtime/syntax.orig/tex.vim 2008-07-29 14:43:38.000000000 -0500
++++ runtime/syntax/tex.vim 2010-01-12 14:39:39.000000000 -0600
+@@ -1,8 +1,8 @@
+ " Vim syntax file
+ " Language: TeX
+ " Maintainer: Dr. Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM>
+-" Last Change: Jun 03, 2008
+-" Version: 41
++" Last Change: Dec 28, 2009
++" Version: 46
+ " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
+ "
+ " Notes: {{{1
+@@ -103,6 +103,7 @@
+ syn cluster texEnvGroup contains=texMatcher,texMathDelim,texSpecialChar,texStatement
+ syn cluster texFoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texSectionMarker,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract
+ syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell
++syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,@Spell,texStyleMatcher
+ syn cluster texRefGroup contains=texMatcher,texComment,texDelimiter
+ if !exists("tex_no_math")
+ syn cluster texMathZones contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ
+@@ -179,24 +180,24 @@
+
+ " \begin{}/\end{} section markers: {{{1
+ syn match texSectionMarker "\\begin\>\|\\end\>" nextgroup=texSectionName
+-syn region texSectionName matchgroup=Delimiter start="{" end="}" contained nextgroup=texSectionModifier
+-syn region texSectionModifier matchgroup=Delimiter start="\[" end="]" contained
++syn region texSectionName matchgroup=Delimiter start="{" end="}" contained nextgroup=texSectionModifier contains=texComment
++syn region texSectionModifier matchgroup=Delimiter start="\[" end="]" contained contains=texComment
+
+ " \documentclass, \documentstyle, \usepackage: {{{1
+ syn match texDocType "\\documentclass\>\|\\documentstyle\>\|\\usepackage\>" nextgroup=texSectionName,texDocTypeArgs
+-syn region texDocTypeArgs matchgroup=Delimiter start="\[" end="]" contained nextgroup=texSectionName
++syn region texDocTypeArgs matchgroup=Delimiter start="\[" end="]" contained nextgroup=texSectionName contains=texComment
+
+ " Preamble syntax-based folding support: {{{1
+ if g:tex_fold_enabled && has("folding")
+- syn region texPreamble transparent fold start='\zs\\documentclass\>' end='\ze\\begin{document}' contains=@texMatchGroup
++ syn region texPreamble transparent fold start='\zs\\documentclass\>' end='\ze\\begin{document}' contains=texStyle,@texMatchGroup
+ endif
+
+ " TeX input: {{{1
+ syn match texInput "\\input\s\+[a-zA-Z/.0-9_^]\+"hs=s+7 contains=texStatement
+-syn match texInputFile "\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}" contains=texStatement,texInputCurlies
++syn match texInputFile "\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
+ syn match texInputFile "\\\(epsfig\|input\|usepackage\)\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
+ syn match texInputCurlies "[{}]" contained
+-syn region texInputFileOpt matchgroup=Delimiter start="\[" end="\]" contained
++syn region texInputFileOpt matchgroup=Delimiter start="\[" end="\]" contained contains=texComment
+
+ " Type Styles (LaTeX 2.09): {{{1
+ syn match texTypeStyle "\\rm\>"
+@@ -309,7 +310,7 @@
+ exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
+ exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
+ exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
+- exe 'HiLink '.grpname.' texMath'
++ exe 'hi def link '.grpname.' texMath'
+ if a:starform
+ let grpname = "texMathZone".a:sfx.'S'
+ let syncname = "texSyncMathZone".a:sfx.'S'
+@@ -317,7 +318,7 @@
+ exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\*\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\*\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
+ exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
+ exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
+- exe 'HiLink '.grpname.' texMath'
++ exe 'hi def link '.grpname.' texMath'
+ endif
+ endfun
+
+@@ -399,7 +400,7 @@
+ " Separate lines used for verb` and verb# so that the end conditions {{{1
+ " will appropriately terminate. Ideally vim would let me save a
+ " character from the start pattern and re-use it in the end-pattern.
+-syn region texZone start="\\begin{verbatim}" end="\\end{verbatim}\|%stopzone\>" contains=@Spell
++syn region texZone start="\\begin{[vV]erbatim}" end="\\end{[vV]erbatim}\|%stopzone\>" contains=@Spell
+ " listings package:
+ syn region texZone start="\\begin{lstlisting}" end="\\end{lstlisting}\|%stopzone\>" contains=@Spell
+ " moreverb package:
+@@ -456,6 +457,14 @@
+ " TeX String Delimiters: {{{1
+ syn match texString "\(``\|''\|,,\)"
+
++" makeatletter -- makeatother sections
++if !exists("g:tex_no_error")
++ syn region texStyle matchgroup=texStatement start='\\makeatletter' end='\\makeatother' contains=@texStyleGroup contained
++ syn match texStyleStatement "\\[a-zA-Z@]\+" contained
++ syn region texStyleMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texStyleGroup,texError contained
++ syn region texStyleMatcher matchgroup=Delimiter start="\[" end="]" contains=@texStyleGroup,texError contained
++endif
++
+ " LaTeX synchronization: {{{1
+ syn sync maxlines=200
+ syn sync minlines=50
+@@ -507,6 +516,7 @@
+ HiLink texMathDelimSet2 texMathDelim
+ HiLink texMathDelimKey texMathDelim
+ HiLink texMathMatcher texMath
++ HiLink texMathZoneV texMath
+ HiLink texMathZoneW texMath
+ HiLink texMathZoneX texMath
+ HiLink texMathZoneY texMath
+@@ -516,6 +526,7 @@
+ HiLink texSectionMarker texCmdName
+ HiLink texSectionName texSection
+ HiLink texSpaceCode texStatement
++ HiLink texStyleStatement texStatement
+ HiLink texTypeSize texType
+ HiLink texTypeStyle texType
+
+diff -u -r --new-file runtime/syntax.orig/uil.vim runtime/syntax/uil.vim
+--- runtime/syntax.orig/uil.vim 2004-06-07 09:32:35.000000000 -0500
++++ runtime/syntax/uil.vim 2009-12-16 14:38:21.000000000 -0600
+@@ -1,8 +1,9 @@
+ " Vim syntax file
+ " Language: Motif UIL (User Interface Language)
+ " Maintainer: Thomas Koehler <jean-luc@picard.franken.de>
+-" Last Change: 2002 Sep 20
+-" URL: http://jeanluc-picard.de/vim/syntax/uil.vim
++" Last Change: 2009 Dec 04
++" URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/uil.vim
++
+
+ " Quit when a syntax file was already loaded
+ if version < 600
+diff -u -r --new-file runtime/syntax.orig/updatedb.vim runtime/syntax/updatedb.vim
+--- runtime/syntax.orig/updatedb.vim 2007-10-25 09:36:25.000000000 -0500
++++ runtime/syntax/updatedb.vim 2009-06-13 07:38:40.000000000 -0500
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: updatedb.conf(5) configuration file
+ " Maintainer: Nikolai Weibull <now@bitwi.se>
+-" Latest Revision: 2007-10-25
++" Latest Revision: 2009-05-25
+
+ if exists("b:current_syntax")
+ finish
+@@ -18,7 +18,11 @@
+ syn match updatedbBegin display '^'
+ \ nextgroup=updatedbName,updatedbComment skipwhite
+
+-syn keyword updatedbName contained PRUNEFS PRUNEPATHS PRUNE_BIND_MOUNTS
++syn keyword updatedbName contained
++ \ PRUNEFS
++ \ PRUNENAMES
++ \ PRUNEPATHS
++ \ PRUNE_BIND_MOUNTS
+ \ nextgroup=updatedbNameEq
+
+ syn match updatedbNameEq contained display '=' nextgroup=updatedbValue
+diff -u -r --new-file runtime/syntax.orig/vim.vim runtime/syntax/vim.vim
+--- runtime/syntax.orig/vim.vim 2008-07-29 14:43:38.000000000 -0500
++++ runtime/syntax/vim.vim 2010-01-12 14:33:53.000000000 -0600
+@@ -1,8 +1,8 @@
+ " Vim syntax file
+ " Language: Vim 7.2 script
+ " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
+-" Last Change: July 29, 2008
+-" Version: 7.2-82
++" Last Change: Nov 18, 2009
++" Version: 7.2-95
+ " Automatically generated keyword lists: {{{1
+
+ " Quit when a syntax file was already loaded {{{2
+@@ -16,11 +16,11 @@
+ syn cluster vimCommentGroup contains=vimTodo,@Spell
+
+ " regular vim commands {{{2
+-syn keyword vimCommand contained abc[lear] argdo argu[ment] bel[owright] bN[ext] breakd[el] b[uffer] caddb[uffer] cb[uffer] cex[pr] cg[etfile] checkt[ime] cnew[er] col[der] con[tinue] cq[uit] delc[ommand] diffoff diffu[pdate] dr[op] echom[sg] em[enu] endt[ry] exu[sage] fin[d] foldc[lose] fu[nction] ha[rdcopy] helpt[ags] if is[earch] ju[mps] kee[pmarks] lan[guage] lc[d] lefta[bove] lgetb[uffer] lgrepa[dd] lla[st] lmapc[lear] lnf[ile] loc[kmarks] lpf[ile] lt[ag] mak[e] menut[ranslate] mkvie[w] mzf[ile] n[ext] nu[mber] opt[ions] perld[o] pp[op] P[rint] promptr[epl] ptj[ump] ptp[revious] pw[d] q[uit] redi[r] reg[isters] rew[ind] rubyd[o] sal[l] sba[ll] sbn[ext] sb[uffer] setf[iletype] sfir[st] sim[alt] sm[ap] sn[ext] snor[emap] so[urce] spellr[epall] spr[evious] star[tinsert] stopi[nsert] sunmenu t tabe[dit] tabm[ove] tabo[nly] ta[g] tclf[ile] tj[ump] tn[ext] tr[ewind] tu[nmenu] undol[ist] verb[ose] vim[grep] vmapc[lear] wh[ile] win[size] wq wv[iminfo] xm[ap] XMLent xnoremenu
+-syn keyword vimCommand contained abo[veleft] arge[dit] as[cii] bf[irst] bo[tright] breakl[ist] buffers cad[dexpr] cc cf[ile] c[hange] cla[st] cn[ext] colo[rscheme] cope[n] cr[ewind] d[elete] diffpatch dig[raphs] ds[earch] echon emenu* endw[hile] f[ile] fini[sh] folddoc[losed] go[to] h[elp] hid[e] ij[ump] isp[lit] k laddb[uffer] la[st] lch[dir] lex[pr] lgete[xpr] lh[elpgrep] lli[st] lnew[er] lNf[ile] lockv[ar] lp[revious] lv[imgrep] ma[rk] mk[exrc] mkv[imrc] mz[scheme] N[ext] omapc[lear] pc[lose] po[p] pre[serve] profd[el] ps[earch] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red[o] res[ize] ri[ght] rubyf[ile] san[dbox] sbf[irst] sbN[ext] scripte[ncoding] setg[lobal] sh[ell] sla[st] smapc[lear] sN[ext] snoreme spelld[ump] spellu[ndo] sre[wind] startr[eplace] sts[elect] sus[pend] tab tabf[ind] tabnew tabp[revious] tags te[aroff] tl[ast] tN[ext] try una[bbreviate] unh[ide] ve[rsion] vimgrepa[dd] vne[w] winc[md] wn[ext] wqa[ll] X xmapc[lear] XMLns xunme
+-syn keyword vimCommand contained al[l] argg[lobal] bad[d] bl[ast] bp[revious] br[ewind] bun[load] caddf[ile] ccl[ose] cfir[st] changes cl[ist] cN[ext] comc[lear] co[py] cuna[bbrev] delf[unction] diffpu[t] di[splay] dsp[lit] e[dit] endfo[r] ene[w] files fir[st] foldd[oopen] gr[ep] helpf[ind] his[tory] il[ist] iuna[bbrev] keepalt lad[dexpr] later lcl[ose] lf[ile] lg[etfile] l[ist] lmak[e] lne[xt] ln[oremap] lol[der] lr[ewind] lvimgrepa[dd] marks mks[ession] mod[e] nbkey nmapc[lear] on[ly] ped[it] popu prev[ious] prof[ile] pta[g] ptn[ext] pts[elect] py[thon] r[ead] redr[aw] ret[ab] rightb[elow] ru[ntime] sa[rgument] sbl[ast] sbp[revious] scrip[tnames] setl[ocal] sign sl[eep] sme sni[ff] snoremenu spe[llgood] spellw[rong] sta[g] stj[ump] sun[hide] sv[iew] tabc[lose] tabfir[st] tabn[ext] tabr[ewind] tc[l] tf[irst] tm to[pleft] ts[elect] u[ndo] unlo[ckvar] vert[ical] vi[sual] vs[plit] windo wN[ext] w[rite] xa[ll] xme xn[oremap] xunmenu
+-syn keyword vimCommand contained arga[dd] argl[ocal] ba[ll] bm[odified] brea[k] bro[wse] bw[ipeout] cal[l] cd cgetb[uffer] chd[ir] clo[se] cnf[ile] comp[iler] cpf[ile] cw[indow] delm[arks] diffsplit dj[ump] earlier el[se] endf[unction] ex filetype fix[del] foldo[pen] grepa[dd] helpg[rep] iabc[lear] imapc[lear] j[oin] keepj[umps] laddf[ile] lb[uffer] le[ft] lfir[st] lgr[ep] ll lm[ap] lN[ext] lo[adview] lop[en] ls lw[indow] mat[ch] mksp[ell] m[ove] new noh[lsearch] o[pen] pe[rl] popu[p] p[rint] promptf[ind] ptf[irst] ptN[ext] pu[t] qa[ll] rec[over] redraws[tatus] retu[rn] rub[y] rv[iminfo] sav[eas] sbm[odified] sbr[ewind] se[t] sf[ind] sil[ent] sm[agic] smenu sno[magic] sor[t] spelli[nfo] sp[lit] startg[replace] st[op] sunme syncbind tabd[o] tabl[ast] tabN[ext] tabs tcld[o] th[row] tm[enu] tp[revious] tu undoj[oin] up[date] vie[w] viu[sage] wa[ll] winp[os] wp[revious] ws[verb] x[it] xmenu xnoreme y[ank]
+-syn keyword vimCommand contained argd[elete] ar[gs] bd[elete] bn[ext] breaka[dd] bufdo cabc[lear] cat[ch] ce[nter] cgete[xpr] che[ckpath] cmapc[lear] cNf[ile] conf[irm] cp[revious] debugg[reedy] diffg[et] diffthis dl[ist] echoe[rr] elsei[f] en[dif] exi[t] fina[lly] fo[ld] for
++syn keyword vimCommand contained abc[lear] argdo argu[ment] bel[owright] bN[ext] breakd[el] b[uffer] caddb[uffer] cb[uffer] cex[pr] cg[etfile] checkt[ime] cnew[er] col[der] con[tinue] cq[uit] delc[ommand] diffoff diffu[pdate] dr[op] echom[sg] em[enu] en[dif] ex files fini[sh] foldc[lose] for grepa[dd] helpg[rep] iabc[lear] imapc[lear] j[oin] keepj[umps] laddf[ile] lb[uffer] le[ft] lfir[st] lgr[ep] ll lmapc[lear] lnf[ile] lockv[ar] lp[revious] lv[imgrep] ma[rk] mk[exrc] mkv[imrc] mz[scheme] N[ext] ol[dfiles] opt[ions] perld[o] pp[op] P[rint] promptr[epl] ptj[ump] ptp[revious] pw[d] q[uit] redi[r] reg[isters] rew[ind] rubyd[o] sal[l] sba[ll] sbn[ext] sb[uffer] setf[iletype] sfir[st] sim[alt] sm[ap] sN[ext] snoremenu spe[llgood] spellw[rong] sta[g] stj[ump] sun[hide] sv[iew] tabc[lose] tabfir[st] tabn[ext] tabr[ewind] tc[l] tf[irst] tm to[pleft] ts[elect] u[ndo] unlo[ckvar] vert[ical] vi[sual] vs[plit] windo wN[ext] w[rite] xa[ll] xmenu xnoremenu
++syn keyword vimCommand contained abo[veleft] arge[dit] as[cii] bf[irst] bo[tright] breakl[ist] buffers cad[dexpr] cc cf[ile] c[hange] cla[st] cn[ext] colo[rscheme] cope[n] cr[ewind] d[elete] diffpatch dig[raphs] ds[earch] echon emenu* endt[ry] exi[t] filetype fir[st] folddoc[losed] fu[nction] ha[rdcopy] helpt[ags] if is[earch] ju[mps] kee[pmarks] lan[guage] lc[d] lefta[bove] lgetb[uffer] lgrepa[dd] lla[st] lnew[er] lNf[ile] lol[der] lr[ewind] lvimgrepa[dd] marks mks[ession] mod[e] nbkey nmapc[lear] omapc[lear] pc[lose] po[p] pre[serve] profd[el] ps[earch] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red[o] res[ize] ri[ght] rubyf[ile] san[dbox] sbf[irst] sbN[ext] scripte[ncoding] setg[lobal] sh[ell] sla[st] sme sni[ff] sor[t] spelli[nfo] sp[lit] startg[replace] st[op] sunme syncbind tabd[o] tabl[ast] tabN[ext] tabs tcld[o] th[row] tm[enu] tp[revious] tu undoj[oin] up[date] vie[w] viu[sage] wa[ll] winp[os] wp[revious] ws[verb] x[it] XMLent xunme
++syn keyword vimCommand contained al[l] argg[lobal] bad[d] bl[ast] bp[revious] br[ewind] bun[load] caddf[ile] ccl[ose] cfir[st] changes cl[ist] cN[ext] comc[lear] co[py] cuna[bbrev] delf[unction] diffpu[t] di[splay] dsp[lit] e[dit] endfo[r] endw[hile] exu[sage] fina[lly] fix[del] foldd[oopen] go[to] h[elp] hid[e] ij[ump] isp[lit] k laddb[uffer] la[st] lch[dir] lex[pr] lgete[xpr] lh[elpgrep] lli[st] lne[xt] lo[adview] lop[en] ls lw[indow] mat[ch] mksp[ell] m[ove] new noh[lsearch] on[ly] ped[it] popu prev[ious] prof[ile] pta[g] ptn[ext] pts[elect] py[thon] r[ead] redr[aw] ret[ab] rightb[elow] ru[ntime] sa[rgument] sbl[ast] sbp[revious] scrip[tnames] setl[ocal] sign sl[eep] smenu sno[magic] so[urce] spellr[epall] spr[evious] star[tinsert] stopi[nsert] sunmenu t tabe[dit] tabm[ove] tabo[nly] ta[g] tclf[ile] tj[ump] tn[ext] tr[ewind] tu[nmenu] undol[ist] verb[ose] vim[grep] vmapc[lear] wh[ile] win[size] wq wv[iminfo] xmapc[lear] XMLns xunmenu
++syn keyword vimCommand contained arga[dd] argl[ocal] ba[ll] bm[odified] brea[k] bro[wse] bw[ipeout] cal[l] cd cgetb[uffer] chd[ir] clo[se] cnf[ile] comp[iler] cpf[ile] cw[indow] delm[arks] diffsplit dj[ump] earlier el[se] endf[unction] ene[w] f[ile] fin[d] fo[ld] foldo[pen] gr[ep] helpf[ind] his[tory] il[ist] iuna[bbrev] keepalt lad[dexpr] later lcl[ose] lf[ile] lg[etfile] l[ist] lmak[e] lN[ext] loc[kmarks] lpf[ile] lt[ag] mak[e] menut[ranslate] mkvie[w] mzf[ile] n[ext] nu[mber] o[pen] pe[rl] popu[p] p[rint] promptf[ind] ptf[irst] ptN[ext] pu[t] qa[ll] rec[over] redraws[tatus] retu[rn] rub[y] rv[iminfo] sav[eas] sbm[odified] sbr[ewind] se[t] sf[ind] sil[ent] sm[agic] sn[ext] snoreme spelld[ump] spellu[ndo] sre[wind] startr[eplace] sts[elect] sus[pend] tab tabf[ind] tabnew tabp[revious] tags te[aroff] tl[ast] tN[ext] try una[bbreviate] unh[ide] ve[rsion] vimgrepa[dd] vne[w] winc[md] wn[ext] wqa[ll] X xme xnoreme y[ank]
++syn keyword vimCommand contained argd[elete] ar[gs] bd[elete] bn[ext] breaka[dd] bufdo cabc[lear] cat[ch] ce[nter] cgete[xpr] che[ckpath] cmapc[lear] cNf[ile] conf[irm] cp[revious] debugg[reedy] diffg[et] diffthis dl[ist] echoe[rr] elsei[f]
+ syn match vimCommand contained "\<z[-+^.=]"
+
+ " vimOptions are caught only when contained in a vimSet {{{2
+@@ -33,7 +33,7 @@
+ syn keyword vimOption contained altkeymap arabic autowrite backupcopy bdir bin bomb bt cd ci cinw co completefunc cp cscopetag csto debug dict dir eb enc errorbells expandtab fdl fenc fileformat fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatekey iminsert inde insertmode iskeyword keymodel laststatus lisp lpl magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paste pex pmbcs printencoding prompt rdt ri
+
+ " vimOptions: These are the turn-off setting variants {{{2
+-syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscopeverbose nocuc nocursorline nodg nodisable noeb noedcompatible noendofline noequalalways noesckeys noex noexrc nofk nofoldenable nogdefault nohid nohk nohkmapp nohls noic noignorecase noimc noimd noinf noinsertmode nojoinspaces nolazyredraw nolinebreak nolist nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw noremap norevins norightleft norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx novisualbell nowarn noweirdinvert nowfw nowinfixheight nowiv nowrap nowrite nowritebackup
++syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscopeverbose nocuc nocursorline nodg noimdisable noeb noedcompatible noendofline noequalalways noesckeys noex noexrc nofk nofoldenable nogdefault nohid nohk nohkmapp nohls noic noignorecase noimc noimd noinf noinsertmode nojoinspaces nolazyredraw nolinebreak nolist nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw noremap norevins norightleft norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx novisualbell nowarn noweirdinvert nowfw nowinfixheight nowiv nowrap nowrite nowritebackup
+ syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobiosk nobl nocf nocindent noconsk nocp nocst nocul nodeco nodiff noea noed noek noeol noerrorbells noet noexpandtab nofen nofkmap nogd noguipty nohidden nohkmap nohkp nohlsearch noicon noim noimcmdline noincsearch noinfercase nois nojs nolbr nolisp noloadplugins nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly norestorescreen nori norightleftcmd norlc nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast novb nowa nowb nowfh nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
+ syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobioskey nobomb noci nocompatible noconskey nocscopetag nocsverb nocursorcolumn nodelcombine nodigraph
+
+@@ -62,7 +62,7 @@
+ syn keyword vimAutoEvent contained BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre Cmd-event CmdwinEnter CmdwinLeave ColorScheme CursorHold CursorHoldI CursorMoved CursorMovedI EncodingChanged FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertEnter InsertLeave MenuPopup QuickFixCmdPost QuickFixCmdPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabEnter TabLeave TermChanged TermResponse User UserGettingBored VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave
+
+ " Highlight commonly used Groupnames {{{2
+-syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
++syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo None
+
+ " Default highlighting groups {{{2
+ syn keyword vimHLGroup contained Cursor CursorColumn CursorIM CursorLine DiffAdd DiffChange DiffDelete DiffText Directory ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
+@@ -99,8 +99,9 @@
+ syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
+ syn match vimIsCommand "\<\h\w*\>" contains=vimCommand
+ syn match vimVar "\<[bwglsav]:\K\k*\>"
+-syn match vimVar contained "\<\K\k*\>"
+-syn keyword vimCommand contained in
++syn match vimVar contained "\<\K\k*\>"
++syn match vimFBVar contained "\<[bwglsav]:\K\k*\>"
++syn keyword vimCommand contained in
+
+ " Insertions And Appends: insert append {{{2
+ " =======================
+@@ -127,7 +128,7 @@
+
+ " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
+ " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
+-syn cluster vimAugroupList contains=vimIsCommand,vimFunction,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
++syn cluster vimAugroupList contains=vimIsCommand,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
+ if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'a'
+ syn region vimAugroup fold start="\<aug\%[roup]\>\s\+\K\k*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend
+ else
+@@ -141,156 +142,154 @@
+
+ " Operators: {{{2
+ " =========
+-syn cluster vimOperGroup contains=vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
+-syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
+-syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile
+-syn region vimOperParen oneline matchgroup=vimOper start="(" end=")" contains=@vimOperGroup
+-syn region vimOperParen oneline matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar
++syn cluster vimOperGroup contains=vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
++syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
++syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile
++syn region vimOperParen oneline matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup
++syn region vimOperParen oneline matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar
+ if !exists("g:vimsyn_noerror")
+- syn match vimOperError ")"
++ syn match vimOperError ")"
+ endif
+
+ " Functions : Tag is provided for those who wish to highlight tagged functions {{{2
+ " =========
+-syn cluster vimFuncList contains=vimCommand,vimFuncKey,Tag,vimFuncSID
+-syn cluster vimFuncBodyList contains=vimAddress,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimFunc,vimFunction,vimFunctionError,vimFuncVar,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUserCommand
+-if !exists("g:vimsyn_noerror")
+- syn match vimFunctionError "\<fu\%[nction]!\=\s\+\zs\U\i\{-}\ze\s*(" contains=vimFuncKey,vimFuncBlank nextgroup=vimFuncBody
+-endif
+-syn match vimFunction "\<fu\%[nction]!\=\s\+\(\(<[sS][iI][dD]>\|[Ss]:\|\u\|\i\+#\)\i*\|\(g:\)\=\(\I\i*\.\)\+\I\i*\)\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody
++syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID
++syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUserCommand
++syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody
++
+ if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'f'
+- syn region vimFuncBody contained fold start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
++ syn region vimFuncBody contained fold start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
+ else
+- syn region vimFuncBody contained start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
++ syn region vimFuncBody contained start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
+ endif
+-syn match vimFuncVar contained "a:\(\I\i*\|\d\+\)"
+-syn match vimFuncSID contained "\c<sid>\|\<s:"
+-syn keyword vimFuncKey contained fu[nction]
+-syn match vimFuncBlank contained "\s\+"
++syn match vimFuncVar contained "a:\(\K\k*\|\d\+\)"
++syn match vimFuncSID contained "\c<sid>\|\<s:"
++syn keyword vimFuncKey contained fu[nction]
++syn match vimFuncBlank contained "\s\+"
+
+-syn keyword vimPattern contained start skip end
++syn keyword vimPattern contained start skip end
+
+ " Special Filenames, Modifiers, Extension Removal: {{{2
+ " ===============================================
+-syn match vimSpecFile "<c\(word\|WORD\)>" nextgroup=vimSpecFileMod,vimSubst
+-syn match vimSpecFile "<\([acs]file\|amatch\|abuf\)>" nextgroup=vimSpecFileMod,vimSubst
+-syn match vimSpecFile "\s%[ \t:]"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst
+-syn match vimSpecFile "\s%$"ms=s+1 nextgroup=vimSpecFileMod,vimSubst
+-syn match vimSpecFile "\s%<"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst
+-syn match vimSpecFile "#\d\+\|[#%]<\>" nextgroup=vimSpecFileMod,vimSubst
+-syn match vimSpecFileMod "\(:[phtre]\)\+" contained
++syn match vimSpecFile "<c\(word\|WORD\)>" nextgroup=vimSpecFileMod,vimSubst
++syn match vimSpecFile "<\([acs]file\|amatch\|abuf\)>" nextgroup=vimSpecFileMod,vimSubst
++syn match vimSpecFile "\s%[ \t:]"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst
++syn match vimSpecFile "\s%$"ms=s+1 nextgroup=vimSpecFileMod,vimSubst
++syn match vimSpecFile "\s%<"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst
++syn match vimSpecFile "#\d\+\|[#%]<\>" nextgroup=vimSpecFileMod,vimSubst
++syn match vimSpecFileMod "\(:[phtre]\)\+" contained
+
+ " User-Specified Commands: {{{2
+ " =======================
+-syn cluster vimUserCmdList contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFunction,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
+-syn keyword vimUserCommand contained com[mand]
+-syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserCommand,@vimUserCmdList
+-syn match vimUserAttrb contained "-n\%[args]=[01*?+]" contains=vimUserAttrbKey,vimOper
+-syn match vimUserAttrb contained "-com\%[plete]=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
+-syn match vimUserAttrb contained "-ra\%[nge]\(=%\|=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey
+-syn match vimUserAttrb contained "-cou\%[nt]=\d\+" contains=vimNumber,vimOper,vimUserAttrbKey
+-syn match vimUserAttrb contained "-bang\=\>" contains=vimOper,vimUserAttrbKey
+-syn match vimUserAttrb contained "-bar\>" contains=vimOper,vimUserAttrbKey
+-syn match vimUserAttrb contained "-re\%[gister]\>" contains=vimOper,vimUserAttrbKey
++syn cluster vimUserCmdList contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
++syn keyword vimUserCommand contained com[mand]
++syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserCommand,@vimUserCmdList
++syn match vimUserAttrb contained "-n\%[args]=[01*?+]" contains=vimUserAttrbKey,vimOper
++syn match vimUserAttrb contained "-com\%[plete]=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
++syn match vimUserAttrb contained "-ra\%[nge]\(=%\|=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey
++syn match vimUserAttrb contained "-cou\%[nt]=\d\+" contains=vimNumber,vimOper,vimUserAttrbKey
++syn match vimUserAttrb contained "-bang\=\>" contains=vimOper,vimUserAttrbKey
++syn match vimUserAttrb contained "-bar\>" contains=vimOper,vimUserAttrbKey
++syn match vimUserAttrb contained "-re\%[gister]\>" contains=vimOper,vimUserAttrbKey
+ if !exists("g:vimsyn_noerror")
+- syn match vimUserCmdError contained "\S\+\>"
++ syn match vimUserCmdError contained "\S\+\>"
+ endif
+ syn case ignore
+-syn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister]
+-syn keyword vimUserAttrbCmplt contained augroup buffer command dir environment event expression file function help highlight mapping menu option something tag tag_listfiles var
+-syn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
+-syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\u\w*\)\+\|\u\w*\)"hs=s+1 nextgroup=vimUserCmdError
++syn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister]
++syn keyword vimUserAttrbCmplt contained augroup buffer command dir environment event expression file function help highlight mapping menu option shellcmd something tag tag_listfiles var
++syn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
++syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\u\w*\)\+\|\u\w*\)"hs=s+1 nextgroup=vimUserCmdError
+
+ syn case match
+-syn match vimUserAttrbCmplt contained "custom,\u\w*"
++syn match vimUserAttrbCmplt contained "custom,\u\w*"
+
+ " Lower Priority Comments: after some vim commands... {{{2
+ " =======================
+-syn match vimComment excludenl +\s"[^\-:.%#=*].*$+lc=1 contains=@vimCommentGroup,vimCommentString
+-syn match vimComment +\<endif\s\+".*$+lc=5 contains=@vimCommentGroup,vimCommentString
+-syn match vimComment +\<else\s\+".*$+lc=4 contains=@vimCommentGroup,vimCommentString
+-syn region vimCommentString contained oneline start='\S\s\+"'ms=e end='"'
++syn match vimComment excludenl +\s"[^\-:.%#=*].*$+lc=1 contains=@vimCommentGroup,vimCommentString
++syn match vimComment +\<endif\s\+".*$+lc=5 contains=@vimCommentGroup,vimCommentString
++syn match vimComment +\<else\s\+".*$+lc=4 contains=@vimCommentGroup,vimCommentString
++syn region vimCommentString contained oneline start='\S\s\+"'ms=e end='"'
+
+ " Environment Variables: {{{2
+ " =====================
+-syn match vimEnvvar "\$\I\i*"
+-syn match vimEnvvar "\${\I\i*}"
++syn match vimEnvvar "\$\I\i*"
++syn match vimEnvvar "\${\I\i*}"
+
+ " In-String Specials: {{{2
+ " Try to catch strings, if nothing else matches (therefore it must precede the others!)
+ " vimEscapeBrace handles ["] []"] (ie. "s don't terminate string inside [])
+-syn region vimEscapeBrace oneline contained transparent start="[^\\]\(\\\\\)*\[\zs\^\=\]\=" skip="\\\\\|\\\]" end="]"me=e-1
+-syn match vimPatSepErr contained "\\)"
+-syn match vimPatSep contained "\\|"
+-syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\]['"]" contains=@vimStringGroup
+-syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline
+-syn match vimNotPatSep contained "\\\\"
+-syn cluster vimStringGroup contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
+-syn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+ contains=@vimStringGroup
+-syn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]'+lc=1 end=+'+
+-syn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup
+-syn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@vimStringGroup
+-syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup
+-syn match vimString contained +"[^"]*\\$+ skipnl nextgroup=vimStringCont
+-syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+
++syn region vimEscapeBrace oneline contained transparent start="[^\\]\(\\\\\)*\[\zs\^\=\]\=" skip="\\\\\|\\\]" end="]"me=e-1
++syn match vimPatSepErr contained "\\)"
++syn match vimPatSep contained "\\|"
++syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\]['"]" contains=@vimStringGroup
++syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline
++syn match vimNotPatSep contained "\\\\"
++syn cluster vimStringGroup contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
++syn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+ contains=@vimStringGroup
++syn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]'+lc=1 end=+'+
++syn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup
++syn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@vimStringGroup
++syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup
++syn match vimString contained +"[^"]*\\$+ skipnl nextgroup=vimStringCont
++syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+
+
+ " Substitutions: {{{2
+ " =============
+-syn cluster vimSubstList contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation
+-syn cluster vimSubstRepList contains=vimSubstSubstr,vimSubstTwoBS,vimNotation
+-syn cluster vimSubstList add=vimCollection
+-syn match vimSubst "\(:\+\s*\|^\s*\||\s*\)\<s\%[ubstitute][:[:alpha:]]\@!" nextgroup=vimSubstPat
+-syn match vimSubst "s\%[ubstitute][:[:alpha:]]\@!" nextgroup=vimSubstPat contained
+-syn match vimSubst "/\zss\%[ubstitute]\ze/" nextgroup=vimSubstPat
+-syn match vimSubst1 contained "s\%[ubstitute]\>" nextgroup=vimSubstPat
+-syn region vimSubstPat contained matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1 contains=@vimSubstList nextgroup=vimSubstRep4 oneline
+-syn region vimSubstRep4 contained matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList nextgroup=vimSubstFlagErr oneline
+-syn region vimCollection contained transparent start="\\\@<!\[" skip="\\\[" end="\]" contains=vimCollClass
+-syn match vimCollClassErr contained "\[:.\{-\}:\]"
+-syn match vimCollClass contained transparent "\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]"
+-syn match vimSubstSubstr contained "\\z\=\d"
+-syn match vimSubstTwoBS contained "\\\\"
+-syn match vimSubstFlagErr contained "[^< \t\r|]\+" contains=vimSubstFlags
+-syn match vimSubstFlags contained "[&cegiIpr]\+"
++syn cluster vimSubstList contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation
++syn cluster vimSubstRepList contains=vimSubstSubstr,vimSubstTwoBS,vimNotation
++syn cluster vimSubstList add=vimCollection
++syn match vimSubst "\(:\+\s*\|^\s*\||\s*\)\<s\%[ubstitute][:[:alpha:]]\@!" nextgroup=vimSubstPat
++syn match vimSubst "s\%[ubstitute][:#[:alpha:]]\@!" nextgroup=vimSubstPat contained
++syn match vimSubst "/\zss\%[ubstitute]\ze/" nextgroup=vimSubstPat
++syn match vimSubst1 contained "s\%[ubstitute]\>" nextgroup=vimSubstPat
++syn region vimSubstPat contained matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1 contains=@vimSubstList nextgroup=vimSubstRep4 oneline
++syn region vimSubstRep4 contained matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList nextgroup=vimSubstFlagErr oneline
++syn region vimCollection contained transparent start="\\\@<!\[" skip="\\\[" end="\]" contains=vimCollClass
++syn match vimCollClassErr contained "\[:.\{-\}:\]"
++syn match vimCollClass contained transparent "\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]"
++syn match vimSubstSubstr contained "\\z\=\d"
++syn match vimSubstTwoBS contained "\\\\"
++syn match vimSubstFlagErr contained "[^< \t\r|]\+" contains=vimSubstFlags
++syn match vimSubstFlags contained "[&cegiIpr]\+"
+
+ " 'String': {{{2
+-syn match vimString "[^(,]'[^']\{-}\zs'"
++syn match vimString "[^(,]'[^']\{-}\zs'"
+
+ " Marks, Registers, Addresses, Filters: {{{2
+-syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst
+-syn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst
+-syn match vimMark ",\zs'[<>]\ze" nextgroup=vimOper,vimMarkNumber,vimSubst
+-syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst
+-syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst
+-syn match vimMarkNumber "[-+]\d\+" nextgroup=vimSubst contained contains=vimOper
+-syn match vimPlainMark contained "'[a-zA-Z0-9]"
+-
+-syn match vimRegister '[^,;]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":]'
+-syn match vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]'
+-syn match vimRegister '\<normal\s\+\zs"[a-zA-Z0-9]'
+-syn match vimRegister '@"'
+-syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]'
++syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst
++syn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst
++syn match vimMark ",\zs'[<>]\ze" nextgroup=vimOper,vimMarkNumber,vimSubst
++syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst
++syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst
++syn match vimMarkNumber "[-+]\d\+" nextgroup=vimSubst contained contains=vimOper
++syn match vimPlainMark contained "'[a-zA-Z0-9]"
++
++syn match vimRegister '[^,;[{]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":]'
++syn match vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]'
++syn match vimRegister '\<normal\s\+\zs"[a-zA-Z0-9]'
++syn match vimRegister '@"'
++syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]'
+
+-syn match vimAddress ",\zs[.$]" skipwhite nextgroup=vimSubst1
+-syn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1
++syn match vimAddress ",\zs[.$]" skipwhite nextgroup=vimSubst1
++syn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1
+
+-syn match vimFilter contained "^!.\{-}\(|\|$\)" contains=vimSpecFile
+-syn match vimFilter contained "\A!.\{-}\(|\|$\)"ms=s+1 contains=vimSpecFile
++syn match vimFilter contained "^!.\{-}\(|\|$\)" contains=vimSpecFile
++syn match vimFilter contained "\A!.\{-}\(|\|$\)"ms=s+1 contains=vimSpecFile
+
+ " Complex repeats (:h complex-repeat) {{{2
+-"syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]'lc=1
+-"syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\)'
++syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]'lc=1
++syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\)'
+
+ " Set command and associated set-options (vimOptions) with comment {{{2
+-syn region vimSet matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|set\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod
+-syn region vimSetEqual contained start="=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation oneline
+-syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar
+-syn match vimSetSep contained "[,:]"
+-syn match vimSetMod contained "&vim\|[!&]\|all&"
++syn region vimSet matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|set\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod
++syn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation oneline
++syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar
++syn match vimSetSep contained "[,:]"
++syn match vimSetMod contained "&vim\=\|[!&?<]\|all&"
+
+ " Let {{{2
+ " ===
+-syn keyword vimLet let unl[et] skipwhite nextgroup=vimVar
++syn keyword vimLet let unl[et] skipwhite nextgroup=vimVar,vimFuncVar
+
+ " Abbreviations {{{2
+ " =============
+@@ -298,232 +297,235 @@
+
+ " Autocmd {{{2
+ " =======
+-syn match vimAutoEventList contained "\(!\s\+\)\=\(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace
+-syn match vimAutoCmdSpace contained "\s\+" nextgroup=vimAutoCmdSfxList
+-syn match vimAutoCmdSfxList contained "\S*"
+-syn keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList
++syn match vimAutoEventList contained "\(!\s\+\)\=\(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace
++syn match vimAutoCmdSpace contained "\s\+" nextgroup=vimAutoCmdSfxList
++syn match vimAutoCmdSfxList contained "\S*"
++syn keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList
+
+ " Echo and Execute -- prefer strings! {{{2
+ " ================
+-syn region vimEcho oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimString,varVar
+-syn region vimExecute oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimIsCommand,vimString,vimOper,vimVar,vimNotation,vimOperParen
+-syn match vimEchoHL "echohl\=" skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone
++syn region vimEcho oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimFuncVar,vimString,vimVar
++syn region vimExecute oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimFuncVar,vimIsCommand,vimOper,vimNotation,vimOperParen,vimString,vimVar
++syn match vimEchoHL "echohl\=" skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone
+ syn case ignore
+-syn keyword vimEchoHLNone none
++syn keyword vimEchoHLNone none
+ syn case match
+
+ " Maps {{{2
+ " ====
+-syn match vimMap "\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs
+-syn keyword vimMap cm[ap] cno[remap] im[ap] ino[remap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] snor[emap] vm[ap] vn[oremap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
+-syn keyword vimMap mapc[lear]
+-syn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
+-syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs
+-syn match vimMapMod contained "\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
+-syn match vimMapRhs contained ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend
+-syn match vimMapRhsExtend contained "^\s*\\.*$" contains=vimContinue
++syn match vimMap "\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs
++syn keyword vimMap cm[ap] cno[remap] im[ap] ino[remap] lm[ap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] smap snor[emap] vm[ap] vn[oremap] xm[ap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
++syn keyword vimMap mapc[lear]
++syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
++syn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
++syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs
++syn match vimMapMod contained "\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
++syn match vimMapRhs contained ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend
++syn match vimMapRhsExtend contained "^\s*\\.*$" contains=vimContinue
+ syn case ignore
+-syn keyword vimMapModKey contained buffer expr leader localleader plug script sid silent unique
++syn keyword vimMapModKey contained buffer expr leader localleader plug script sid silent unique
+ syn case match
+
+ " Menus {{{2
+ " =====
+-syn cluster vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod
+-syn keyword vimCommand am[enu] an[oremenu] aun[menu] cme[nu] cnoreme[nu] cunme[nu] ime[nu] inoreme[nu] iunme[nu] me[nu] nme[nu] nnoreme[nu] noreme[nu] nunme[nu] ome[nu] onoreme[nu] ounme[nu] unme[nu] vme[nu] vnoreme[nu] vunme[nu] skipwhite nextgroup=@vimMenuList
+-syn match vimMenuName "[^ \t\\<]\+" contained nextgroup=vimMenuNameMore,vimMenuMap
+-syn match vimMenuPriority "\d\+\(\.\d\+\)*" contained skipwhite nextgroup=vimMenuName
+-syn match vimMenuNameMore "\c\\\s\|<tab>\|\\\." contained nextgroup=vimMenuName,vimMenuNameMore contains=vimNotation
+-syn match vimMenuMod contained "\c<\(script\|silent\)\+>" skipwhite contains=vimMapModKey,vimMapModErr nextgroup=@vimMenuList
+-syn match vimMenuMap "\s" contained skipwhite nextgroup=vimMenuRhs
+-syn match vimMenuRhs ".*$" contained contains=vimString,vimComment,vimIsCommand
+-syn match vimMenuBang "!" contained skipwhite nextgroup=@vimMenuList
++syn cluster vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod
++syn keyword vimCommand am[enu] an[oremenu] aun[menu] cme[nu] cnoreme[nu] cunme[nu] ime[nu] inoreme[nu] iunme[nu] me[nu] nme[nu] nnoreme[nu] noreme[nu] nunme[nu] ome[nu] onoreme[nu] ounme[nu] unme[nu] vme[nu] vnoreme[nu] vunme[nu] skipwhite nextgroup=@vimMenuList
++syn match vimMenuName "[^ \t\\<]\+" contained nextgroup=vimMenuNameMore,vimMenuMap
++syn match vimMenuPriority "\d\+\(\.\d\+\)*" contained skipwhite nextgroup=vimMenuName
++syn match vimMenuNameMore "\c\\\s\|<tab>\|\\\." contained nextgroup=vimMenuName,vimMenuNameMore contains=vimNotation
++syn match vimMenuMod contained "\c<\(script\|silent\)\+>" skipwhite contains=vimMapModKey,vimMapModErr nextgroup=@vimMenuList
++syn match vimMenuMap "\s" contained skipwhite nextgroup=vimMenuRhs
++syn match vimMenuRhs ".*$" contained contains=vimString,vimComment,vimIsCommand
++syn match vimMenuBang "!" contained skipwhite nextgroup=@vimMenuList
+
+ " Angle-Bracket Notation (tnx to Michael Geddes) {{{2
+ " ======================
+ syn case ignore
+-syn match vimNotation "\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|space\|k\=\(page\)\=\(\|down\|up\)\)>" contains=vimBracket
+-syn match vimNotation "\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>" contains=vimBracket
+-syn match vimNotation "\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>" contains=vimBracket
+-syn match vimNotation '\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket
+-syn match vimNotation '\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|f-args\|lt\)>' contains=vimBracket
+-syn match vimNotation "\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>" contains=vimBracket
+-syn match vimBracket contained "[\\<>]"
++syn match vimNotation "\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|space\|k\=\(page\)\=\(\|down\|up\)\)>" contains=vimBracket
++syn match vimNotation "\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>" contains=vimBracket
++syn match vimNotation "\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>" contains=vimBracket
++syn match vimNotation '\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket
++syn match vimNotation '\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|f-args\|lt\)>' contains=vimBracket
++syn match vimNotation "\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>" contains=vimBracket
++syn match vimBracket contained "[\\<>]"
+ syn case match
+
+ " User Function Highlighting {{{2
+ " (following Gautam Iyer's suggestion)
+ " ==========================
+-syn match vimFunc "\%(\%([gGsS]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncName,vimUserFunc,vimExecute
+-syn match vimUserFunc contained "\%(\%([gGsS]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation
+-syn match vimNotFunc "\<if\>\|\<el\%[seif]\>"
++syn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncName,vimUserFunc,vimExecute
++syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation
++syn match vimNotFunc "\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>"
+
+ " Errors And Warnings: {{{2
+ " ====================
+ if !exists("g:vimsyn_noerror")
+- syn match vimElseIfErr "\<else\s\+if\>"
+- syn match vimBufnrWarn /\<bufnr\s*(\s*["']\.['"]\s*)/
++ syn match vimFunctionError "\s\zs[a-z0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
++" syn match vimFunctionError "\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)[0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
++ syn match vimElseIfErr "\<else\s\+if\>"
++ syn match vimBufnrWarn /\<bufnr\s*(\s*["']\.['"]\s*)/
+ endif
+
+ " Norm {{{2
+ " ====
+-syn match vimNorm "\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds
+-syn match vimNormCmds contained ".*$"
++syn match vimNorm "\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds
++syn match vimNormCmds contained ".*$"
+
+ " Syntax {{{2
+ "=======
+-syn match vimGroupList contained "@\=[^ \t,]*" contains=vimGroupSpecial,vimPatSep
+-syn match vimGroupList contained "@\=[^ \t,]*," nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep
+-syn keyword vimGroupSpecial contained ALL ALLBUT
+-if !exists("g:vimsyn_noerror")
+- syn match vimSynError contained "\i\+"
+- syn match vimSynError contained "\i\+=" nextgroup=vimGroupList
+-endif
+-syn match vimSynContains contained "\<contain\(s\|edin\)=" nextgroup=vimGroupList
+-syn match vimSynKeyContainedin contained "\<containedin=" nextgroup=vimGroupList
+-syn match vimSynNextgroup contained "nextgroup=" nextgroup=vimGroupList
++syn match vimGroupList contained "@\=[^ \t,]*" contains=vimGroupSpecial,vimPatSep
++syn match vimGroupList contained "@\=[^ \t,]*," nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep
++syn keyword vimGroupSpecial contained ALL ALLBUT CONTAINED TOP
++if !exists("g:vimsyn_noerror")
++ syn match vimSynError contained "\i\+"
++ syn match vimSynError contained "\i\+=" nextgroup=vimGroupList
++endif
++syn match vimSynContains contained "\<contain\(s\|edin\)=" nextgroup=vimGroupList
++syn match vimSynKeyContainedin contained "\<containedin=" nextgroup=vimGroupList
++syn match vimSynNextgroup contained "nextgroup=" nextgroup=vimGroupList
+
+-syn match vimSyntax "\<sy\%[ntax]\>" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
+-syn match vimAuSyntax contained "\s+sy\%[ntax]" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
++syn match vimSyntax "\<sy\%[ntax]\>" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
++syn match vimAuSyntax contained "\s+sy\%[ntax]" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
+
+ " Syntax: case {{{2
+-syn keyword vimSynType contained case skipwhite nextgroup=vimSynCase,vimSynCaseError
++syn keyword vimSynType contained case skipwhite nextgroup=vimSynCase,vimSynCaseError
+ if !exists("g:vimsyn_noerror")
+- syn match vimSynCaseError contained "\i\+"
++ syn match vimSynCaseError contained "\i\+"
+ endif
+-syn keyword vimSynCase contained ignore match
++syn keyword vimSynCase contained ignore match
+
+ " Syntax: clear {{{2
+-syn keyword vimSynType contained clear skipwhite nextgroup=vimGroupList
++syn keyword vimSynType contained clear skipwhite nextgroup=vimGroupList
+
+ " Syntax: cluster {{{2
+-syn keyword vimSynType contained cluster skipwhite nextgroup=vimClusterName
+-syn region vimClusterName contained matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
+-syn match vimGroupAdd contained "add=" nextgroup=vimGroupList
+-syn match vimGroupRem contained "remove=" nextgroup=vimGroupList
++syn keyword vimSynType contained cluster skipwhite nextgroup=vimClusterName
++syn region vimClusterName contained matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
++syn match vimGroupAdd contained "add=" nextgroup=vimGroupList
++syn match vimGroupRem contained "remove=" nextgroup=vimGroupList
+
+ " Syntax: include {{{2
+-syn keyword vimSynType contained include skipwhite nextgroup=vimGroupList
++syn keyword vimSynType contained include skipwhite nextgroup=vimGroupList
+
+ " Syntax: keyword {{{2
+-syn cluster vimSynKeyGroup contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
+-syn keyword vimSynType contained keyword skipwhite nextgroup=vimSynKeyRegion
+-syn region vimSynKeyRegion contained oneline keepend matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
+-syn match vimSynKeyOpt contained "\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
++syn cluster vimSynKeyGroup contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
++syn keyword vimSynType contained keyword skipwhite nextgroup=vimSynKeyRegion
++syn region vimSynKeyRegion contained oneline keepend matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
++syn match vimSynKeyOpt contained "\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
+
+ " Syntax: match {{{2
+-syn cluster vimSynMtchGroup contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation
+-syn keyword vimSynType contained match skipwhite nextgroup=vimSynMatchRegion
+-syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
+-syn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
++syn cluster vimSynMtchGroup contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation
++syn keyword vimSynType contained match skipwhite nextgroup=vimSynMatchRegion
++syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
++syn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
+ if has("conceal")
+- syn match vimSynMtchOpt contained "\<cchar=" nextgroup=VimSynMtchCchar
+- syn match vimSynMtchCchar contained "."
++ syn match vimSynMtchOpt contained "\<cchar=" nextgroup=VimSynMtchCchar
++ syn match vimSynMtchCchar contained "\S"
+ endif
+
+ " Syntax: off and on {{{2
+-syn keyword vimSynType contained enable list manual off on reset
++syn keyword vimSynType contained enable list manual off on reset
+
+ " Syntax: region {{{2
+-syn cluster vimSynRegPatGroup contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation
+-syn cluster vimSynRegGroup contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
+-syn keyword vimSynType contained region skipwhite nextgroup=vimSynRegion
+-syn region vimSynRegion contained keepend matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup
+-syn match vimSynRegOpt contained "\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"
+-syn match vimSynReg contained "\(start\|skip\|end\)="he=e-1 nextgroup=vimSynRegPat
+-syn match vimSynMtchGrp contained "matchgroup=" nextgroup=vimGroup,vimHLGroup
+-syn region vimSynRegPat contained extend start="\z([-`~!@#$%^&*_=+;:'",./?]\)" skip="\\\\\|\\\z1" end="\z1" contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg
+-syn match vimSynPatMod contained "\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\="
+-syn match vimSynPatMod contained "\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod
+-syn match vimSynPatMod contained "lc=\d\+"
+-syn match vimSynPatMod contained "lc=\d\+," nextgroup=vimSynPatMod
+-syn region vimSynPatRange contained start="\[" skip="\\\\\|\\]" end="]"
+-syn match vimSynNotPatRange contained "\\\\\|\\\["
+-syn match vimMtchComment contained '"[^"]\+$'
++syn cluster vimSynRegPatGroup contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation
++syn cluster vimSynRegGroup contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
++syn keyword vimSynType contained region skipwhite nextgroup=vimSynRegion
++syn region vimSynRegion contained keepend matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup
++syn match vimSynRegOpt contained "\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"
++syn match vimSynReg contained "\(start\|skip\|end\)="he=e-1 nextgroup=vimSynRegPat
++syn match vimSynMtchGrp contained "matchgroup=" nextgroup=vimGroup,vimHLGroup
++syn region vimSynRegPat contained extend start="\z([-`~!@#$%^&*_=+;:'",./?]\)" skip="\\\\\|\\\z1" end="\z1" contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg
++syn match vimSynPatMod contained "\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\="
++syn match vimSynPatMod contained "\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod
++syn match vimSynPatMod contained "lc=\d\+"
++syn match vimSynPatMod contained "lc=\d\+," nextgroup=vimSynPatMod
++syn region vimSynPatRange contained start="\[" skip="\\\\\|\\]" end="]"
++syn match vimSynNotPatRange contained "\\\\\|\\\["
++syn match vimMtchComment contained '"[^"]\+$'
+
+ " Syntax: sync {{{2
+ " ============
+ syn keyword vimSynType contained sync skipwhite nextgroup=vimSyncC,vimSyncLines,vimSyncMatch,vimSyncError,vimSyncLinebreak,vimSyncLinecont,vimSyncRegion
+ if !exists("g:vimsyn_noerror")
+- syn match vimSyncError contained "\i\+"
++ syn match vimSyncError contained "\i\+"
+ endif
+-syn keyword vimSyncC contained ccomment clear fromstart
+-syn keyword vimSyncMatch contained match skipwhite nextgroup=vimSyncGroupName
+-syn keyword vimSyncRegion contained region skipwhite nextgroup=vimSynReg
+-syn match vimSyncLinebreak contained "\<linebreaks=" skipwhite nextgroup=vimNumber
+-syn keyword vimSyncLinecont contained linecont skipwhite nextgroup=vimSynRegPat
+-syn match vimSyncLines contained "\(min\|max\)\=lines=" nextgroup=vimNumber
+-syn match vimSyncGroupName contained "\k\+" skipwhite nextgroup=vimSyncKey
+-syn match vimSyncKey contained "\<groupthere\|grouphere\>" skipwhite nextgroup=vimSyncGroup
+-syn match vimSyncGroup contained "\k\+" skipwhite nextgroup=vimSynRegPat,vimSyncNone
+-syn keyword vimSyncNone contained NONE
++syn keyword vimSyncC contained ccomment clear fromstart
++syn keyword vimSyncMatch contained match skipwhite nextgroup=vimSyncGroupName
++syn keyword vimSyncRegion contained region skipwhite nextgroup=vimSynReg
++syn match vimSyncLinebreak contained "\<linebreaks=" skipwhite nextgroup=vimNumber
++syn keyword vimSyncLinecont contained linecont skipwhite nextgroup=vimSynRegPat
++syn match vimSyncLines contained "\(min\|max\)\=lines=" nextgroup=vimNumber
++syn match vimSyncGroupName contained "\k\+" skipwhite nextgroup=vimSyncKey
++syn match vimSyncKey contained "\<groupthere\|grouphere\>" skipwhite nextgroup=vimSyncGroup
++syn match vimSyncGroup contained "\k\+" skipwhite nextgroup=vimSynRegPat,vimSyncNone
++syn keyword vimSyncNone contained NONE
+
+ " Additional IsCommand, here by reasons of precedence {{{2
+ " ====================
+-syn match vimIsCommand "<Bar>\s*\a\+" transparent contains=vimCommand,vimNotation
++syn match vimIsCommand "<Bar>\s*\a\+" transparent contains=vimCommand,vimNotation
+
+ " Highlighting {{{2
+ " ============
+-syn cluster vimHighlightCluster contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment
+-syn match vimHighlight "\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster
+-syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster
+-
+-syn match vimHiGroup contained "\i\+"
++syn cluster vimHighlightCluster contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment
++syn match vimHighlight "\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster
++syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster
++
++syn match vimHiGroup contained "\i\+"
+ syn case ignore
+-syn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl
+-syn keyword vimFgBgAttrib contained none bg background fg foreground
++syn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl
++syn keyword vimFgBgAttrib contained none bg background fg foreground
+ syn case match
+-syn match vimHiAttribList contained "\i\+" contains=vimHiAttrib
+-syn match vimHiAttribList contained "\i\+,"he=e-1 contains=vimHiAttrib nextgroup=vimHiAttribList
++syn match vimHiAttribList contained "\i\+" contains=vimHiAttrib
++syn match vimHiAttribList contained "\i\+,"he=e-1 contains=vimHiAttrib nextgroup=vimHiAttribList
+ syn case ignore
+-syn keyword vimHiCtermColor contained black blue brown cyan darkBlue darkcyan darkgray darkgreen darkgrey darkmagenta darkred darkyellow gray green grey lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightred magenta red white yellow
++syn keyword vimHiCtermColor contained black blue brown cyan darkBlue darkcyan darkgray darkgreen darkgrey darkmagenta darkred darkyellow gray green grey lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightred magenta red white yellow
+
+ syn case match
+-syn match vimHiFontname contained "[a-zA-Z\-*]\+"
+-syn match vimHiGuiFontname contained "'[a-zA-Z\-* ]\+'"
+-syn match vimHiGuiRgb contained "#\x\{6}"
++syn match vimHiFontname contained "[a-zA-Z\-*]\+"
++syn match vimHiGuiFontname contained "'[a-zA-Z\-* ]\+'"
++syn match vimHiGuiRgb contained "#\x\{6}"
+ if !exists("g:vimsyn_noerror")
+- syn match vimHiCtermError contained "[^0-9]\i*"
++ syn match vimHiCtermError contained "[^0-9]\i*"
+ endif
+
+ " Highlighting: hi group key=arg ... {{{2
+-syn cluster vimHiCluster contains=vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation
+-syn region vimHiKeyList contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||" contains=@vimHiCluster
++syn cluster vimHiCluster contains=vimGroup,vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation
++syn region vimHiKeyList contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||" contains=@vimHiCluster
+ if !exists("g:vimsyn_noerror")
+- syn match vimHiKeyError contained "\i\+="he=e-1
++ syn match vimHiKeyError contained "\i\+="he=e-1
+ endif
+-syn match vimHiTerm contained "\cterm="he=e-1 nextgroup=vimHiAttribList
+-syn match vimHiStartStop contained "\c\(start\|stop\)="he=e-1 nextgroup=vimHiTermcap,vimOption
+-syn match vimHiCTerm contained "\ccterm="he=e-1 nextgroup=vimHiAttribList
+-syn match vimHiCtermFgBg contained "\ccterm[fb]g="he=e-1 nextgroup=vimNumber,vimHiCtermColor,vimFgBgAttrib,vimHiCtermError
+-syn match vimHiGui contained "\cgui="he=e-1 nextgroup=vimHiAttribList
+-syn match vimHiGuiFont contained "\cfont="he=e-1 nextgroup=vimHiFontname
+-syn match vimHiGuiFgBg contained "\cgui\%([fb]g\|sp\)="he=e-1 nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib
+-syn match vimHiTermcap contained "\S\+" contains=vimNotation
++syn match vimHiTerm contained "\cterm="he=e-1 nextgroup=vimHiAttribList
++syn match vimHiStartStop contained "\c\(start\|stop\)="he=e-1 nextgroup=vimHiTermcap,vimOption
++syn match vimHiCTerm contained "\ccterm="he=e-1 nextgroup=vimHiAttribList
++syn match vimHiCtermFgBg contained "\ccterm[fb]g="he=e-1 nextgroup=vimNumber,vimHiCtermColor,vimFgBgAttrib,vimHiCtermError
++syn match vimHiGui contained "\cgui="he=e-1 nextgroup=vimHiAttribList
++syn match vimHiGuiFont contained "\cfont="he=e-1 nextgroup=vimHiFontname
++syn match vimHiGuiFgBg contained "\cgui\%([fb]g\|sp\)="he=e-1 nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib
++syn match vimHiTermcap contained "\S\+" contains=vimNotation
+
+ " Highlight: clear {{{2
+-syn keyword vimHiClear contained clear nextgroup=vimHiGroup
++syn keyword vimHiClear contained clear nextgroup=vimHiGroup
+
+ " Highlight: link {{{2
+-syn region vimHiLink contained oneline matchgroup=vimCommand start="\<\(def\s\+\)\=link\>\|\<def\>" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
++syn region vimHiLink contained oneline matchgroup=vimCommand start="\<\(def\s\+\)\=link\>\|\<def\>" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
+
+ " Control Characters {{{2
+ " ==================
+-syn match vimCtrlChar "[- -]"
++syn match vimCtrlChar "[- -]"
+
+ " Beginners - Patterns that involve ^ {{{2
+ " =========
+-syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle
+-syn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
+-syn match vimContinue "^\s*\\"
+-syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
+-syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained
++syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle
++syn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
++syn match vimContinue "^\s*\\"
++syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
++syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained
+
+ " Searches And Globals: {{{2
+ " ====================
+-syn match vimSearch '^\s*[/?].*' contains=vimSearchDelim
+-syn match vimSearchDelim '^\s*\zs[/?]\|[/?]$' contained
+-syn region vimGlobal matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/'
+-syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'
++syn match vimSearch '^\s*[/?].*' contains=vimSearchDelim
++syn match vimSearchDelim '^\s*\zs[/?]\|[/?]$' contained
++syn region vimGlobal matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/'
++syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'
+
+ " Scripts : perl,ruby : Benoit Cerrina {{{2
+ " ======= python,tcl: Johannes Zellner
+@@ -541,94 +543,127 @@
+ endif
+
+ " [-- perl --] {{{3
+-if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(expand("<sfile>:p:h")."/perl.vim")
++let s:perlpath= expand("<sfile>:p:h")."/perl.vim"
++if !filereadable(s:perlpath)
++ let s:perlpath= globpath(&rtp,"syntax/perl.vim")
++endif
++if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath)
+ unlet! b:current_syntax
+- syn include @vimPerlScript <sfile>:p:h/perl.vim
++ exe "syn include @vimPerlScript ".s:perlpath
+ if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'p'
+- syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript
+- syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript
++ syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript
++ syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript
+ else
+- syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript
+- syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript
++ syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript
++ syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript
+ endif
++ syn cluster vimFuncBodyList add=vimPerlRegion
+ else
+ syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+
+ syn region vimEmbedError start=+pe\%[rl]\s*<<\s*$+ end=+\.$+
+ endif
++unlet s:perlpath
+
+ " [-- ruby --] {{{3
+-if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(expand("<sfile>:p:h")."/ruby.vim")
++let s:rubypath= expand("<sfile>:p:h")."/ruby.vim"
++if !filereadable(s:rubypath)
++ let s:rubypath= globpath(&rtp,"syntax/ruby.vim")
++endif
++if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath)
+ unlet! b:current_syntax
+- syn include @vimRubyScript <sfile>:p:h/ruby.vim
++ exe "syn include @vimRubyScript ".s:rubypath
+ if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'r'
+- syn region vimRubyRegion fold matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript
++ syn region vimRubyRegion fold matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript
+ else
+- syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript
++ syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript
+ endif
+- syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+ contains=@vimRubyScript
++ syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+ contains=@vimRubyScript
++ syn cluster vimFuncBodyList add=vimRubyRegion
+ else
+ syn region vimEmbedError start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+
+ syn region vimEmbedError start=+rub[y]\s*<<\s*$+ end=+\.$+
+ endif
++unlet s:rubypath
+
+ " [-- python --] {{{3
+-if (g:vimsyn_embed =~ 'P' && has("python")) && filereadable(expand("<sfile>:p:h")."/python.vim")
++let s:pythonpath= expand("<sfile>:p:h")."/python.vim"
++if !filereadable(s:pythonpath)
++ let s:pythonpath= globpath(&rtp,"syntax/python.vim")
++endif
++if (g:vimsyn_embed =~ 'P' && has("python")) && filereadable(s:pythonpath)
+ unlet! b:current_syntax
+- syn include @vimPythonScript <sfile>:p:h/python.vim
++ exe "syn include @vimPythonScript ".s:pythonpath
+ if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P'
+- syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
+- syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
++ syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
++ syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
+ else
+- syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
+- syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
++ syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
++ syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
+ endif
++ syn cluster vimFuncBodyList add=vimPythonRegion
+ else
+ syn region vimEmbedError start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+
+ syn region vimEmbedError start=+py\%[thon]\s*<<\s*$+ end=+\.$+
+ endif
++unlet s:pythonpath
+
+ " [-- tcl --] {{{3
+ if has("win32") || has("win95") || has("win64") || has("win16")
+ " apparently has("tcl") has been hanging vim on some windows systems with cygwin
+- let trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
++ let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
+ else
+- let trytcl= 1
++ let s:trytcl= 1
+ endif
+-if trytcl
+- if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(expand("<sfile>:p:h")."/tcl.vim")
++if s:trytcl
++ let s:tclpath= expand("<sfile>:p:h")."/tcl.vim"
++ if !filereadable(s:tclpath)
++ let s:tclpath= globpath(&rtp,"syntax/tcl.vim")
++ endif
++ if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath)
+ unlet! b:current_syntax
+- syn include @vimTclScript <sfile>:p:h/tcl.vim
++ exe "syn include @vimTclScript ".s:tclpath
+ if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't'
+- syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
+- syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
++ syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
++ syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
+ else
+- syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
+- syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
++ syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
++ syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
+ endif
++ syn cluster vimFuncBodyList add=vimTclScript
++ else
++ syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
++ syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
+ endif
++ unlet s:tclpath
+ else
+ syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
+ syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
+ endif
+-unlet trytcl
++unlet s:trytcl
+
+ " [-- mzscheme --] {{{3
+-if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(expand("<sfile>:p:h")."/scheme.vim")
++let s:mzschemepath= expand("<sfile>:p:h")."/scheme.vim"
++if !filereadable(s:mzschemepath)
++ let s:mzschemepath= globpath(&rtp,"syntax/scheme.vim")
++endif
++if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(s:mzschemepath)
+ unlet! b:current_syntax
+ let iskKeep= &isk
+- syn include @vimMzSchemeScript <sfile>:p:h/scheme.vim
++ exe "syn include @vimMzSchemeScript ".s:mzschemepath
+ let &isk= iskKeep
+ if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'm'
+- syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript
+- syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript
++ syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript
++ syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript
+ else
+- syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript
+- syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript
++ syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript
++ syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript
+ endif
++ syn cluster vimFuncBodyList add=vimMzSchemeRegion
+ else
+ syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+
+ syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+
+ endif
++unlet s:mzschemepath
+
+ " Synchronize (speed) {{{2
+ "============
+@@ -643,6 +678,7 @@
+ syn sync linecont "^\s\+\\"
+ syn sync match vimAugroupSyncA groupthere NONE "\<aug\%[roup]\>\s\+[eE][nN][dD]"
+
++" ====================
+ " Highlighting Settings {{{2
+ " ====================
+
+@@ -709,15 +745,15 @@
+ hi def link vimMenuNameMore vimMenuName
+ hi def link vimMtchComment vimComment
+ hi def link vimNorm vimCommand
++hi def link vimNotFunc vimCommand
+ hi def link vimNotPatSep vimString
+-hi def link vimPatSepR vimPatSep
+-hi def link vimPatSepZ vimPatSep
+ hi def link vimPatSepErr vimPatSep
++hi def link vimPatSepR vimPatSep
+ hi def link vimPatSepZone vimString
++hi def link vimPatSepZ vimPatSep
+ hi def link vimPlainMark vimMark
+ hi def link vimPlainRegister vimRegister
+ hi def link vimSearch vimString
+-hi def link vimSearchDelim Statement
+ hi def link vimSetMod vimOption
+ hi def link vimSetString vimString
+ hi def link vimSpecFileMod vimSpecFile
+@@ -738,11 +774,11 @@
+ hi def link vimSynRegPat vimString
+ hi def link vimSyntax vimCommand
+ hi def link vimSynType vimSpecial
++hi def link vimUnmap vimMap
+ hi def link vimUserAttrbCmplt vimSpecial
+ hi def link vimUserAttrbKey vimOption
+ hi def link vimUserAttrb vimSpecial
+ hi def link vimUserCommand vimCommand
+-hi def link vimUserFunc Normal
+
+ hi def link vimAutoEvent Type
+ hi def link vimBracket Delimiter
+@@ -759,24 +795,25 @@
+ hi def link vimFuncName Function
+ hi def link vimFuncSID Special
+ hi def link vimFuncVar Identifier
+-hi def link vimGroup Type
+ hi def link vimGroupSpecial Special
+-hi def link vimHLMod PreProc
++hi def link vimGroup Type
+ hi def link vimHiAttrib PreProc
+ hi def link vimHiTerm Type
++hi def link vimHLMod PreProc
+ hi def link vimKeyword Statement
+ hi def link vimMark Number
+ hi def link vimMenuName PreProc
+ hi def link vimNotation Special
+-hi def link vimNotFunc vimCommand
+ hi def link vimNumber Number
++hi def link vimOperError Error
+ hi def link vimOper Operator
+ hi def link vimOption PreProc
+-hi def link vimOperError Error
++hi def link vimParenSep Delimiter
+ hi def link vimPatSep SpecialChar
+ hi def link vimPattern Type
+ hi def link vimRegister SpecialChar
+ hi def link vimScriptDelim Comment
++hi def link vimSearchDelim Statement
+ hi def link vimSep Delimiter
+ hi def link vimSetSep Statement
+ hi def link vimSpecFile Identifier
+@@ -786,18 +823,19 @@
+ hi def link vimSubstDelim Delimiter
+ hi def link vimSubstFlags Special
+ hi def link vimSubstSubstr SpecialChar
+-hi def link vimSynCase Type
+ hi def link vimSynCaseError Error
+-hi def link vimSynError Error
+-hi def link vimSynOption Special
+-hi def link vimSynReg Type
++hi def link vimSynCase Type
+ hi def link vimSyncC Type
+ hi def link vimSyncError Error
+ hi def link vimSyncKey Type
+ hi def link vimSyncNone Type
++hi def link vimSynError Error
++hi def link vimSynOption Special
++hi def link vimSynReg Type
+ hi def link vimTodo Todo
+-hi def link vimUserCmdError Error
+ hi def link vimUserAttrbCmpltFunc Special
++hi def link vimUserCmdError Error
++hi def link vimUserFunc Normal
+ hi def link vimWarn WarningMsg
+
+ " Current Syntax Variable: {{{2
+diff -u -r --new-file runtime/syntax.orig/xml.vim runtime/syntax/xml.vim
+--- runtime/syntax.orig/xml.vim 2006-04-11 16:32:00.000000000 -0500
++++ runtime/syntax/xml.vim 2009-07-26 06:44:44.000000000 -0500
+@@ -3,7 +3,7 @@
+ " Maintainer: Johannes Zellner <johannes@zellner.org>
+ " Author and previous maintainer:
+ " Paul Siegmann <pauls@euronet.nl>
+-" Last Change: Mi, 13 Apr 2005 22:40:09 CEST
++" Last Change: 2009-07-13 21:26:55
+ " Filenames: *.xml
+ " $Id: xml.vim,v 1.3 2006/04/11 21:32:00 vimboss Exp $
+
+@@ -216,7 +216,7 @@
+ syn region xmlComment
+ \ start=+<!+
+ \ end=+>+
+- \ contains=xmlCommentPart,xmlCommentError
++ \ contains=xmlCommentStart,xmlCommentError
+ \ extend
+ \ fold
+
+@@ -228,11 +228,12 @@
+ syn region xmlComment
+ \ start=+<!+
+ \ end=+>+
+- \ contains=xmlCommentPart,xmlCommentError
++ \ contains=xmlCommentStart,xmlCommentError
+ \ extend
+
+ endif
+
++syn match xmlCommentStart contained "<!" nextgroup=xmlCommentPart
+ syn keyword xmlTodo contained TODO FIXME XXX
+ syn match xmlCommentError contained "[^><!]"
+ syn region xmlCommentPart
+@@ -320,6 +321,7 @@
+
+ hi def link xmlString String
+ hi def link xmlComment Comment
++hi def link xmlCommentStart xmlComment
+ hi def link xmlCommentPart Comment
+ hi def link xmlCommentError Error
+ hi def link xmlError Error
+diff -u -r --new-file runtime/syntax.orig/yacc.vim runtime/syntax/yacc.vim
+--- runtime/syntax.orig/yacc.vim 2008-03-03 14:33:51.000000000 -0600
++++ runtime/syntax/yacc.vim 2008-12-08 15:08:36.000000000 -0600
+@@ -1,95 +1,85 @@
+ " Vim syntax file
+ " Language: Yacc
+ " Maintainer: Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
+-" Last Change: Jan 09, 2008
+-" Version: 5
++" Last Change: Oct 21, 2008
++" Version: 7
+ " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
+ "
+ " Options: {{{1
+ " g:yacc_uses_cpp : if this variable exists, then C++ is loaded rather than C
+-" g:yacc_minlines : see :help :he syn-sync-minlines -- default 50
+-" g:yacc_maxlines : see :help :he syn-sync-maxlines -- default 200
+
+ " ---------------------------------------------------------------------
+-" For version 5.x: Clear all syntax items {{{1
+-" For version 6.x: Quit when a syntax file was already loaded
++" this version of syntax/yacc.vim requires 6.0 or later
+ if version < 600
+- syntax clear
+-elseif exists("b:current_syntax")
+- finish
++ finish
++endif
++if exists("b:current_syntax")
++ syntax clear
++endif
++
++" ---------------------------------------------------------------------
++" Folding Support {{{1
++if has("folding")
++ com! -nargs=+ HiFold <args> fold
++else
++ com! -nargs=+ HiFold <args>
+ endif
+
+ " ---------------------------------------------------------------------
+ " Read the C syntax to start with {{{1
+-if version >= 600
+- if exists("g:yacc_uses_cpp")
+- runtime! syntax/cpp.vim
+- else
+- runtime! syntax/c.vim
+- endif
+-elseif exists("g:yacc_uses_cpp")
+- so <sfile>:p:h/cpp.vim
++if exists("g:yacc_uses_cpp")
++ syn include @yaccCode <sfile>:p:h/cpp.vim
+ else
+- so <sfile>:p:h/c.vim
++ syn include @yaccCode <sfile>:p:h/c.vim
+ endif
+
+ " ---------------------------------------------------------------------
+-" Clusters {{{1
+-syn cluster yaccActionGroup contains=yaccDelim,cInParen,cTodo,cIncluded,yaccDelim,yaccCurlyError,yaccUnionCurly,yaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCommentStartError,cParenError
+-syn cluster yaccUnionGroup contains=yaccKey,cComment,yaccCurly,cType,cStructure,cStorageClass,yaccUnionCurly
+-
+-" ---------------------------------------------------------------------
+-" Yacc stuff {{{1
+-syn match yaccDelim "^\s*[:|;]"
+-syn match yaccOper "@\d\+"
+-
+-syn match yaccKey "^\s*%\(token\|type\|left\|right\|start\|ident\|nonassoc\)\>"
+-syn match yaccKey "\s%\(prec\|expect\)\>"
+-syn match yaccKey "\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+"
+-syn keyword yaccKeyActn yyerrok yyclearin
+-
+-syn match yaccUnionStart "^%union" skipwhite skipnl nextgroup=yaccUnion
+-syn region yaccUnion contained matchgroup=yaccCurly start="{" matchgroup=yaccCurly end="}" contains=@yaccUnionGroup
+-syn region yaccUnionCurly contained matchgroup=yaccCurly start="{" matchgroup=yaccCurly end="}" contains=@yaccUnionGroup
+-syn match yaccBrkt contained "[<>]"
+-syn match yaccType "<[a-zA-Z_][a-zA-Z0-9_]*>" contains=yaccBrkt
+-syn match yaccDefinition "^[A-Za-z][A-Za-z0-9_]*\_s*:"
+-
+-" ---------------------------------------------------------------------
+-" special Yacc separators {{{1
+-syn match yaccSectionSep "^[ \t]*%%"
+-syn match yaccSep "^[ \t]*%{"
+-syn match yaccSep "^[ \t]*%}"
++" Yacc Clusters: {{{1
++syn cluster yaccInitCluster contains=yaccKey,yaccKeyActn,yaccBrkt,yaccType,yaccString,yaccUnionStart,yaccHeader2,yaccComment
++syn cluster yaccRulesCluster contains=yaccNonterminal,yaccString
++
++" ---------------------------------------------------------------------
++" Yacc Sections: {{{1
++HiFold syn region yaccInit start='.'ms=s-1,rs=s-1 matchgroup=yaccSectionSep end='^%%$'me=e-2,re=e-2 contains=@yaccInitCluster nextgroup=yaccRules skipwhite skipempty contained
++HiFold syn region yaccInit2 start='\%^.'ms=s-1,rs=s-1 matchgroup=yaccSectionSep end='^%%$'me=e-2,re=e-2 contains=@yaccInitCluster nextgroup=yaccRules skipwhite skipempty
++HiFold syn region yaccHeader2 matchgroup=yaccSep start="^\s*\zs%{" end="^\s*%}" contains=@yaccCode nextgroup=yaccInit skipwhite skipempty contained
++HiFold syn region yaccHeader matchgroup=yaccSep start="^\s*\zs%{" end="^\s*%}" contains=@yaccCode nextgroup=yaccInit skipwhite skipempty
++HiFold syn region yaccRules matchgroup=yaccSectionSep start='^%%$' end='^%%$'me=e-2,re=e-2 contains=@yaccRulesCluster nextgroup=yaccEndCode skipwhite skipempty contained
++HiFold syn region yaccEndCode matchgroup=yaccSectionSep start='^%%$' end='\%$' contains=@yaccCode contained
++
++" ---------------------------------------------------------------------
++" Yacc Commands: {{{1
++syn match yaccDelim "[:|]" contained
++syn match yaccOper "@\d\+" contained
++
++syn match yaccKey "^\s*%\(token\|type\|left\|right\|start\|ident\|nonassoc\)\>" contained
++syn match yaccKey "\s%\(prec\|expect\)\>" contained
++syn match yaccKey "\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+" contained
++syn keyword yaccKeyActn yyerrok yyclearin contained
++
++syn match yaccUnionStart "^%union" skipwhite skipnl nextgroup=yaccUnion contained
++HiFold syn region yaccUnion matchgroup=yaccCurly start="{" matchgroup=yaccCurly end="}" contains=@yaccCode contained
++syn match yaccBrkt "[<>]" contained
++syn match yaccType "<[a-zA-Z_][a-zA-Z0-9_]*>" contains=yaccBrkt contained
++
++HiFold syn region yaccNonterminal start="^\s*\a\w*\ze\_s*\(/\*\_.\{-}\*/\)\=\_s*:" matchgroup=yaccDelim end=";" matchgroup=yaccSectionSep end='^%%$'me=e-2,re=e-2 contains=yaccAction,yaccDelim,yaccString,yaccComment contained
++syn region yaccComment start="/\*" end="\*/"
++syn match yaccString "'[^']*'" contained
++
+
+ " ---------------------------------------------------------------------
+ " I'd really like to highlight just the outer {}. Any suggestions??? {{{1
+-syn match yaccCurlyError "[{}]"
+-syn region yaccAction matchgroup=yaccCurly start="{" end="}" contains=ALLBUT,@yaccActionGroup
++syn match yaccCurlyError "[{}]"
++HiFold syn region yaccAction matchgroup=yaccCurly start="{" end="}" contains=@yaccCode contained
+
+ " ---------------------------------------------------------------------
+ " Yacc synchronization: {{{1
+-if exists("g:yacc_maxlines")
+- exe "syn sync maxlines=".g:yacc_maxlines
+-else
+- syn sync maxlines=200
+-endif
+-if exists("g:yacc_minlines")
+- exe "syn sync minlines=".g:yacc_minlines
+-else
+- syn sync minlines=50
+-endif
++syn sync fromstart
+
+ " ---------------------------------------------------------------------
+ " Define the default highlighting. {{{1
+-" For version 5.7 and earlier: only when not done already
+-" For version 5.8 and later: only when an item doesn't have highlighting yet
+-if version >= 508 || !exists("did_yacc_syn_inits")
+- if version < 508
+- let did_yacchdl_syn_inits = 1
+- command -nargs=+ HiLink hi link <args>
+- else
+- command -nargs=+ HiLink hi def link <args>
+- endif
++if !exists("did_yacc_syn_inits")
++ command -nargs=+ HiLink hi def link <args>
+
+ " Internal yacc highlighting links {{{2
+ HiLink yaccBrkt yaccStmt
+@@ -98,13 +88,15 @@
+ HiLink yaccUnionStart yaccKey
+
+ " External yacc highlighting links {{{2
++ HiLink yaccComment Comment
+ HiLink yaccCurly Delimiter
+ HiLink yaccCurlyError Error
+- HiLink yaccDefinition Function
+- HiLink yaccDelim Function
++ HiLink yaccNonterminal Function
++ HiLink yaccDelim Delimiter
+ HiLink yaccKeyActn Special
+ HiLink yaccSectionSep Todo
+ HiLink yaccSep Delimiter
++ HiLink yaccString String
+ HiLink yaccStmt Statement
+ HiLink yaccType Type
+
+@@ -113,6 +105,10 @@
+
+ delcommand HiLink
+ endif
++
++" ---------------------------------------------------------------------
++" Cleanup: {{{1
++delcommand HiFold
+ let b:current_syntax = "yacc"
+
+ " ---------------------------------------------------------------------
+diff -u -r --new-file runtime/syntax.orig/zsh.vim runtime/syntax/zsh.vim
+--- runtime/syntax.orig/zsh.vim 2008-07-18 09:48:32.000000000 -0500
++++ runtime/syntax/zsh.vim 2010-02-11 06:45:15.000000000 -0600
+@@ -1,7 +1,7 @@
+ " Vim syntax file
+ " Language: Zsh shell script
+ " Maintainer: Nikolai Weibull <now@bitwi.se>
+-" Latest Revision: 2008-07-17
++" Latest Revision: 2010-01-23
+
+ if exists("b:current_syntax")
+ finish
+@@ -14,7 +14,7 @@
+
+ syn keyword zshTodo contained TODO FIXME XXX NOTE
+
+-syn region zshComment display oneline start='\%(^\|\s\)#' end='$'
++syn region zshComment oneline start='\%(^\|\s\)#' end='$'
+ \ contains=zshTodo,@Spell
+
+ syn match zshPreProc '^\%1l#\%(!\|compdef\|autoload\).*$'
diff --git a/source/ap/vim/vim.SlackBuild b/source/ap/vim/vim.SlackBuild
index 460b07a1..15904bcd 100755
--- a/source/ap/vim/vim.SlackBuild
+++ b/source/ap/vim/vim.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,10 +24,20 @@ VIMVER=7.2
CTAGSVER=5.7
# This is the directory in the VIM source archive to cd into.
DIRVER=72
-ARCH=${ARCH:-x86_64}
-NUMJOBS=${NUMJOBS:-" -j7 "}
BUILD=${BUILD:-1}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
PYVER=$(python -V 2>&1 | cut -f 2 -d' ' | cut -f 1-2 -d.)
if [ "$ARCH" = "x86_64" ]; then
@@ -109,6 +119,21 @@ CFLAGS="$SLKCFLAGS" \
}
cd $TMP/vim$DIRVER
+
+# If there's no syntax update, create one:
+if ! ls $CWD/vim-runtime-syntax-* 1> /dev/null 2> /dev/null ; then
+ rm -rf runtime/syntax.orig
+ cp -a runtime/syntax runtime/syntax.orig
+ echo "Fetching vim syntax updates from ftp.nluug.nl..."
+ rsync -avzcP ftp.nluug.nl::Vim/runtime/syntax/ runtime/syntax/
+ diff -u -r --new-file runtime/syntax.orig runtime/syntax | gzip -9c > $CWD/vim-runtime-syntax-$(date +%Y%m%d).diff.gz
+ rm -rf runtime/syntax
+ mv runtime/syntax.orig runtime/syntax
+fi
+
+# Apply the syntax update:
+zcat $CWD/vim-runtime-syntax-*.diff.gz | patch -p0 --verbose || exit 1
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
diff --git a/source/ap/xfsdump/xfsdump.SlackBuild b/source/ap/xfsdump/xfsdump.SlackBuild
index 378d46de..f293b6a3 100755
--- a/source/ap/xfsdump/xfsdump.SlackBuild
+++ b/source/ap/xfsdump/xfsdump.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,12 +21,21 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=3.0.1
-ARCH=${ARCH:-x86_64}
+VERSION=${VERSION:-$(echo xfsdump-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-xfsdump
@@ -54,7 +63,7 @@ autoconf
./configure \
--prefix=/usr \
- --sbindir=/sbin \
+ --sbindir=/usr/sbin \
--bindir=/usr/sbin \
--enable-gettext=yes \
--mandir=/usr/man \
@@ -99,6 +108,16 @@ mkdir -p $PKG/usr/doc/xfsdump-$VERSION/html
cp -a *.gif *.html $PKG/usr/doc/xfsdump-$VERSION/html
)
+rm -f $PKG/usr/doc/xfsdump-$VERSION/CHANGES.gz
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r doc/CHANGES ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat doc/CHANGES | head -n 1000 > $DOCSDIR/CHANGES
+ touch -r doc/CHANGES $DOCSDIR/CHANGES
+fi
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/ap/xfsdump/xfsdump.destdir.diff b/source/ap/xfsdump/xfsdump.destdir.diff
index 1772465d..a42bb3a2 100644
--- a/source/ap/xfsdump/xfsdump.destdir.diff
+++ b/source/ap/xfsdump/xfsdump.destdir.diff
@@ -1,32 +1,19 @@
---- ./include/buildmacros.orig 2007-09-10 21:01:12.000000000 -0500
-+++ ./include/buildmacros 2008-04-01 00:06:53.000000000 -0500
-@@ -27,7 +27,7 @@
- $(LFILES:.l=.o) \
- $(YFILES:%.y=%.tab.o)
-
--INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP)
-+INSTALL = $(TOPDIR)/install-sh
+--- ./include/builddefs.in.orig 2010-01-12 19:53:18.000000000 -0600
++++ ./include/builddefs.in 2010-02-09 15:17:24.000000000 -0600
+@@ -32,13 +32,13 @@
+ datarootdir = @datarootdir@
+ top_builddir = @top_builddir@
- SHELL = /bin/sh
- IMAGES_DIR = $(TOPDIR)/all-images
---- ./include/builddefs.in.orig 2007-09-10 21:01:12.000000000 -0500
-+++ ./include/builddefs.in 2008-04-01 00:06:53.000000000 -0500
-@@ -30,14 +30,14 @@
- PKG_VERSION = @pkg_version@
- PKG_PLATFORM = @pkg_platform@
- PKG_DISTRIBUTION= @pkg_distribution@
--PKG_BIN_DIR = @bindir@
-PKG_SBIN_DIR = @sbindir@
--PKG_LIB_DIR = @libdir@@libdirsuffix@
--PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@
+-PKG_ROOT_SBIN_DIR = @root_sbindir@
+-PKG_ROOT_LIB_DIR= @root_libdir@@libdirsuffix@
-PKG_INC_DIR = @includedir@
-PKG_MAN_DIR = @mandir@
-PKG_DOC_DIR = @datadir@/doc/@pkg_name@
-PKG_LOCALE_DIR = @datadir@/locale
-+PKG_BIN_DIR = $(DESTDIR)@bindir@
+PKG_SBIN_DIR = $(DESTDIR)@sbindir@
-+PKG_LIB_DIR = $(DESTDIR)@libdir@@libdirsuffix@
-+PKG_DEVLIB_DIR = $(DESTDIR)@libexecdir@@libdirsuffix@
++PKG_ROOT_SBIN_DIR = $(DESTDIR)@root_sbindir@
++PKG_ROOT_LIB_DIR= $(DESTDIR)@root_libdir@@libdirsuffix@
+PKG_INC_DIR = $(DESTDIR)@includedir@
+PKG_MAN_DIR = $(DESTDIR)@mandir@
+PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@
@@ -34,3 +21,14 @@
CC = @cc@
AWK = @awk@
+--- ./include/buildmacros.orig 2010-01-12 19:53:18.000000000 -0600
++++ ./include/buildmacros 2010-02-09 15:15:47.000000000 -0600
+@@ -30,7 +30,7 @@
+ $(LFILES:.l=.o) \
+ $(YFILES:%.y=%.tab.o)
+
+-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP)
++INSTALL = $(TOPDIR)/install-sh
+
+ SHELL = /bin/sh
+ IMAGES_DIR = $(TOPDIR)/all-images