summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/apt1.4/make.sh1
-rw-r--r--data/apt7-lib/_metadata/conflicts2
-rw-r--r--data/gnupg/_metadata/conflicts1
-rw-r--r--data/gnupg/_metadata/provides1
-rw-r--r--data/gnupg/_metadata/replaces1
-rw-r--r--data/gnupg/make.sh1
l---------data/inetutils/_metadata/readline.dep1
-rw-r--r--data/libapt-pkg5.0/_metadata/conflicts2
-rw-r--r--data/libapt/_metadata/conflicts2
-rw-r--r--data/libapt/make.sh1
-rw-r--r--data/libnghttp2/_metadata/conflicts1
-rw-r--r--data/libnghttp2/_metadata/provides1
-rw-r--r--data/libnghttp2/_metadata/replaces1
-rw-r--r--data/lzma/_metadata/conflicts1
-rw-r--r--data/lzma/_metadata/version2
-rw-r--r--data/mobileterminal/arch.diff11
-rw-r--r--data/mobileterminal/gsevent.diff12
-rw-r--r--data/nano/_metadata/conffiles1
-rwxr-xr-xdata/nano/_metadata/extrainst_4
-rw-r--r--data/nano/_metadata/version2
-rw-r--r--data/nano/make.sh2
-rw-r--r--data/nano/nano-2.9.8.tar.xzbin1499948 -> 0 bytes
-rw-r--r--data/nano/nano-3.2.tar.xzbin0 -> 1514744 bytes
-rwxr-xr-xdata/openssh/_metadata/extrainst_5
-rw-r--r--data/vim/_metadata/version2
-rw-r--r--data/vim/patches/.listing583
-rw-r--r--data/vim/patches/8.1.0333348
-rw-r--r--data/vim/patches/8.1.058052
-rw-r--r--data/vim/patches/8.1.058157
-rw-r--r--data/vim/patches/8.1.0582217
-rw-r--r--data/vim/patches/8.1.0583639
-rw-r--r--data/vim/patches/8.1.058466
-rw-r--r--data/vim/patches/8.1.058553
-rw-r--r--data/vim/patches/8.1.0586850
-rw-r--r--data/vim/patches/8.1.058782
-rw-r--r--data/vim/patches/8.1.058889
-rw-r--r--data/vim/patches/8.1.058990
-rw-r--r--data/vim/patches/8.1.0590218
-rw-r--r--data/xz/_metadata/conflicts2
-rw-r--r--data/xz/_metadata/priority2
40 files changed, 2676 insertions, 730 deletions
diff --git a/data/apt1.4/make.sh b/data/apt1.4/make.sh
index 2faa69113..14a357d80 100644
--- a/data/apt1.4/make.sh
+++ b/data/apt1.4/make.sh
@@ -1,4 +1,3 @@
pkg: mkdir -p /usr
cp -a "$(PKG_DEST_ _apt1.4)"/usr/bin "${PKG_DEST}"/usr
-cp -a "$(PKG_DEST_ _apt1.4)"/usr/include "${PKG_DEST}"/usr
pkg: rm -f /usr/bin/apt-key
diff --git a/data/apt7-lib/_metadata/conflicts b/data/apt7-lib/_metadata/conflicts
index 905ea7f38..837d831b3 100644
--- a/data/apt7-lib/_metadata/conflicts
+++ b/data/apt7-lib/_metadata/conflicts
@@ -1 +1 @@
-apt7-ssl
+apt7-ssl, com.mc.xz (<<5.2.4-7)
diff --git a/data/gnupg/_metadata/conflicts b/data/gnupg/_metadata/conflicts
new file mode 100644
index 000000000..239772ed9
--- /dev/null
+++ b/data/gnupg/_metadata/conflicts
@@ -0,0 +1 @@
+gnupg2
diff --git a/data/gnupg/_metadata/provides b/data/gnupg/_metadata/provides
new file mode 100644
index 000000000..239772ed9
--- /dev/null
+++ b/data/gnupg/_metadata/provides
@@ -0,0 +1 @@
+gnupg2
diff --git a/data/gnupg/_metadata/replaces b/data/gnupg/_metadata/replaces
new file mode 100644
index 000000000..239772ed9
--- /dev/null
+++ b/data/gnupg/_metadata/replaces
@@ -0,0 +1 @@
+gnupg2
diff --git a/data/gnupg/make.sh b/data/gnupg/make.sh
index 8c17cfda1..7e96b678b 100644
--- a/data/gnupg/make.sh
+++ b/data/gnupg/make.sh
@@ -2,3 +2,4 @@ pkg:setup
CFLAGS="-fcommon" pkg:configure --with-ksba-prefix="$(PKG_DEST_ libksba)/usr" --with-libassuan-prefix="$(PKG_DEST_ libassuan)/usr" --with-npth-prefix="$(PKG_DEST_ npth)/usr" --sysconfdir=/etc --with-gpg-error-prefix="$(PKG_DEST_ libgpg-error)/usr" --with-libgcrypt-prefix="$(PKG_DEST_ gcrypt)/usr"
make -j8
pkg:install
+pkg: ln -s gnupg /usr/bin/gnupg2
diff --git a/data/inetutils/_metadata/readline.dep b/data/inetutils/_metadata/readline.dep
new file mode 120000
index 000000000..f35c9185b
--- /dev/null
+++ b/data/inetutils/_metadata/readline.dep
@@ -0,0 +1 @@
+../../readline \ No newline at end of file
diff --git a/data/libapt-pkg5.0/_metadata/conflicts b/data/libapt-pkg5.0/_metadata/conflicts
index 77c98489a..1bcaecfac 100644
--- a/data/libapt-pkg5.0/_metadata/conflicts
+++ b/data/libapt-pkg5.0/_metadata/conflicts
@@ -1 +1 @@
-apt7-lib (<<1:0)
+apt7-lib (<<1:0), com.mc.xz (<<5.2.4-7)
diff --git a/data/libapt/_metadata/conflicts b/data/libapt/_metadata/conflicts
index 77c98489a..7e4d0927b 100644
--- a/data/libapt/_metadata/conflicts
+++ b/data/libapt/_metadata/conflicts
@@ -1 +1 @@
-apt7-lib (<<1:0)
+apt7-lib (<<1:0), apt7 (<<1:0), com.mc.xz, apt7-key
diff --git a/data/libapt/make.sh b/data/libapt/make.sh
index bfc52ca73..c9b62a8ea 100644
--- a/data/libapt/make.sh
+++ b/data/libapt/make.sh
@@ -4,7 +4,6 @@ cp -a "$(PKG_DEST_ _apt1.4)"/var "${PKG_DEST}"
pkg: mkdir -p /usr
cp -a "$(PKG_DEST_ _apt1.4)"/usr/lib "${PKG_DEST}"/usr
cp -a "$(PKG_DEST_ _apt1.4)"/usr/libexec "${PKG_DEST}"/usr
-echo rm -f "${PKG_DEST}"/usr/lib/libapt-pkg.*
rm -f "${PKG_DEST}"/usr/lib/libapt-pkg.*
pkg: ln -s ../libexec/apt /usr/lib/apt
pkg: rm -f /usr/libexec/apt/methods/https
diff --git a/data/libnghttp2/_metadata/conflicts b/data/libnghttp2/_metadata/conflicts
new file mode 100644
index 000000000..b67b7d0b5
--- /dev/null
+++ b/data/libnghttp2/_metadata/conflicts
@@ -0,0 +1 @@
+nghttp2
diff --git a/data/libnghttp2/_metadata/provides b/data/libnghttp2/_metadata/provides
new file mode 100644
index 000000000..b67b7d0b5
--- /dev/null
+++ b/data/libnghttp2/_metadata/provides
@@ -0,0 +1 @@
+nghttp2
diff --git a/data/libnghttp2/_metadata/replaces b/data/libnghttp2/_metadata/replaces
new file mode 100644
index 000000000..b67b7d0b5
--- /dev/null
+++ b/data/libnghttp2/_metadata/replaces
@@ -0,0 +1 @@
+nghttp2
diff --git a/data/lzma/_metadata/conflicts b/data/lzma/_metadata/conflicts
new file mode 100644
index 000000000..f1a2f703c
--- /dev/null
+++ b/data/lzma/_metadata/conflicts
@@ -0,0 +1 @@
+com.mc.xz
diff --git a/data/lzma/_metadata/version b/data/lzma/_metadata/version
index c8a6ff9cd..3376a80f8 100644
--- a/data/lzma/_metadata/version
+++ b/data/lzma/_metadata/version
@@ -1 +1 @@
-1:4.32.7
+2:4.32.7
diff --git a/data/mobileterminal/arch.diff b/data/mobileterminal/arch.diff
new file mode 100644
index 000000000..428d0f95d
--- /dev/null
+++ b/data/mobileterminal/arch.diff
@@ -0,0 +1,11 @@
+diff -ur mobileterminal-364/Makefile mobileterminal-364+iPhone/Makefile
+--- mobileterminal-364/Makefile 2009-02-10 03:39:52.000000000 -1000
++++ mobileterminal-364+iPhone/Makefile 2018-09-02 13:15:08.000000000 -1000
+@@ -1,6 +1,4 @@
+-CC = arm-apple-darwin9-gcc
+-
+-CFLAGS = -Wall -Os -std=gnu99 -march=armv6 -mcpu=arm1176jzf-s
++CFLAGS = -Wall -Os -std=gnu99
+
+ ifdef DEBUG
+ CFLAGS += -g -DDEBUG
diff --git a/data/mobileterminal/gsevent.diff b/data/mobileterminal/gsevent.diff
new file mode 100644
index 000000000..59906ed6c
--- /dev/null
+++ b/data/mobileterminal/gsevent.diff
@@ -0,0 +1,12 @@
+diff -ur mobileterminal-364/Sources/MobileTerminal.h mobileterminal-364+iPhone/Sources/MobileTerminal.h
+--- mobileterminal-364/Sources/MobileTerminal.h 2009-04-11 17:48:49.000000000 -1000
++++ mobileterminal-364+iPhone/Sources/MobileTerminal.h 2018-09-02 13:21:13.000000000 -1000
+@@ -7,6 +7,8 @@
+ #import "Constants.h"
+ #import "Log.h"
+
++typedef struct __GSEvent* GSEventRef;
++
+
+ @class PTYTextView;
+ @class ShellKeyboard;
diff --git a/data/nano/_metadata/conffiles b/data/nano/_metadata/conffiles
deleted file mode 100644
index ecc14ac9c..000000000
--- a/data/nano/_metadata/conffiles
+++ /dev/null
@@ -1 +0,0 @@
-/etc/nanorc
diff --git a/data/nano/_metadata/extrainst_ b/data/nano/_metadata/extrainst_
new file mode 100755
index 000000000..1a73f05c1
--- /dev/null
+++ b/data/nano/_metadata/extrainst_
@@ -0,0 +1,4 @@
+#!/bin/sh
+if [ ! -e /etc/nanorc ]; then
+ cp /usr/share/nano/sample.nanorc /etc/nanorc
+fi
diff --git a/data/nano/_metadata/version b/data/nano/_metadata/version
index d8589d192..a3ec5a4bd 100644
--- a/data/nano/_metadata/version
+++ b/data/nano/_metadata/version
@@ -1 +1 @@
-2.9.8
+3.2
diff --git a/data/nano/make.sh b/data/nano/make.sh
index a6eb5250d..e44df4f40 100644
--- a/data/nano/make.sh
+++ b/data/nano/make.sh
@@ -4,4 +4,4 @@ make -j8
pkg:install
pkg: mkdir -p /etc/profile.d
pkg: cp -a %/nano.sh /etc/profile.d
-pkg: cp -a ./doc/sample.nanorc /etc/nanorc
+pkg: cp -a ./doc/sample.nanorc /usr/share/nano
diff --git a/data/nano/nano-2.9.8.tar.xz b/data/nano/nano-2.9.8.tar.xz
deleted file mode 100644
index 25b2a3641..000000000
--- a/data/nano/nano-2.9.8.tar.xz
+++ /dev/null
Binary files differ
diff --git a/data/nano/nano-3.2.tar.xz b/data/nano/nano-3.2.tar.xz
new file mode 100644
index 000000000..699c26290
--- /dev/null
+++ b/data/nano/nano-3.2.tar.xz
Binary files differ
diff --git a/data/openssh/_metadata/extrainst_ b/data/openssh/_metadata/extrainst_
index afdc6d157..007af8999 100755
--- a/data/openssh/_metadata/extrainst_
+++ b/data/openssh/_metadata/extrainst_
@@ -2,10 +2,11 @@
if [[ $1 == upgrade ]]; then
/bin/launchctl unload /Library/LaunchDaemons/com.openssh.sshd.plist
+ /bin/launchctl load /Library/LaunchDaemons/com.openssh.sshd.plist
fi
-if [[ $1 == install || $1 == upgrade ]]; then
- /bin/launchctl load /Library/LaunchDaemons/com.openssh.sshd.plist
+if [[ $1 == install ]]; then
+ /bin/launchctl load -w /Library/LaunchDaemons/com.openssh.sshd.plist
fi
exit 0
diff --git a/data/vim/_metadata/version b/data/vim/_metadata/version
index f068dd2ac..dd3e59bfe 100644
--- a/data/vim/_metadata/version
+++ b/data/vim/_metadata/version
@@ -1 +1 @@
-8.1.579
+8.1.590
diff --git a/data/vim/patches/.listing b/data/vim/patches/.listing
deleted file mode 100644
index bd5ad134d..000000000
--- a/data/vim/patches/.listing
+++ /dev/null
@@ -1,583 +0,0 @@
-drwxrwsr-x 2 506 450 16384 Dec 13 22:21 .
-drwxrwsr-x 12 506 450 40960 May 17 2018 ..
--rw-r--r-- 1 506 450 2006 May 17 2018 8.1.0001
--rw-r--r-- 1 506 450 2572 May 19 2018 8.1.0002
--rw-r--r-- 1 506 450 3792 May 19 2018 8.1.0003
--rw-r--r-- 1 506 450 1751 May 19 2018 8.1.0004
--rw-r--r-- 1 506 450 1807 May 19 2018 8.1.0005
--rw-r--r-- 1 506 450 1693 May 20 2018 8.1.0006
--rw-r--r-- 1 506 450 1962 May 20 2018 8.1.0007
--rw-r--r-- 1 506 450 2386 May 20 2018 8.1.0008
--rw-r--r-- 1 506 450 2778 May 20 2018 8.1.0009
--rw-r--r-- 1 506 450 9415 May 20 2018 8.1.0010
--rw-r--r-- 1 506 450 2536 May 21 2018 8.1.0011
--rw-r--r-- 1 506 450 1610 May 21 2018 8.1.0012
--rw-r--r-- 1 506 450 6717 May 21 2018 8.1.0013
--rw-r--r-- 1 506 450 13559 May 21 2018 8.1.0014
--rw-r--r-- 1 506 450 4186 May 21 2018 8.1.0015
--rw-r--r-- 1 506 450 1890 May 21 2018 8.1.0016
--rw-r--r-- 1 506 450 5801 May 22 2018 8.1.0017
--rw-r--r-- 1 506 450 9499 May 22 2018 8.1.0018
--rw-r--r-- 1 506 450 2326 May 22 2018 8.1.0019
--rw-r--r-- 1 506 450 15279 May 22 2018 8.1.0020
--rw-r--r-- 1 506 450 2235 May 23 2018 8.1.0021
--rw-r--r-- 1 506 450 2396 May 23 2018 8.1.0022
--rw-r--r-- 1 506 450 2004 May 26 2018 8.1.0023
--rw-r--r-- 1 506 450 2617 May 26 2018 8.1.0024
--rw-r--r-- 1 506 450 4779 May 26 2018 8.1.0025
--rw-r--r-- 1 506 450 1809 May 26 2018 8.1.0026
--rw-r--r-- 1 506 450 50988 Jun 03 2018 8.1.0027
--rw-r--r-- 1 506 450 1760 Jun 03 2018 8.1.0028
--rw-r--r-- 1 506 450 1495 Jun 03 2018 8.1.0029
--rw-r--r-- 1 506 450 3105 Jun 03 2018 8.1.0030
--rw-r--r-- 1 506 450 1611 Jun 03 2018 8.1.0031
--rw-r--r-- 1 506 450 5262 Jun 04 2018 8.1.0032
--rw-r--r-- 1 506 450 1848 Jun 04 2018 8.1.0033
--rw-r--r-- 1 506 450 2716 Jun 04 2018 8.1.0034
--rw-r--r-- 1 506 450 6569 Jun 06 2018 8.1.0035
--rw-r--r-- 1 506 450 4578 Jun 06 2018 8.1.0036
--rw-r--r-- 1 506 450 15307 Jun 06 2018 8.1.0037
--rw-r--r-- 1 506 450 1978 Jun 07 2018 8.1.0038
--rw-r--r-- 1 506 450 8953 Jun 07 2018 8.1.0039
--rw-r--r-- 1 506 450 2531 Jun 10 2018 8.1.0040
--rw-r--r-- 1 506 450 4059 Jun 10 2018 8.1.0041
--rw-r--r-- 1 506 450 3565 Jun 10 2018 8.1.0042
--rw-r--r-- 1 506 450 3435 Jun 12 2018 8.1.0043
--rw-r--r-- 1 506 450 2509 Jun 12 2018 8.1.0044
--rw-r--r-- 1 506 450 8195 Jun 12 2018 8.1.0045
--rw-r--r-- 1 506 450 5925 Jun 12 2018 8.1.0046
--rw-r--r-- 1 506 450 2905 Jun 12 2018 8.1.0047
--rw-r--r-- 1 506 450 3129 Jun 12 2018 8.1.0048
--rw-r--r-- 1 506 450 7856 Jun 12 2018 8.1.0049
--rw-r--r-- 1 506 450 12084 Jun 12 2018 8.1.0050
--rw-r--r-- 1 506 450 1187 Jun 12 2018 8.1.0051
--rw-r--r-- 1 506 450 1660 Jun 12 2018 8.1.0052
--rw-r--r-- 1 506 450 17493 Jun 12 2018 8.1.0053
--rw-r--r-- 1 506 450 1978 Jun 13 2018 8.1.0054
--rw-r--r-- 1 506 450 2674 Jun 13 2018 8.1.0055
--rw-r--r-- 1 506 450 2996 Jun 16 14:44 8.1.0056
--rw-r--r-- 1 506 450 5625 Jun 16 15:33 8.1.0057
--rw-r--r-- 1 506 450 5833 Jun 16 16:21 8.1.0058
--rw-r--r-- 1 506 450 3006 Jun 16 17:26 8.1.0059
--rw-r--r-- 1 506 450 2199 Jun 16 22:17 8.1.0060
--rw-r--r-- 1 506 450 9361 Jun 16 22:58 8.1.0061
--rw-r--r-- 1 506 450 10083 Jun 17 14:48 8.1.0062
--rw-r--r-- 1 506 450 4134 Jun 17 15:01 8.1.0063
--rw-r--r-- 1 506 450 3198 Jun 17 16:24 8.1.0064
--rw-r--r-- 1 506 450 2714 Jun 17 17:11 8.1.0065
--rw-r--r-- 1 506 450 4125 Jun 17 17:33 8.1.0066
--rw-r--r-- 1 506 450 3453 Jun 17 19:08 8.1.0067
--rw-r--r-- 1 506 450 2218 Jun 17 19:23 8.1.0068
--rw-r--r-- 1 506 450 10539 Jun 17 19:37 8.1.0069
--rw-r--r-- 1 506 450 1772 Jun 17 20:11 8.1.0070
--rw-r--r-- 1 506 450 24885 Jun 17 21:34 8.1.0071
--rw-r--r-- 1 506 450 3489 Jun 17 22:19 8.1.0072
--rw-r--r-- 1 506 450 2490 Jun 18 21:17 8.1.0073
--rw-r--r-- 1 506 450 1917 Jun 18 21:53 8.1.0074
--rw-r--r-- 1 506 450 1690 Jun 18 22:01 8.1.0075
--rw-r--r-- 1 506 450 2192 Jun 18 22:16 8.1.0076
--rw-r--r-- 1 506 450 1575 Jun 18 22:31 8.1.0077
--rw-r--r-- 1 506 450 3972 Jun 19 14:24 8.1.0078
--rw-r--r-- 1 506 450 1941 Jun 19 14:46 8.1.0079
--rw-r--r-- 1 506 450 9680 Jun 19 17:28 8.1.0080
--rw-r--r-- 1 506 450 2721 Jun 19 17:28 8.1.0081
--rw-r--r-- 1 506 450 3834 Jun 19 17:49 8.1.0082
--rw-r--r-- 1 506 450 5227 Jun 19 18:28 8.1.0083
--rw-r--r-- 1 506 450 5639 Jun 19 18:58 8.1.0084
--rw-r--r-- 1 506 450 3269 Jun 19 19:09 8.1.0085
--rw-r--r-- 1 506 450 2588 Jun 19 19:46 8.1.0086
--rw-r--r-- 1 506 450 6792 Jun 19 19:59 8.1.0087
--rw-r--r-- 1 506 450 2126 Jun 19 20:08 8.1.0088
--rw-r--r-- 1 506 450 5766 Jun 19 22:35 8.1.0089
--rw-r--r-- 1 506 450 4270 Jun 20 20:38 8.1.0090
--rw-r--r-- 1 506 450 10822 Jun 20 22:38 8.1.0091
--rw-r--r-- 1 506 450 1512 Jun 21 12:08 8.1.0092
--rw-r--r-- 1 506 450 2187 Jun 21 20:31 8.1.0093
--rw-r--r-- 1 506 450 1399 Jun 21 21:39 8.1.0094
--rw-r--r-- 1 506 450 2373 Jun 21 22:10 8.1.0095
--rw-r--r-- 1 506 450 4382 Jun 22 21:31 8.1.0096
--rw-r--r-- 1 506 450 1805 Jun 22 21:43 8.1.0097
--rw-r--r-- 1 506 450 9705 Jun 23 14:22 8.1.0098
--rw-r--r-- 1 506 450 1924 Jun 23 14:35 8.1.0099
--rw-r--r-- 1 506 450 1595 Jun 23 14:36 8.1.0100
--rw-r--r-- 1 506 450 1769 Jun 23 14:55 8.1.0101
--rw-r--r-- 1 506 450 1557 Jun 23 15:09 8.1.0102
--rw-r--r-- 1 506 450 5682 Jun 23 16:12 8.1.0103
--rw-r--r-- 1 506 450 1709 Jun 23 17:15 8.1.0104
--rw-r--r-- 1 506 450 91953 Jun 23 19:23 8.1.0105
--rw-r--r-- 1 506 450 1471 Jun 24 14:45 8.1.0106
--rw-r--r-- 1 506 450 2523 Jun 24 15:14 8.1.0107
--rw-r--r-- 1 506 450 206793 Jun 24 15:54 8.1.0108
--rw-r--r-- 1 506 450 1365 Jun 24 15:56 8.1.0109
--rw-r--r-- 1 506 450 2466 Jun 24 16:54 8.1.0110
--rw-r--r-- 1 506 450 4914 Jun 24 18:05 8.1.0111
--rw-r--r-- 1 506 450 4681 Jun 24 19:02 8.1.0112
--rw-r--r-- 1 506 450 1508 Jun 24 19:24 8.1.0113
--rw-r--r-- 1 506 450 6304 Jun 24 23:53 8.1.0114
--rw-r--r-- 1 506 450 1961 Jun 25 00:06 8.1.0115
--rw-r--r-- 1 506 450 2800 Jun 25 21:25 8.1.0116
--rw-r--r-- 1 506 450 1760 Jun 26 23:19 8.1.0117
--rw-r--r-- 1 506 450 4245 Jun 27 21:22 8.1.0118
--rw-r--r-- 1 506 450 1948 Jun 27 23:13 8.1.0119
--rw-r--r-- 1 506 450 5855 Jun 28 11:28 8.1.0120
--rw-r--r-- 1 506 450 4713 Jun 28 12:05 8.1.0121
--rw-r--r-- 1 506 450 1658 Jun 28 14:55 8.1.0122
--rw-r--r-- 1 506 450 1718 Jun 28 15:30 8.1.0123
--rw-r--r-- 1 506 450 1597 Jun 28 15:50 8.1.0124
--rw-r--r-- 1 506 450 4884 Jun 28 19:26 8.1.0125
--rw-r--r-- 1 506 450 6119 Jun 28 22:23 8.1.0126
--rw-r--r-- 1 506 450 1817 Jun 29 20:29 8.1.0127
--rw-r--r-- 1 506 450 13345 Jun 30 18:25 8.1.0128
--rw-r--r-- 1 506 450 1716 Jun 30 18:25 8.1.0129
--rw-r--r-- 1 506 450 5062 Jun 30 18:28 8.1.0130
--rw-r--r-- 1 506 450 7164 Jun 30 21:18 8.1.0131
--rw-r--r-- 1 506 450 21355 Jun 30 21:50 8.1.0132
--rw-r--r-- 1 506 450 3994 Jun 30 22:41 8.1.0133
--rw-r--r-- 1 506 450 18460 Jul 01 15:12 8.1.0134
--rw-r--r-- 1 506 450 2589 Jul 01 16:44 8.1.0135
--rw-r--r-- 1 506 450 9996 Jul 01 19:49 8.1.0136
--rw-r--r-- 1 506 450 8177 Jul 01 21:13 8.1.0137
--rw-r--r-- 1 506 450 4761 Jul 02 20:51 8.1.0138
--rw-r--r-- 1 506 450 3091 Jul 02 22:55 8.1.0139
--rw-r--r-- 1 506 450 2895 Jul 03 14:48 8.1.0140
--rw-r--r-- 1 506 450 15890 Jul 03 16:54 8.1.0141
--rw-r--r-- 1 506 450 4578 Jul 03 17:17 8.1.0142
--rw-r--r-- 1 506 450 6351 Jul 03 18:18 8.1.0143
--rw-r--r-- 1 506 450 2728 Jul 03 18:37 8.1.0144
--rw-r--r-- 1 506 450 2327 Jul 03 19:17 8.1.0145
--rw-r--r-- 1 506 450 1367 Jul 03 21:27 8.1.0146
--rw-r--r-- 1 506 450 3044 Jul 04 22:04 8.1.0147
--rw-r--r-- 1 506 450 1512 Jul 04 22:13 8.1.0148
--rw-r--r-- 1 506 450 6889 Jul 04 22:27 8.1.0149
--rw-r--r-- 1 506 450 22149 Jul 04 22:37 8.1.0150
--rw-r--r-- 1 506 450 1593 Jul 04 22:44 8.1.0151
--rw-r--r-- 1 506 450 11431 Jul 04 23:06 8.1.0152
--rw-r--r-- 1 506 450 1970 Jul 05 22:28 8.1.0153
--rw-r--r-- 1 506 450 3833 Jul 05 22:28 8.1.0154
--rw-r--r-- 1 506 450 1273 Jul 05 22:59 8.1.0155
--rw-r--r-- 1 506 450 1574 Jul 06 23:12 8.1.0156
--rw-r--r-- 1 506 450 2144 Jul 06 23:12 8.1.0157
--rw-r--r-- 1 506 450 1647 Jul 07 16:19 8.1.0158
--rw-r--r-- 1 506 450 2569 Jul 07 16:41 8.1.0159
--rw-r--r-- 1 506 450 1361 Jul 07 17:22 8.1.0160
--rw-r--r-- 1 506 450 3923 Jul 07 18:34 8.1.0161
--rw-r--r-- 1 506 450 6881 Jul 07 22:42 8.1.0162
--rw-r--r-- 1 506 450 6408 Jul 07 22:42 8.1.0163
--rw-r--r-- 1 506 450 2724 Jul 07 23:08 8.1.0164
--rw-r--r-- 1 506 450 3898 Jul 08 16:01 8.1.0165
--rw-r--r-- 1 506 450 38155 Jul 08 16:51 8.1.0166
--rw-r--r-- 1 506 450 5740 Jul 08 17:19 8.1.0167
--rw-r--r-- 1 506 450 4177 Jul 08 17:58 8.1.0168
--rw-r--r-- 1 506 450 4184 Jul 08 18:20 8.1.0169
--rw-r--r-- 1 506 450 9933 Jul 08 19:07 8.1.0170
--rw-r--r-- 1 506 450 3250 Jul 08 20:49 8.1.0171
--rw-r--r-- 1 506 450 1771 Jul 08 21:47 8.1.0172
--rw-r--r-- 1 506 450 1429 Jul 09 20:40 8.1.0173
--rw-r--r-- 1 506 450 3944 Jul 10 15:07 8.1.0174
--rw-r--r-- 1 506 450 1934 Jul 10 15:23 8.1.0175
--rw-r--r-- 1 506 450 1599 Jul 10 17:35 8.1.0176
--rw-r--r-- 1 506 450 4584 Jul 10 19:39 8.1.0177
--rw-r--r-- 1 506 450 1431 Jul 24 04:15 8.1.0178
--rw-r--r-- 1 506 450 1857 Jul 13 18:14 8.1.0179
--rw-r--r-- 1 506 450 4435 Jul 13 22:11 8.1.0180
--rw-r--r-- 1 506 450 1921 Jul 14 17:25 8.1.0181
--rw-r--r-- 1 506 450 9703 Jul 14 19:31 8.1.0182
--rw-r--r-- 1 506 450 3966 Jul 14 21:42 8.1.0183
--rw-r--r-- 1 506 450 4488 Jul 14 21:42 8.1.0184
--rw-r--r-- 1 506 450 4643 Jul 14 21:49 8.1.0185
--rw-r--r-- 1 506 450 2592 Jul 14 22:24 8.1.0186
--rw-r--r-- 1 506 450 9073 Jul 15 17:01 8.1.0187
--rw-r--r-- 1 506 450 1963 Jul 15 17:36 8.1.0188
--rw-r--r-- 1 506 450 1688 Jul 15 20:26 8.1.0189
--rw-r--r-- 1 506 450 6411 Jul 16 17:48 8.1.0190
--rw-r--r-- 1 506 450 1565 Jul 16 18:11 8.1.0191
--rw-r--r-- 1 506 450 112175 Jul 17 05:45 8.1.0192
--rw-r--r-- 1 506 450 1805 Jul 17 05:56 8.1.0193
--rw-r--r-- 1 506 450 2862 Jul 18 06:04 8.1.0194
--rw-r--r-- 1 506 450 1809 Jul 19 03:08 8.1.0195
--rw-r--r-- 1 506 450 2085 Jul 19 04:14 8.1.0196
--rw-r--r-- 1 506 450 2341 Jul 20 05:08 8.1.0197
--rw-r--r-- 1 506 450 2382 Jul 20 20:26 8.1.0198
--rw-r--r-- 1 506 450 1487 Jul 20 20:29 8.1.0199
--rw-r--r-- 1 506 450 3017 Jul 20 23:38 8.1.0200
--rw-r--r-- 1 506 450 11749 Jul 22 04:31 8.1.0201
--rw-r--r-- 1 506 450 2036 Jul 22 05:10 8.1.0202
--rw-r--r-- 1 506 450 3913 Jul 22 07:33 8.1.0203
--rw-r--r-- 1 506 450 2093 Jul 22 19:39 8.1.0204
--rw-r--r-- 1 506 450 6691 Jul 23 04:12 8.1.0205
--rw-r--r-- 1 506 450 2828 Jul 23 04:50 8.1.0206
--rw-r--r-- 1 506 450 2260 Jul 23 05:10 8.1.0207
--rw-r--r-- 1 506 450 1379 Jul 24 04:55 8.1.0208
--rw-r--r-- 1 506 450 3024 Jul 24 05:43 8.1.0209
--rw-r--r-- 1 506 450 2831 Jul 25 19:50 8.1.0210
--rw-r--r-- 1 506 450 7061 Jul 25 21:19 8.1.0211
--rw-r--r-- 1 506 450 7545 Jul 25 22:03 8.1.0212
--rw-r--r-- 1 506 450 5556 Jul 25 22:37 8.1.0213
--rw-r--r-- 1 506 450 1925 Jul 27 22:09 8.1.0214
--rw-r--r-- 1 506 450 2582 Jul 27 22:35 8.1.0215
--rw-r--r-- 1 506 450 2392 Jul 27 23:18 8.1.0216
--rw-r--r-- 1 506 450 2403 Jul 28 16:14 8.1.0217
--rw-r--r-- 1 506 450 6928 Jul 28 16:56 8.1.0218
--rw-r--r-- 1 506 450 1963 Jul 28 17:08 8.1.0219
--rw-r--r-- 1 506 450 2311 Jul 28 17:18 8.1.0220
--rw-r--r-- 1 506 450 14127 Jul 28 17:29 8.1.0221
--rw-r--r-- 1 506 450 5102 Jul 28 18:17 8.1.0222
--rw-r--r-- 1 506 450 4387 Jul 28 19:20 8.1.0223
--rw-r--r-- 1 506 450 3118 Jul 28 23:12 8.1.0224
--rw-r--r-- 1 506 450 5657 Jul 29 15:35 8.1.0225
--rw-r--r-- 1 506 450 28724 Jul 29 16:09 8.1.0226
--rw-r--r-- 1 506 450 1700 Jul 29 16:13 8.1.0227
--rw-r--r-- 1 506 450 15828 Jul 29 17:36 8.1.0228
--rw-r--r-- 1 506 450 3254 Jul 29 17:41 8.1.0229
--rw-r--r-- 1 506 450 4212 Aug 01 17:56 8.1.0230
--rw-r--r-- 1 506 450 3398 Aug 01 18:03 8.1.0231
--rw-r--r-- 1 506 450 6091 Aug 01 18:42 8.1.0232
--rw-r--r-- 1 506 450 9163 Aug 01 19:06 8.1.0233
--rw-r--r-- 1 506 450 4813 Aug 02 21:47 8.1.0234
--rw-r--r-- 1 506 450 6005 Aug 02 22:24 8.1.0235
--rw-r--r-- 1 506 450 3812 Aug 03 22:03 8.1.0236
--rw-r--r-- 1 506 450 2407 Aug 04 15:14 8.1.0237
--rw-r--r-- 1 506 450 2455 Aug 04 16:54 8.1.0238
--rw-r--r-- 1 506 450 3139 Aug 04 17:25 8.1.0239
--rw-r--r-- 1 506 450 1835 Aug 05 13:22 8.1.0240
--rw-r--r-- 1 506 450 1779 Aug 07 13:15 8.1.0241
--rw-r--r-- 1 506 450 2127 Aug 07 14:55 8.1.0242
--rw-r--r-- 1 506 450 3046 Aug 07 16:33 8.1.0243
--rw-r--r-- 1 506 450 6049 Aug 07 17:39 8.1.0244
--rw-r--r-- 1 506 450 3316 Aug 07 19:05 8.1.0245
--rw-r--r-- 1 506 450 1756 Aug 07 19:33 8.1.0246
--rw-r--r-- 1 506 450 8011 Aug 07 19:45 8.1.0247
--rw-r--r-- 1 506 450 4314 Aug 07 19:48 8.1.0248
--rw-r--r-- 1 506 450 2789 Aug 07 20:02 8.1.0249
--rw-r--r-- 1 506 450 3230 Aug 07 20:48 8.1.0250
--rw-r--r-- 1 506 450 12239 Aug 07 21:40 8.1.0251
--rw-r--r-- 1 506 450 41015 Aug 07 21:55 8.1.0252
--rw-r--r-- 1 506 450 14504 Aug 07 22:32 8.1.0253
--rw-r--r-- 1 506 450 2428 Aug 07 22:43 8.1.0254
--rw-r--r-- 1 506 450 2310 Aug 08 22:09 8.1.0255
--rw-r--r-- 1 506 450 8885 Aug 08 22:09 8.1.0256
--rw-r--r-- 1 506 450 2084 Aug 08 22:28 8.1.0257
--rw-r--r-- 1 506 450 1854 Aug 08 22:56 8.1.0258
--rw-r--r-- 1 506 450 4897 Aug 09 21:19 8.1.0259
--rw-r--r-- 1 506 450 1783 Aug 09 21:34 8.1.0260
--rw-r--r-- 1 506 450 4958 Aug 09 21:52 8.1.0261
--rw-r--r-- 1 506 450 3052 Aug 09 22:09 8.1.0262
--rw-r--r-- 1 506 450 3417 Aug 09 22:16 8.1.0263
--rw-r--r-- 1 506 450 3278 Aug 09 22:27 8.1.0264
--rw-r--r-- 1 506 450 23576 Aug 10 22:08 8.1.0265
--rw-r--r-- 1 506 450 10962 Aug 10 23:14 8.1.0266
--rw-r--r-- 1 506 450 3831 Aug 11 13:37 8.1.0267
--rw-r--r-- 1 506 450 10135 Aug 11 13:57 8.1.0268
--rw-r--r-- 1 506 450 3772 Aug 11 14:24 8.1.0269
--rw-r--r-- 1 506 450 1866 Aug 11 14:42 8.1.0270
--rw-r--r-- 1 506 450 13097 Aug 11 16:41 8.1.0271
--rw-r--r-- 1 506 450 1723 Aug 11 17:53 8.1.0272
--rw-r--r-- 1 506 450 1470 Aug 11 19:03 8.1.0273
--rw-r--r-- 1 506 450 4628 Aug 12 15:50 8.1.0274
--rw-r--r-- 1 506 450 4964 Aug 12 15:50 8.1.0275
--rw-r--r-- 1 506 450 2991 Aug 12 16:27 8.1.0276
--rw-r--r-- 1 506 450 9021 Aug 12 17:39 8.1.0277
--rw-r--r-- 1 506 450 2988 Aug 12 21:54 8.1.0278
--rw-r--r-- 1 506 450 3306 Aug 12 22:03 8.1.0279
--rw-r--r-- 1 506 450 2293 Aug 13 22:55 8.1.0280
--rw-r--r-- 1 506 450 19659 Aug 14 13:38 8.1.0281
--rw-r--r-- 1 506 450 14174 Aug 14 16:06 8.1.0282
--rw-r--r-- 1 506 450 1846 Aug 14 17:29 8.1.0283
--rw-r--r-- 1 506 450 3774 Aug 14 18:17 8.1.0284
--rw-r--r-- 1 506 450 1416 Aug 14 20:18 8.1.0285
--rw-r--r-- 1 506 450 3285 Aug 14 21:32 8.1.0286
--rw-r--r-- 1 506 450 1772 Aug 14 22:08 8.1.0287
--rw-r--r-- 1 506 450 12170 Aug 15 22:24 8.1.0288
--rw-r--r-- 1 506 450 2018 Aug 16 22:29 8.1.0289
--rw-r--r-- 1 506 450 2722 Aug 16 22:29 8.1.0290
--rw-r--r-- 1 506 450 4355 Aug 18 16:20 8.1.0291
--rw-r--r-- 1 506 450 2120 Aug 18 19:13 8.1.0292
--rw-r--r-- 1 506 450 5483 Aug 18 20:00 8.1.0293
--rw-r--r-- 1 506 450 2332 Aug 18 20:20 8.1.0294
--rw-r--r-- 1 506 450 9332 Aug 18 21:14 8.1.0295
--rw-r--r-- 1 506 450 8125 Aug 18 21:23 8.1.0296
--rw-r--r-- 1 506 450 2733 Aug 19 14:40 8.1.0297
--rw-r--r-- 1 506 450 1475 Aug 19 16:10 8.1.0298
--rw-r--r-- 1 506 450 1657 Aug 19 17:04 8.1.0299
--rw-r--r-- 1 506 450 2295 Aug 19 22:21 8.1.0300
--rw-r--r-- 1 506 450 8790 Aug 19 22:59 8.1.0301
--rw-r--r-- 1 506 450 6061 Aug 20 21:59 8.1.0302
--rw-r--r-- 1 506 450 2912 Aug 20 22:53 8.1.0303
--rw-r--r-- 1 506 450 9124 Aug 21 13:09 8.1.0304
--rw-r--r-- 1 506 450 3073 Aug 21 14:24 8.1.0305
--rw-r--r-- 1 506 450 14029 Aug 21 15:12 8.1.0306
--rw-r--r-- 1 506 450 6949 Aug 21 16:57 8.1.0307
--rw-r--r-- 1 506 450 1720 Aug 21 17:08 8.1.0308
--rw-r--r-- 1 506 450 18244 Aug 21 17:50 8.1.0309
--rw-r--r-- 1 506 450 3277 Aug 21 18:50 8.1.0310
--rw-r--r-- 1 506 450 4009 Aug 21 19:22 8.1.0311
--rw-r--r-- 1 506 450 7961 Aug 21 19:48 8.1.0312
--rw-r--r-- 1 506 450 7881 Aug 21 20:29 8.1.0313
--rw-r--r-- 1 506 450 5176 Aug 21 21:20 8.1.0314
--rw-r--r-- 1 506 450 6290 Aug 21 21:58 8.1.0315
--rw-r--r-- 1 506 450 2195 Aug 22 11:28 8.1.0316
--rw-r--r-- 1 506 450 2110 Aug 22 20:06 8.1.0317
--rw-r--r-- 1 506 450 3126 Aug 22 20:16 8.1.0318
--rw-r--r-- 1 506 450 1642 Aug 22 21:57 8.1.0319
--rw-r--r-- 1 506 450 4447 Aug 22 23:04 8.1.0320
--rw-r--r-- 1 506 450 4558 Aug 23 20:56 8.1.0321
--rw-r--r-- 1 506 450 3868 Aug 23 22:21 8.1.0322
--rw-r--r-- 1 506 450 2305 Aug 23 22:39 8.1.0323
--rw-r--r-- 1 506 450 1492 Aug 23 22:52 8.1.0324
--rw-r--r-- 1 506 450 2183 Aug 23 23:01 8.1.0325
--rw-r--r-- 1 506 450 4926 Aug 24 21:31 8.1.0326
--rw-r--r-- 1 506 450 4900 Aug 24 22:08 8.1.0327
--rw-r--r-- 1 506 450 4775 Aug 26 21:23 8.1.0328
--rw-r--r-- 1 506 450 1872 Aug 27 23:24 8.1.0329
--rw-r--r-- 1 506 450 6219 Aug 28 22:08 8.1.0330
--rw-r--r-- 1 506 450 3811 Aug 28 22:20 8.1.0331
--rw-r--r-- 1 506 450 1940 Aug 29 21:43 8.1.0332
--rw-r--r-- 1 506 450 5951 Aug 29 21:43 8.1.0333
--rw-r--r-- 1 506 450 3122 Aug 30 13:07 8.1.0334
--rw-r--r-- 1 506 450 1780 Aug 30 14:05 8.1.0335
--rw-r--r-- 1 506 450 3139 Aug 30 14:16 8.1.0336
--rw-r--r-- 1 506 450 3531 Aug 30 15:59 8.1.0337
--rw-r--r-- 1 506 450 5890 Aug 30 17:47 8.1.0338
--rw-r--r-- 1 506 450 3237 Aug 31 22:10 8.1.0339
--rw-r--r-- 1 506 450 2219 Aug 31 22:27 8.1.0340
--rw-r--r-- 1 506 450 8417 Aug 31 23:07 8.1.0341
--rw-r--r-- 1 506 450 6555 Sep 01 15:30 8.1.0342
--rw-r--r-- 1 506 450 1636 Sep 02 14:25 8.1.0343
--rw-r--r-- 1 506 450 2422 Sep 02 15:07 8.1.0344
--rw-r--r-- 1 506 450 10052 Sep 02 15:19 8.1.0345
--rw-r--r-- 1 506 450 57731 Sep 02 15:27 8.1.0346
--rw-r--r-- 1 506 450 5485 Sep 05 22:26 8.1.0347
--rw-r--r-- 1 506 450 4181 Sep 05 22:26 8.1.0348
--rw-r--r-- 1 506 450 5581 Sep 06 13:16 8.1.0349
--rw-r--r-- 1 506 450 6919 Sep 06 16:27 8.1.0350
--rw-r--r-- 1 506 450 5206 Sep 06 21:44 8.1.0351
--rw-r--r-- 1 506 450 8073 Sep 08 15:11 8.1.0352
--rw-r--r-- 1 506 450 8839 Sep 08 18:21 8.1.0353
--rw-r--r-- 1 506 450 2279 Sep 08 19:13 8.1.0354
--rw-r--r-- 1 506 450 3168 Sep 09 15:29 8.1.0355
--rw-r--r-- 1 506 450 6409 Sep 09 15:55 8.1.0356
--rw-r--r-- 1 506 450 4016 Sep 09 15:56 8.1.0357
--rw-r--r-- 1 506 450 1607 Sep 09 19:56 8.1.0358
--rw-r--r-- 1 506 450 3072 Sep 09 22:03 8.1.0359
--rw-r--r-- 1 506 450 237081 Sep 10 19:04 8.1.0360
--rw-r--r-- 1 506 450 4571 Sep 10 19:04 8.1.0361
--rw-r--r-- 1 506 450 227344 Sep 10 21:16 8.1.0362
--rw-r--r-- 1 506 450 2800 Sep 10 21:16 8.1.0363
--rw-r--r-- 1 506 450 2130 Sep 10 21:22 8.1.0364
--rw-r--r-- 1 506 450 28602 Sep 10 22:04 8.1.0365
--rw-r--r-- 1 506 450 3826 Sep 10 22:19 8.1.0366
--rw-r--r-- 1 506 450 1749 Sep 11 20:11 8.1.0367
--rw-r--r-- 1 506 450 20303 Sep 11 21:30 8.1.0368
--rw-r--r-- 1 506 450 9213 Sep 11 22:46 8.1.0369
--rw-r--r-- 1 506 450 1651 Sep 12 18:34 8.1.0370
--rw-r--r-- 1 506 450 6298 Sep 12 20:29 8.1.0371
--rw-r--r-- 1 506 450 5591 Sep 12 21:52 8.1.0372
--rw-r--r-- 1 506 450 1768 Sep 12 22:27 8.1.0373
--rw-r--r-- 1 506 450 19602 Sep 12 23:16 8.1.0374
--rw-r--r-- 1 506 450 2197 Sep 13 13:03 8.1.0375
--rw-r--r-- 1 506 450 2133 Sep 13 14:58 8.1.0376
--rw-r--r-- 1 506 450 21413 Sep 13 15:34 8.1.0377
--rw-r--r-- 1 506 450 2048 Sep 13 15:59 8.1.0378
--rw-r--r-- 1 506 450 125615 Sep 13 17:33 8.1.0379
--rw-r--r-- 1 506 450 6840 Sep 13 17:33 8.1.0380
--rw-r--r-- 1 506 450 1858 Sep 13 17:33 8.1.0381
--rw-r--r-- 1 506 450 9705 Sep 13 18:02 8.1.0382
--rw-r--r-- 1 506 450 1782 Sep 13 18:06 8.1.0383
--rw-r--r-- 1 506 450 5127 Sep 13 18:33 8.1.0384
--rw-r--r-- 1 506 450 2742 Sep 13 19:05 8.1.0385
--rw-r--r-- 1 506 450 5812 Sep 13 20:32 8.1.0386
--rw-r--r-- 1 506 450 2071 Sep 13 20:47 8.1.0387
--rw-r--r-- 1 506 450 1579 Sep 13 21:30 8.1.0388
--rw-r--r-- 1 506 450 2651 Sep 14 20:11 8.1.0389
--rw-r--r-- 1 506 450 6076 Sep 14 21:27 8.1.0390
--rw-r--r-- 1 506 450 2344 Sep 15 15:09 8.1.0391
--rw-r--r-- 1 506 450 9049 Sep 15 15:43 8.1.0392
--rw-r--r-- 1 506 450 27803 Sep 15 19:18 8.1.0393
--rw-r--r-- 1 506 450 6228 Sep 16 14:11 8.1.0394
--rw-r--r-- 1 506 450 1672 Sep 16 14:52 8.1.0395
--rw-r--r-- 1 506 450 1768 Sep 16 15:15 8.1.0396
--rw-r--r-- 1 506 450 15721 Sep 16 15:48 8.1.0397
--rw-r--r-- 1 506 450 4360 Sep 16 16:28 8.1.0398
--rw-r--r-- 1 506 450 8813 Sep 16 17:08 8.1.0399
--rw-r--r-- 1 506 450 2686 Sep 16 18:11 8.1.0400
--rw-r--r-- 1 506 450 8652 Sep 16 18:47 8.1.0401
--rw-r--r-- 1 506 450 5092 Sep 18 21:21 8.1.0402
--rw-r--r-- 1 506 450 1357 Sep 18 21:42 8.1.0403
--rw-r--r-- 1 506 450 2233 Sep 18 21:54 8.1.0404
--rw-r--r-- 1 506 450 68527 Sep 18 22:30 8.1.0405
--rw-r--r-- 1 506 450 4335 Sep 18 22:38 8.1.0406
--rw-r--r-- 1 506 450 33033 Sep 18 22:51 8.1.0407
--rw-r--r-- 1 506 450 7190 Sep 18 22:59 8.1.0408
--rw-r--r-- 1 506 450 3554 Sep 19 21:07 8.1.0409
--rw-r--r-- 1 506 450 8456 Sep 19 21:56 8.1.0410
--rw-r--r-- 1 506 450 1570 Sep 19 22:01 8.1.0411
--rw-r--r-- 1 506 450 2839 Sep 19 22:40 8.1.0412
--rw-r--r-- 1 506 450 2486 Sep 20 21:40 8.1.0413
--rw-r--r-- 1 506 450 3066 Sep 21 12:00 8.1.0414
--rw-r--r-- 1 506 450 4556 Sep 21 12:24 8.1.0415
--rw-r--r-- 1 506 450 2741 Sep 21 12:47 8.1.0416
--rw-r--r-- 1 506 450 4674 Sep 21 12:54 8.1.0417
--rw-r--r-- 1 506 450 2249 Sep 21 13:44 8.1.0418
--rw-r--r-- 1 506 450 1921 Sep 21 13:57 8.1.0419
--rw-r--r-- 1 506 450 2056 Sep 21 14:02 8.1.0420
--rw-r--r-- 1 506 450 2776 Sep 21 14:32 8.1.0421
--rw-r--r-- 1 506 450 1647 Sep 21 14:43 8.1.0422
--rw-r--r-- 1 506 450 2704 Sep 21 14:49 8.1.0423
--rw-r--r-- 1 506 450 3886 Sep 21 16:39 8.1.0424
--rw-r--r-- 1 506 450 2891 Sep 21 17:01 8.1.0425
--rw-r--r-- 1 506 450 2598 Sep 22 14:41 8.1.0426
--rw-r--r-- 1 506 450 2361 Sep 22 14:41 8.1.0427
--rw-r--r-- 1 506 450 3757 Sep 22 21:39 8.1.0428
--rw-r--r-- 1 506 450 1649 Sep 23 19:37 8.1.0429
--rw-r--r-- 1 506 450 1332 Sep 24 21:32 8.1.0430
--rw-r--r-- 1 506 450 15030 Sep 24 21:51 8.1.0431
--rw-r--r-- 1 506 450 1645 Sep 25 19:00 8.1.0432
--rw-r--r-- 1 506 450 2241 Sep 25 20:49 8.1.0433
--rw-r--r-- 1 506 450 9471 Sep 25 22:08 8.1.0434
--rw-r--r-- 1 506 450 2271 Sep 25 22:18 8.1.0435
--rw-r--r-- 1 506 450 2471 Sep 25 22:28 8.1.0436
--rw-r--r-- 1 506 450 2119 Sep 28 22:31 8.1.0437
--rw-r--r-- 1 506 450 9235 Sep 28 23:11 8.1.0438
--rw-r--r-- 1 506 450 16394 Sep 30 17:14 8.1.0439
--rw-r--r-- 1 506 450 2960 Sep 30 17:16 8.1.0440
--rw-r--r-- 1 506 450 1734 Sep 30 17:45 8.1.0441
--rw-r--r-- 1 506 450 1685 Sep 30 18:22 8.1.0442
--rw-r--r-- 1 506 450 108558 Sep 30 21:43 8.1.0443
--rw-r--r-- 1 506 450 1546 Oct 02 14:15 8.1.0444
--rw-r--r-- 1 506 450 9270 Oct 02 14:45 8.1.0445
--rw-r--r-- 1 506 450 1447 Oct 02 15:07 8.1.0446
--rw-r--r-- 1 506 450 4197 Oct 02 16:24 8.1.0447
--rw-r--r-- 1 506 450 12315 Oct 02 18:26 8.1.0448
--rw-r--r-- 1 506 450 6929 Oct 02 21:21 8.1.0449
--rw-r--r-- 1 506 450 2060 Oct 02 21:49 8.1.0450
--rw-r--r-- 1 506 450 6235 Oct 03 22:23 8.1.0451
--rw-r--r-- 1 506 450 3847 Oct 06 15:03 8.1.0452
--rw-r--r-- 1 506 450 3698 Oct 06 15:19 8.1.0453
--rw-r--r-- 1 506 450 3104 Oct 06 15:43 8.1.0454
--rw-r--r-- 1 506 450 6496 Oct 07 14:39 8.1.0455
--rw-r--r-- 1 506 450 3080 Oct 07 15:42 8.1.0456
--rw-r--r-- 1 506 450 7330 Oct 07 15:50 8.1.0457
--rw-r--r-- 1 506 450 2997 Oct 07 17:47 8.1.0458
--rw-r--r-- 1 506 450 1582 Oct 07 18:43 8.1.0459
--rw-r--r-- 1 506 450 3900 Oct 07 20:26 8.1.0460
--rw-r--r-- 1 506 450 130449 Oct 07 20:26 8.1.0461
--rw-r--r-- 1 506 450 2953 Oct 07 20:35 8.1.0462
--rw-r--r-- 1 506 450 2527 Oct 07 20:49 8.1.0463
--rw-r--r-- 1 506 450 2848 Oct 07 21:37 8.1.0464
--rw-r--r-- 1 506 450 1671 Oct 07 22:47 8.1.0465
--rw-r--r-- 1 506 450 7829 Oct 07 23:17 8.1.0466
--rw-r--r-- 1 506 450 3658 Oct 08 20:08 8.1.0467
--rw-r--r-- 1 506 450 3212 Oct 09 21:50 8.1.0468
--rw-r--r-- 1 506 450 19665 Oct 11 17:39 8.1.0469
--rw-r--r-- 1 506 450 10852 Oct 11 19:28 8.1.0470
--rw-r--r-- 1 506 450 3488 Oct 12 22:15 8.1.0471
--rw-r--r-- 1 506 450 9221 Oct 13 17:26 8.1.0472
--rw-r--r-- 1 506 450 2574 Oct 13 19:07 8.1.0473
--rw-r--r-- 1 506 450 5110 Oct 14 16:25 8.1.0474
--rw-r--r-- 1 506 450 15480 Oct 14 21:41 8.1.0475
--rw-r--r-- 1 506 450 3035 Oct 14 22:04 8.1.0476
--rw-r--r-- 1 506 450 1255 Oct 14 22:38 8.1.0477
--rw-r--r-- 1 506 450 1704 Oct 19 16:54 8.1.0478
--rw-r--r-- 1 506 450 4319 Oct 15 22:52 8.1.0479
--rw-r--r-- 1 506 450 2299 Oct 19 16:54 8.1.0480
--rw-r--r-- 1 506 450 2186 Oct 16 22:14 8.1.0481
--rw-r--r-- 1 506 450 2192 Oct 19 16:54 8.1.0482
--rw-r--r-- 1 506 450 2806 Oct 17 22:46 8.1.0483
--rw-r--r-- 1 506 450 8349 Oct 19 16:54 8.1.0484
--rw-r--r-- 1 506 450 2921 Oct 19 16:54 8.1.0485
--rw-r--r-- 1 506 450 1842 Oct 19 17:37 8.1.0486
--rw-r--r-- 1 506 450 39192 Oct 19 22:37 8.1.0487
--rw-r--r-- 1 506 450 15995 Oct 20 20:54 8.1.0488
--rw-r--r-- 1 506 450 5140 Oct 21 18:48 8.1.0489
--rw-r--r-- 1 506 450 4061 Oct 21 22:46 8.1.0490
--rw-r--r-- 1 506 450 1640 Oct 23 21:43 8.1.0491
--rw-r--r-- 1 506 450 3142 Oct 25 11:26 8.1.0492
--rw-r--r-- 1 506 450 13964 Oct 25 13:32 8.1.0493
--rw-r--r-- 1 506 450 3977 Oct 25 13:32 8.1.0494
--rw-r--r-- 1 506 450 7883 Oct 25 13:32 8.1.0495
--rw-r--r-- 1 506 450 11218 Oct 25 16:54 8.1.0496
--rw-r--r-- 1 506 450 3122 Oct 25 17:52 8.1.0497
--rw-r--r-- 1 506 450 3486 Oct 27 14:27 8.1.0498
--rw-r--r-- 1 506 450 4415 Oct 28 14:36 8.1.0499
--rw-r--r-- 1 506 450 1549 Oct 28 15:44 8.1.0500
--rw-r--r-- 1 506 450 1823 Oct 30 22:17 8.1.0501
--rw-r--r-- 1 506 450 5075 Oct 31 23:10 8.1.0502
--rw-r--r-- 1 506 450 1854 Nov 01 21:15 8.1.0503
--rw-r--r-- 1 506 450 3277 Nov 02 11:59 8.1.0504
--rw-r--r-- 1 506 450 1858 Nov 03 19:00 8.1.0505
--rw-r--r-- 1 506 450 1836 Nov 03 19:07 8.1.0506
--rw-r--r-- 1 506 450 3054 Nov 03 19:52 8.1.0507
--rw-r--r-- 1 506 450 3099 Nov 03 21:10 8.1.0508
--rw-r--r-- 1 506 450 2311 Nov 03 21:47 8.1.0509
--rw-r--r-- 1 506 450 2146 Nov 04 14:41 8.1.0510
--rw-r--r-- 1 506 450 2370 Nov 04 23:40 8.1.0511
--rw-r--r-- 1 506 450 2387 Nov 05 20:26 8.1.0512
--rw-r--r-- 1 506 450 2564 Nov 05 21:22 8.1.0513
--rw-r--r-- 1 506 450 26020 Nov 10 16:16 8.1.0514
--rw-r--r-- 1 506 450 8965 Nov 10 17:33 8.1.0515
--rw-r--r-- 1 506 450 4755 Nov 10 18:55 8.1.0516
--rw-r--r-- 1 506 450 1951 Nov 10 20:29 8.1.0517
--rw-r--r-- 1 506 450 2801 Nov 10 20:48 8.1.0518
--rw-r--r-- 1 506 450 23694 Nov 11 15:21 8.1.0519
--rw-r--r-- 1 506 450 1717 Nov 11 18:52 8.1.0520
--rw-r--r-- 1 506 450 1657 Nov 11 21:23 8.1.0521
--rw-r--r-- 1 506 450 2564 Nov 11 22:19 8.1.0522
--rw-r--r-- 1 506 450 12244 Nov 11 22:51 8.1.0523
--rw-r--r-- 1 506 450 2080 Nov 11 23:15 8.1.0524
--rw-r--r-- 1 506 450 3553 Nov 12 21:43 8.1.0525
--rw-r--r-- 1 506 450 1694 Nov 12 21:45 8.1.0526
--rw-r--r-- 1 506 450 1727 Nov 14 21:46 8.1.0527
--rw-r--r-- 1 506 450 27062 Nov 16 16:22 8.1.0528
--rw-r--r-- 1 506 450 3431 Nov 16 16:52 8.1.0529
--rw-r--r-- 1 506 450 3468 Nov 16 17:46 8.1.0530
--rw-r--r-- 1 506 450 2564 Nov 16 18:23 8.1.0531
--rw-r--r-- 1 506 450 10477 Nov 16 18:46 8.1.0532
--rw-r--r-- 1 506 450 1607 Nov 16 18:50 8.1.0533
--rw-r--r-- 1 506 450 10454 Nov 16 19:40 8.1.0534
--rw-r--r-- 1 506 450 2589 Nov 16 20:55 8.1.0535
--rw-r--r-- 1 506 450 2944 Nov 18 12:26 8.1.0536
--rw-r--r-- 1 506 450 2151 Nov 20 02:54 8.1.0537
--rw-r--r-- 1 506 450 1629 Nov 20 04:26 8.1.0538
--rw-r--r-- 1 506 450 3595 Nov 20 13:34 8.1.0539
--rw-r--r-- 1 506 450 3752 Nov 21 14:03 8.1.0540
--rw-r--r-- 1 506 450 2844 Nov 21 14:03 8.1.0541
--rw-r--r-- 1 506 450 13399 Nov 22 12:28 8.1.0542
--rw-r--r-- 1 506 450 2020 Nov 24 14:29 8.1.0543
--rw-r--r-- 1 506 450 13034 Nov 25 02:19 8.1.0544
--rw-r--r-- 1 506 450 2290 Nov 25 04:09 8.1.0545
--rw-r--r-- 1 506 450 1370 Nov 25 04:31 8.1.0546
--rw-r--r-- 1 506 450 1459 Nov 25 05:12 8.1.0547
--rw-r--r-- 1 506 450 1682 Nov 26 21:19 8.1.0548
--rw-r--r-- 1 506 450 3892 Nov 26 21:22 8.1.0549
--rw-r--r-- 1 506 450 3590 Nov 28 20:39 8.1.0550
--rw-r--r-- 1 506 450 2045 Nov 28 21:21 8.1.0551
--rw-r--r-- 1 506 450 3711 Nov 30 21:58 8.1.0552
--rw-r--r-- 1 506 450 6225 Nov 30 22:40 8.1.0553
--rw-r--r-- 1 506 450 4062 Dec 01 12:03 8.1.0554
--rw-r--r-- 1 506 450 2343 Dec 01 13:15 8.1.0555
--rw-r--r-- 1 506 450 3947 Dec 01 21:08 8.1.0556
--rw-r--r-- 1 506 450 16010 Dec 02 14:04 8.1.0557
--rw-r--r-- 1 506 450 7059 Dec 02 14:04 8.1.0558
--rw-r--r-- 1 506 450 3535 Dec 02 14:55 8.1.0559
--rw-r--r-- 1 506 450 4527 Dec 02 18:22 8.1.0560
--rw-r--r-- 1 506 450 1987 Dec 03 21:38 8.1.0561
--rw-r--r-- 1 506 450 7029 Dec 04 22:25 8.1.0562
--rw-r--r-- 1 506 450 1734 Dec 04 22:38 8.1.0563
--rw-r--r-- 1 506 450 2097 Dec 05 18:44 8.1.0564
--rw-r--r-- 1 506 450 1779 Dec 05 19:46 8.1.0565
--rw-r--r-- 1 506 450 2201 Dec 07 14:19 8.1.0566
--rw-r--r-- 1 506 450 1986 Dec 07 14:41 8.1.0567
--rw-r--r-- 1 506 450 2214 Dec 07 14:42 8.1.0568
--rw-r--r-- 1 506 450 3027 Dec 07 16:38 8.1.0569
--rw-r--r-- 1 506 450 4021 Dec 07 21:09 8.1.0570
--rw-r--r-- 1 506 450 3527 Dec 08 14:46 8.1.0571
--rw-r--r-- 1 506 450 2180 Dec 08 14:53 8.1.0572
--rw-r--r-- 1 506 450 9154 Dec 08 16:05 8.1.0573
--rw-r--r-- 1 506 450 3955 Dec 09 15:01 8.1.0574
--rw-r--r-- 1 506 450 10330 Dec 09 15:53 8.1.0575
--rw-r--r-- 1 506 450 2167 Dec 10 21:37 8.1.0576
--rw-r--r-- 1 506 450 5482 Dec 11 20:40 8.1.0577
--rw-r--r-- 1 506 450 8465 Dec 12 20:35 8.1.0578
--rw-r--r-- 1 506 450 74440 Dec 13 22:21 8.1.0579
--rw-r--r-- 1 506 450 24897 Dec 13 22:21 MD5SUMS
--rw-r--r-- 1 506 450 36772 Dec 13 22:21 README
diff --git a/data/vim/patches/8.1.0333 b/data/vim/patches/8.1.0333
index f4179ce59..e33c1d4d0 100644
--- a/data/vim/patches/8.1.0333
+++ b/data/vim/patches/8.1.0333
@@ -1,133 +1,215 @@
-diff --git src/ex_docmd.c src/ex_docmd.c
-index d4cf6a2c0..c8a1c3f23 100644
---- src/ex_docmd.c
-+++ src/ex_docmd.c
-@@ -11706,6 +11706,18 @@ ses_do_win(win_T *wp)
- return TRUE;
- }
-
-+ static int
-+put_view_curpos(FILE *fd, win_T *wp, char *spaces)
-+{
-+ int r;
-+
-+ if (wp->w_curswant == MAXCOL)
-+ r = fprintf(fd, "%snormal! $", spaces);
-+ else
-+ r = fprintf(fd, "%snormal! 0%d|", spaces, wp->w_virtcol + 1);
-+ return r < 0 || put_eol(fd) == FAIL ? FALSE : OK;
-+}
-+
- /*
- * Write commands to "fd" to restore the view of a window.
- * Caller must make sure 'scrolloff' is zero.
-@@ -11897,17 +11909,12 @@ put_view(
- (long)wp->w_virtcol + 1) < 0
- || put_eol(fd) == FAIL
- || put_line(fd, "else") == FAIL
-- || fprintf(fd, " normal! 0%d|", wp->w_virtcol + 1) < 0
-- || put_eol(fd) == FAIL
-+ || put_view_curpos(fd, wp, " ") == FAIL
- || put_line(fd, "endif") == FAIL)
- return FAIL;
- }
-- else
-- {
-- if (fprintf(fd, "normal! 0%d|", wp->w_virtcol + 1) < 0
-- || put_eol(fd) == FAIL)
-- return FAIL;
-- }
-+ else if (put_view_curpos(fd, wp, "") == FAIL)
-+ return FAIL;
- }
- }
-
-diff --git src/testdir/test_mksession.vim src/testdir/test_mksession.vim
-index c0b82ffa8..ed8b10fa0 100644
---- src/testdir/test_mksession.vim
-+++ src/testdir/test_mksession.vim
-@@ -22,7 +22,8 @@ func Test_mksession()
- \ 'two tabs in one line',
- \ 'one ä multibyteCharacter',
- \ 'aä Ä two multiByte characters',
-- \ 'Aäöü three mulTibyte characters'
-+ \ 'Aäöü three mulTibyte characters',
-+ \ 'short line',
- \ ])
- let tmpfile = 'Xtemp'
- exec 'w! ' . tmpfile
-@@ -44,6 +45,8 @@ func Test_mksession()
- norm! j16|
- split
- norm! j16|
-+ split
-+ norm! j$
- wincmd l
-
- set nowrap
-@@ -66,7 +69,7 @@ func Test_mksession()
- split
- call wincol()
- mksession! Xtest_mks.out
-- let li = filter(readfile('Xtest_mks.out'), 'v:val =~# "\\(^ *normal! 0\\|^ *exe ''normal!\\)"')
-+ let li = filter(readfile('Xtest_mks.out'), 'v:val =~# "\\(^ *normal! [0$]\\|^ *exe ''normal!\\)"')
- let expected = [
- \ 'normal! 016|',
- \ 'normal! 016|',
-@@ -76,6 +79,7 @@ func Test_mksession()
- \ 'normal! 016|',
- \ 'normal! 016|',
- \ 'normal! 016|',
-+ \ 'normal! $',
- \ " exe 'normal! ' . s:c . '|zs' . 16 . '|'",
- \ " normal! 016|",
- \ " exe 'normal! ' . s:c . '|zs' . 16 . '|'",
-@@ -317,7 +321,7 @@ func Test_mkview_file()
- help :mkview
- set number
- norm! V}zf
-- let pos = getpos('.')
-+ let pos = getcurpos()
- let linefoldclosed1 = foldclosed('.')
- mkview! Xview
- set nonumber
-@@ -329,7 +333,7 @@ func Test_mkview_file()
- source Xview
- call assert_equal(1, &number)
- call assert_match('\*:mkview\*$', getline('.'))
-- call assert_equal(pos, getpos('.'))
-+ call assert_equal(pos, getcurpos())
- call assert_equal(linefoldclosed1, foldclosed('.'))
-
- " Creating a view again with the same file name should fail (file
-@@ -352,7 +356,7 @@ func Test_mkview_loadview_with_viewdir()
- help :mkview
- set number
- norm! V}zf
-- let pos = getpos('.')
-+ let pos = getcurpos()
- let linefoldclosed1 = foldclosed('.')
- mkview 1
- set nonumber
-@@ -369,7 +373,7 @@ func Test_mkview_loadview_with_viewdir()
- \ glob('Xviewdir/*'))
- call assert_equal(1, &number)
- call assert_match('\*:mkview\*$', getline('.'))
-- call assert_equal(pos, getpos('.'))
-+ call assert_equal(pos, getcurpos())
- call assert_equal(linefoldclosed1, foldclosed('.'))
-
- call delete('Xviewdir', 'rf')
-diff --git src/version.c src/version.c
-index 243e213d2..c2f64d37a 100644
---- src/version.c
-+++ src/version.c
-@@ -795,6 +795,8 @@ static char *(features[]) =
- static int included_patches[] =
- { /* Add new patch number below this line */
- /**/
-+ 333,
-+/**/
- 332,
- /**/
- 331,
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0333
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0333
+Problem: :mkview does not restore cursor properly after "$". (Dominique
+ Pelle)
+Solution: Position the cursor with "normal! $".
+Files: src/ex_docmd.c, src/testdir/test_mksession.vim
+
+
+*** ../vim-8.1.0332/src/ex_docmd.c 2018-08-23 22:51:30.878144125 +0200
+--- src/ex_docmd.c 2018-08-29 20:55:57.947479752 +0200
+***************
+*** 11706,11711 ****
+--- 11706,11723 ----
+ return TRUE;
+ }
+
++ static int
++ put_view_curpos(FILE *fd, win_T *wp, char *spaces)
++ {
++ int r;
++
++ if (wp->w_curswant == MAXCOL)
++ r = fprintf(fd, "%snormal! $", spaces);
++ else
++ r = fprintf(fd, "%snormal! 0%d|", spaces, wp->w_virtcol + 1);
++ return r < 0 || put_eol(fd) == FAIL ? FALSE : OK;
++ }
++
+ /*
+ * Write commands to "fd" to restore the view of a window.
+ * Caller must make sure 'scrolloff' is zero.
+***************
+*** 11897,11913 ****
+ (long)wp->w_virtcol + 1) < 0
+ || put_eol(fd) == FAIL
+ || put_line(fd, "else") == FAIL
+! || fprintf(fd, " normal! 0%d|", wp->w_virtcol + 1) < 0
+! || put_eol(fd) == FAIL
+ || put_line(fd, "endif") == FAIL)
+ return FAIL;
+ }
+! else
+! {
+! if (fprintf(fd, "normal! 0%d|", wp->w_virtcol + 1) < 0
+! || put_eol(fd) == FAIL)
+! return FAIL;
+! }
+ }
+ }
+
+--- 11909,11920 ----
+ (long)wp->w_virtcol + 1) < 0
+ || put_eol(fd) == FAIL
+ || put_line(fd, "else") == FAIL
+! || put_view_curpos(fd, wp, " ") == FAIL
+ || put_line(fd, "endif") == FAIL)
+ return FAIL;
+ }
+! else if (put_view_curpos(fd, wp, "") == FAIL)
+! return FAIL;
+ }
+ }
+
+*** ../vim-8.1.0332/src/testdir/test_mksession.vim 2018-08-28 22:19:27.739993071 +0200
+--- src/testdir/test_mksession.vim 2018-08-29 20:54:27.800200938 +0200
+***************
+*** 22,28 ****
+ \ 'two tabs in one line',
+ \ 'one ä multibyteCharacter',
+ \ 'aä Ä two multiByte characters',
+! \ 'Aäöü three mulTibyte characters'
+ \ ])
+ let tmpfile = 'Xtemp'
+ exec 'w! ' . tmpfile
+--- 22,29 ----
+ \ 'two tabs in one line',
+ \ 'one ä multibyteCharacter',
+ \ 'aä Ä two multiByte characters',
+! \ 'Aäöü three mulTibyte characters',
+! \ 'short line',
+ \ ])
+ let tmpfile = 'Xtemp'
+ exec 'w! ' . tmpfile
+***************
+*** 44,49 ****
+--- 45,52 ----
+ norm! j16|
+ split
+ norm! j16|
++ split
++ norm! j$
+ wincmd l
+
+ set nowrap
+***************
+*** 66,72 ****
+ split
+ call wincol()
+ mksession! Xtest_mks.out
+! let li = filter(readfile('Xtest_mks.out'), 'v:val =~# "\\(^ *normal! 0\\|^ *exe ''normal!\\)"')
+ let expected = [
+ \ 'normal! 016|',
+ \ 'normal! 016|',
+--- 69,75 ----
+ split
+ call wincol()
+ mksession! Xtest_mks.out
+! let li = filter(readfile('Xtest_mks.out'), 'v:val =~# "\\(^ *normal! [0$]\\|^ *exe ''normal!\\)"')
+ let expected = [
+ \ 'normal! 016|',
+ \ 'normal! 016|',
+***************
+*** 76,81 ****
+--- 79,85 ----
+ \ 'normal! 016|',
+ \ 'normal! 016|',
+ \ 'normal! 016|',
++ \ 'normal! $',
+ \ " exe 'normal! ' . s:c . '|zs' . 16 . '|'",
+ \ " normal! 016|",
+ \ " exe 'normal! ' . s:c . '|zs' . 16 . '|'",
+***************
+*** 317,323 ****
+ help :mkview
+ set number
+ norm! V}zf
+! let pos = getpos('.')
+ let linefoldclosed1 = foldclosed('.')
+ mkview! Xview
+ set nonumber
+--- 321,327 ----
+ help :mkview
+ set number
+ norm! V}zf
+! let pos = getcurpos()
+ let linefoldclosed1 = foldclosed('.')
+ mkview! Xview
+ set nonumber
+***************
+*** 329,335 ****
+ source Xview
+ call assert_equal(1, &number)
+ call assert_match('\*:mkview\*$', getline('.'))
+! call assert_equal(pos, getpos('.'))
+ call assert_equal(linefoldclosed1, foldclosed('.'))
+
+ " Creating a view again with the same file name should fail (file
+--- 333,339 ----
+ source Xview
+ call assert_equal(1, &number)
+ call assert_match('\*:mkview\*$', getline('.'))
+! call assert_equal(pos, getcurpos())
+ call assert_equal(linefoldclosed1, foldclosed('.'))
+
+ " Creating a view again with the same file name should fail (file
+***************
+*** 352,358 ****
+ help :mkview
+ set number
+ norm! V}zf
+! let pos = getpos('.')
+ let linefoldclosed1 = foldclosed('.')
+ mkview 1
+ set nonumber
+--- 356,362 ----
+ help :mkview
+ set number
+ norm! V}zf
+! let pos = getcurpos()
+ let linefoldclosed1 = foldclosed('.')
+ mkview 1
+ set nonumber
+***************
+*** 369,375 ****
+ \ glob('Xviewdir/*'))
+ call assert_equal(1, &number)
+ call assert_match('\*:mkview\*$', getline('.'))
+! call assert_equal(pos, getpos('.'))
+ call assert_equal(linefoldclosed1, foldclosed('.'))
+
+ call delete('Xviewdir', 'rf')
+--- 373,379 ----
+ \ glob('Xviewdir/*'))
+ call assert_equal(1, &number)
+ call assert_match('\*:mkview\*$', getline('.'))
+! call assert_equal(pos, getcurpos())
+ call assert_equal(linefoldclosed1, foldclosed('.'))
+
+ call delete('Xviewdir', 'rf')
+*** ../vim-8.1.0332/src/version.c 2018-08-28 23:09:03.893824422 +0200
+--- src/version.c 2018-08-29 20:57:17.814830811 +0200
+***************
+*** 796,797 ****
+--- 796,799 ----
+ { /* Add new patch number below this line */
++ /**/
++ 333,
+ /**/
+
+--
+Q: What's a light-year?
+A: One-third less calories than a regular year.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/8.1.0580 b/data/vim/patches/8.1.0580
new file mode 100644
index 000000000..ffe1d0482
--- /dev/null
+++ b/data/vim/patches/8.1.0580
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0580
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0580
+Problem: Invalid memory access when using text properties.
+Solution: Disable text properties for now.
+Files: src/feature.h
+
+
+*** ../vim-8.1.0579/src/feature.h 2018-12-13 22:17:52.877941474 +0100
+--- src/feature.h 2018-12-13 23:03:59.425680637 +0100
+***************
+*** 505,511 ****
+ * +textprop Text properties
+ */
+ #if defined(FEAT_EVAL) && defined(FEAT_SYN_HL)
+! # define FEAT_TEXT_PROP
+ #endif
+
+ /*
+--- 505,511 ----
+ * +textprop Text properties
+ */
+ #if defined(FEAT_EVAL) && defined(FEAT_SYN_HL)
+! // # define FEAT_TEXT_PROP
+ #endif
+
+ /*
+*** ../vim-8.1.0579/src/version.c 2018-12-13 23:05:42.580896679 +0100
+--- src/version.c 2018-12-13 22:42:18.650320782 +0100
+***************
+*** 801,802 ****
+--- 801,804 ----
+ { /* Add new patch number below this line */
++ /**/
++ 580,
+ /**/
+
+--
+It doesn't really matter what you are able to do if you don't do it.
+ (Bram Moolenaar)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/8.1.0581 b/data/vim/patches/8.1.0581
new file mode 100644
index 000000000..8b5586a94
--- /dev/null
+++ b/data/vim/patches/8.1.0581
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0581
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0581
+Problem: Double free without the text properties feature.
+Solution: Reset the dirty flag.
+Files: src/memline.c
+
+
+*** ../vim-8.1.0580/src/memline.c 2018-12-13 22:17:52.877941474 +0100
+--- src/memline.c 2018-12-13 23:12:29.129964078 +0100
+***************
+*** 3176,3184 ****
+ {
+ // another line is buffered, flush it
+ ml_flush_line(curbuf);
+
+ #ifdef FEAT_TEXT_PROP
+- curbuf->b_ml.ml_flags &= ~ML_LINE_DIRTY;
+ if (has_any_text_properties(curbuf))
+ // Need to fetch the old line to copy over any text properties.
+ ml_get_buf(curbuf, lnum, TRUE);
+--- 3176,3184 ----
+ {
+ // another line is buffered, flush it
+ ml_flush_line(curbuf);
++ curbuf->b_ml.ml_flags &= ~ML_LINE_DIRTY;
+
+ #ifdef FEAT_TEXT_PROP
+ if (has_any_text_properties(curbuf))
+ // Need to fetch the old line to copy over any text properties.
+ ml_get_buf(curbuf, lnum, TRUE);
+*** ../vim-8.1.0580/src/version.c 2018-12-13 23:05:52.740820586 +0100
+--- src/version.c 2018-12-13 23:15:49.320578507 +0100
+***************
+*** 801,802 ****
+--- 801,804 ----
+ { /* Add new patch number below this line */
++ /**/
++ 581,
+ /**/
+
+--
+No engineer can take a shower without wondering if some sort of Teflon coating
+would make showering unnecessary.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/8.1.0582 b/data/vim/patches/8.1.0582
new file mode 100644
index 000000000..24c9c1f50
--- /dev/null
+++ b/data/vim/patches/8.1.0582
@@ -0,0 +1,217 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0582
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0582
+Problem: Text properties are not enabled.
+Solution: Fix sizeof argument and re-enable the text properties feature.
+ Fix memory leak.
+Files: src/feature.h, src/textprop.c
+
+
+*** ../vim-8.1.0581/src/feature.h 2018-12-13 23:05:52.740820586 +0100
+--- src/feature.h 2018-12-13 23:20:19.014745889 +0100
+***************
+*** 505,511 ****
+ * +textprop Text properties
+ */
+ #if defined(FEAT_EVAL) && defined(FEAT_SYN_HL)
+! // # define FEAT_TEXT_PROP
+ #endif
+
+ /*
+--- 505,511 ----
+ * +textprop Text properties
+ */
+ #if defined(FEAT_EVAL) && defined(FEAT_SYN_HL)
+! # define FEAT_TEXT_PROP
+ #endif
+
+ /*
+*** ../vim-8.1.0581/src/textprop.c 2018-12-13 22:17:52.881941445 +0100
+--- src/textprop.c 2018-12-14 12:03:01.498830663 +0100
+***************
+*** 151,157 ****
+ size_t textlen;
+ char_u *props;
+ char_u *newprops;
+! static textprop_T tmp_prop; // static to get it aligned.
+ int i;
+
+ lnum = get_tv_number(&argvars[0]);
+--- 151,157 ----
+ size_t textlen;
+ char_u *props;
+ char_u *newprops;
+! textprop_T tmp_prop;
+ int i;
+
+ lnum = get_tv_number(&argvars[0]);
+***************
+*** 212,219 ****
+
+ // Fetch the line to get the ml_line_len field updated.
+ proplen = get_text_props(buf, lnum, &props, TRUE);
+
+! if (col >= (colnr_T)STRLEN(buf->b_ml.ml_line_ptr))
+ {
+ EMSGN(_(e_invalid_col), (long)col);
+ return;
+--- 212,220 ----
+
+ // Fetch the line to get the ml_line_len field updated.
+ proplen = get_text_props(buf, lnum, &props, TRUE);
++ textlen = buf->b_ml.ml_line_len - proplen * sizeof(textprop_T);
+
+! if (col >= (colnr_T)textlen - 1)
+ {
+ EMSGN(_(e_invalid_col), (long)col);
+ return;
+***************
+*** 224,230 ****
+ if (newtext == NULL)
+ return;
+ // Copy the text, including terminating NUL.
+- textlen = buf->b_ml.ml_line_len - proplen * sizeof(textprop_T);
+ mch_memmove(newtext, buf->b_ml.ml_line_ptr, textlen);
+
+ // Find the index where to insert the new property.
+--- 225,230 ----
+***************
+*** 232,239 ****
+ // text, we need to copy them as bytes before using it as a struct.
+ for (i = 0; i < proplen; ++i)
+ {
+! mch_memmove(&tmp_prop, props + i * sizeof(proptype_T),
+! sizeof(proptype_T));
+ if (tmp_prop.tp_col >= col)
+ break;
+ }
+--- 232,239 ----
+ // text, we need to copy them as bytes before using it as a struct.
+ for (i = 0; i < proplen; ++i)
+ {
+! mch_memmove(&tmp_prop, props + i * sizeof(textprop_T),
+! sizeof(textprop_T));
+ if (tmp_prop.tp_col >= col)
+ break;
+ }
+***************
+*** 274,280 ****
+ }
+
+ /*
+! * Fetch the text properties for line "lnum" in buffer 'buf".
+ * Returns the number of text properties and, when non-zero, a pointer to the
+ * first one in "props" (note that it is not aligned, therefore the char_u
+ * pointer).
+--- 274,280 ----
+ }
+
+ /*
+! * Fetch the text properties for line "lnum" in buffer "buf".
+ * Returns the number of text properties and, when non-zero, a pointer to the
+ * first one in "props" (note that it is not aligned, therefore the char_u
+ * pointer).
+***************
+*** 617,627 ****
+ {
+ *htp = (hashtab_T *)alloc(sizeof(hashtab_T));
+ if (*htp == NULL)
+ return;
+ hash_init(*htp);
+ }
+! hash_add(buf == NULL ? global_proptypes : buf->b_proptypes,
+! PT2HIKEY(prop));
+ }
+ else
+ {
+--- 617,629 ----
+ {
+ *htp = (hashtab_T *)alloc(sizeof(hashtab_T));
+ if (*htp == NULL)
++ {
++ vim_free(prop);
+ return;
++ }
+ hash_init(*htp);
+ }
+! hash_add(*htp, PT2HIKEY(prop));
+ }
+ else
+ {
+***************
+*** 640,646 ****
+ char_u *highlight;
+ int hl_id = 0;
+
+! highlight = get_dict_string(dict, (char_u *)"highlight", TRUE);
+ if (highlight != NULL && *highlight != NUL)
+ hl_id = syn_name2id(highlight);
+ if (hl_id <= 0)
+--- 642,648 ----
+ char_u *highlight;
+ int hl_id = 0;
+
+! highlight = get_dict_string(dict, (char_u *)"highlight", FALSE);
+ if (highlight != NULL && *highlight != NUL)
+ hl_id = syn_name2id(highlight);
+ if (hl_id <= 0)
+***************
+*** 721,732 ****
+--- 723,736 ----
+ if (hi != NULL)
+ {
+ hashtab_T *ht;
++ proptype_T *prop = HI2PT(hi);
+
+ if (buf == NULL)
+ ht = global_proptypes;
+ else
+ ht = buf->b_proptypes;
+ hash_remove(ht, hi);
++ vim_free(prop);
+ }
+ }
+
+***************
+*** 846,852 ****
+
+ #if defined(EXITFREE) || defined(PROTO)
+ /*
+! * Free all property types for "buf".
+ */
+ void
+ clear_global_prop_types(void)
+--- 850,856 ----
+
+ #if defined(EXITFREE) || defined(PROTO)
+ /*
+! * Free all global property types.
+ */
+ void
+ clear_global_prop_types(void)
+*** ../vim-8.1.0581/src/version.c 2018-12-13 23:16:32.808280772 +0100
+--- src/version.c 2018-12-14 11:56:24.389414251 +0100
+***************
+*** 801,802 ****
+--- 801,804 ----
+ { /* Add new patch number below this line */
++ /**/
++ 582,
+ /**/
+
+--
+Normal people believe that if it ain't broke, don't fix it. Engineers believe
+that if it ain't broke, it doesn't have enough features yet.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/8.1.0583 b/data/vim/patches/8.1.0583
new file mode 100644
index 000000000..fb0d77e18
--- /dev/null
+++ b/data/vim/patches/8.1.0583
@@ -0,0 +1,639 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0583
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0583
+Problem: Using illogical name for get_dict_number()/get_dict_string().
+Solution: Rename to start with dict_.
+Files: src/dict.c, src/proto/dict.pro, src/edit.c, src/eval.c,
+ src/evalfunc.c, src/quickfix.c, src/tag.c, src/terminal.c,
+ src/textprop.c
+
+
+*** ../vim-8.1.0582/src/dict.c 2018-11-11 15:20:32.432704446 +0100
+--- src/dict.c 2018-12-14 15:33:01.734097359 +0100
+***************
+*** 487,493 ****
+ * Returns NULL if the entry doesn't exist or out of memory.
+ */
+ char_u *
+! get_dict_string(dict_T *d, char_u *key, int save)
+ {
+ dictitem_T *di;
+ char_u *s;
+--- 487,493 ----
+ * Returns NULL if the entry doesn't exist or out of memory.
+ */
+ char_u *
+! dict_get_string(dict_T *d, char_u *key, int save)
+ {
+ dictitem_T *di;
+ char_u *s;
+***************
+*** 506,512 ****
+ * Returns 0 if the entry doesn't exist.
+ */
+ varnumber_T
+! get_dict_number(dict_T *d, char_u *key)
+ {
+ dictitem_T *di;
+
+--- 506,512 ----
+ * Returns 0 if the entry doesn't exist.
+ */
+ varnumber_T
+! dict_get_number(dict_T *d, char_u *key)
+ {
+ dictitem_T *di;
+
+***************
+*** 583,589 ****
+ * Return OK or FAIL. Returns NOTDONE for {expr}.
+ */
+ int
+! get_dict_tv(char_u **arg, typval_T *rettv, int evaluate)
+ {
+ dict_T *d = NULL;
+ typval_T tvkey;
+--- 583,589 ----
+ * Return OK or FAIL. Returns NOTDONE for {expr}.
+ */
+ int
+! dict_get_tv(char_u **arg, typval_T *rettv, int evaluate)
+ {
+ dict_T *d = NULL;
+ typval_T tvkey;
+*** ../vim-8.1.0582/src/proto/dict.pro 2018-11-11 15:20:32.436704418 +0100
+--- src/proto/dict.pro 2018-12-14 15:33:24.053920604 +0100
+***************
+*** 19,28 ****
+ int dict_add_dict(dict_T *d, char *key, dict_T *dict);
+ long dict_len(dict_T *d);
+ dictitem_T *dict_find(dict_T *d, char_u *key, int len);
+! char_u *get_dict_string(dict_T *d, char_u *key, int save);
+! varnumber_T get_dict_number(dict_T *d, char_u *key);
+ char_u *dict2string(typval_T *tv, int copyID, int restore_copyID);
+! int get_dict_tv(char_u **arg, typval_T *rettv, int evaluate);
+ void dict_extend(dict_T *d1, dict_T *d2, char_u *action);
+ dictitem_T *dict_lookup(hashitem_T *hi);
+ int dict_equal(dict_T *d1, dict_T *d2, int ic, int recursive);
+--- 19,28 ----
+ int dict_add_dict(dict_T *d, char *key, dict_T *dict);
+ long dict_len(dict_T *d);
+ dictitem_T *dict_find(dict_T *d, char_u *key, int len);
+! char_u *dict_get_string(dict_T *d, char_u *key, int save);
+! varnumber_T dict_get_number(dict_T *d, char_u *key);
+ char_u *dict2string(typval_T *tv, int copyID, int restore_copyID);
+! int dict_get_tv(char_u **arg, typval_T *rettv, int evaluate);
+ void dict_extend(dict_T *d1, dict_T *d2, char_u *action);
+ dictitem_T *dict_lookup(hashitem_T *hi);
+ int dict_equal(dict_T *d1, dict_T *d2, int ic, int recursive);
+*** ../vim-8.1.0582/src/edit.c 2018-12-13 22:17:52.873941502 +0100
+--- src/edit.c 2018-12-14 15:35:23.996987382 +0100
+***************
+*** 4343,4365 ****
+
+ if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL)
+ {
+! word = get_dict_string(tv->vval.v_dict, (char_u *)"word", FALSE);
+! cptext[CPT_ABBR] = get_dict_string(tv->vval.v_dict,
+ (char_u *)"abbr", FALSE);
+! cptext[CPT_MENU] = get_dict_string(tv->vval.v_dict,
+ (char_u *)"menu", FALSE);
+! cptext[CPT_KIND] = get_dict_string(tv->vval.v_dict,
+ (char_u *)"kind", FALSE);
+! cptext[CPT_INFO] = get_dict_string(tv->vval.v_dict,
+ (char_u *)"info", FALSE);
+! cptext[CPT_USER_DATA] = get_dict_string(tv->vval.v_dict,
+ (char_u *)"user_data", FALSE);
+! if (get_dict_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL)
+! icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
+! if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
+! adup = get_dict_number(tv->vval.v_dict, (char_u *)"dup");
+! if (get_dict_string(tv->vval.v_dict, (char_u *)"empty", FALSE) != NULL)
+! aempty = get_dict_number(tv->vval.v_dict, (char_u *)"empty");
+ }
+ else
+ {
+--- 4343,4365 ----
+
+ if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL)
+ {
+! word = dict_get_string(tv->vval.v_dict, (char_u *)"word", FALSE);
+! cptext[CPT_ABBR] = dict_get_string(tv->vval.v_dict,
+ (char_u *)"abbr", FALSE);
+! cptext[CPT_MENU] = dict_get_string(tv->vval.v_dict,
+ (char_u *)"menu", FALSE);
+! cptext[CPT_KIND] = dict_get_string(tv->vval.v_dict,
+ (char_u *)"kind", FALSE);
+! cptext[CPT_INFO] = dict_get_string(tv->vval.v_dict,
+ (char_u *)"info", FALSE);
+! cptext[CPT_USER_DATA] = dict_get_string(tv->vval.v_dict,
+ (char_u *)"user_data", FALSE);
+! if (dict_get_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL)
+! icase = dict_get_number(tv->vval.v_dict, (char_u *)"icase");
+! if (dict_get_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
+! adup = dict_get_number(tv->vval.v_dict, (char_u *)"dup");
+! if (dict_get_string(tv->vval.v_dict, (char_u *)"empty", FALSE) != NULL)
+! aempty = dict_get_number(tv->vval.v_dict, (char_u *)"empty");
+ }
+ else
+ {
+*** ../vim-8.1.0582/src/eval.c 2018-12-05 18:43:24.485493144 +0100
+--- src/eval.c 2018-12-14 15:33:09.746033785 +0100
+***************
+*** 4063,4069 ****
+ */
+ case '{': ret = get_lambda_tv(arg, rettv, evaluate);
+ if (ret == NOTDONE)
+! ret = get_dict_tv(arg, rettv, evaluate);
+ break;
+
+ /*
+--- 4063,4069 ----
+ */
+ case '{': ret = get_lambda_tv(arg, rettv, evaluate);
+ if (ret == NOTDONE)
+! ret = dict_get_tv(arg, rettv, evaluate);
+ break;
+
+ /*
+*** ../vim-8.1.0582/src/evalfunc.c 2018-12-13 22:17:52.873941502 +0100
+--- src/evalfunc.c 2018-12-14 15:32:00.942584406 +0100
+***************
+*** 8072,8078 ****
+ }
+
+ if (dict_find(tv->vval.v_dict, (char_u *)"conceal", -1) != NULL)
+! *conceal_char = get_dict_string(tv->vval.v_dict,
+ (char_u *)"conceal", FALSE);
+
+ if ((di = dict_find(tv->vval.v_dict, (char_u *)"window", -1)) != NULL)
+--- 8072,8078 ----
+ }
+
+ if (dict_find(tv->vval.v_dict, (char_u *)"conceal", -1) != NULL)
+! *conceal_char = dict_get_string(tv->vval.v_dict,
+ (char_u *)"conceal", FALSE);
+
+ if ((di = dict_find(tv->vval.v_dict, (char_u *)"window", -1)) != NULL)
+***************
+*** 10668,10674 ****
+
+ if ((d = argvars[0].vval.v_dict) != NULL)
+ {
+! csearch = get_dict_string(d, (char_u *)"char", FALSE);
+ if (csearch != NULL)
+ {
+ #ifdef FEAT_MBYTE
+--- 10668,10674 ----
+
+ if ((d = argvars[0].vval.v_dict) != NULL)
+ {
+! csearch = dict_get_string(d, (char_u *)"char", FALSE);
+ if (csearch != NULL)
+ {
+ #ifdef FEAT_MBYTE
+***************
+*** 10922,10937 ****
+ }
+ }
+
+! group = get_dict_string(d, (char_u *)"group", TRUE);
+! priority = (int)get_dict_number(d, (char_u *)"priority");
+! id = (int)get_dict_number(d, (char_u *)"id");
+ conceal = dict_find(d, (char_u *)"conceal", -1) != NULL
+! ? get_dict_string(d, (char_u *)"conceal", TRUE)
+ : NULL;
+ if (i == 0)
+ {
+ match_add(curwin, group,
+! get_dict_string(d, (char_u *)"pattern", FALSE),
+ priority, id, NULL, conceal);
+ }
+ else
+--- 10922,10937 ----
+ }
+ }
+
+! group = dict_get_string(d, (char_u *)"group", TRUE);
+! priority = (int)dict_get_number(d, (char_u *)"priority");
+! id = (int)dict_get_number(d, (char_u *)"id");
+ conceal = dict_find(d, (char_u *)"conceal", -1) != NULL
+! ? dict_get_string(d, (char_u *)"conceal", TRUE)
+ : NULL;
+ if (i == 0)
+ {
+ match_add(curwin, group,
+! dict_get_string(d, (char_u *)"pattern", FALSE),
+ priority, id, NULL, conceal);
+ }
+ else
+***************
+*** 13529,13535 ****
+ return;
+ }
+ if (dict_find(dict, (char_u *)"repeat", -1) != NULL)
+! repeat = get_dict_number(dict, (char_u *)"repeat");
+ }
+
+ callback = get_callback(&argvars[1], &partial);
+--- 13529,13535 ----
+ return;
+ }
+ if (dict_find(dict, (char_u *)"repeat", -1) != NULL)
+! repeat = dict_get_number(dict, (char_u *)"repeat");
+ }
+
+ callback = get_callback(&argvars[1], &partial);
+***************
+*** 14080,14108 ****
+ else
+ {
+ if (dict_find(dict, (char_u *)"lnum", -1) != NULL)
+! curwin->w_cursor.lnum = (linenr_T)get_dict_number(dict, (char_u *)"lnum");
+ if (dict_find(dict, (char_u *)"col", -1) != NULL)
+! curwin->w_cursor.col = (colnr_T)get_dict_number(dict, (char_u *)"col");
+ #ifdef FEAT_VIRTUALEDIT
+ if (dict_find(dict, (char_u *)"coladd", -1) != NULL)
+! curwin->w_cursor.coladd = (colnr_T)get_dict_number(dict, (char_u *)"coladd");
+ #endif
+ if (dict_find(dict, (char_u *)"curswant", -1) != NULL)
+ {
+! curwin->w_curswant = (colnr_T)get_dict_number(dict, (char_u *)"curswant");
+ curwin->w_set_curswant = FALSE;
+ }
+
+ if (dict_find(dict, (char_u *)"topline", -1) != NULL)
+! set_topline(curwin, (linenr_T)get_dict_number(dict, (char_u *)"topline"));
+ #ifdef FEAT_DIFF
+ if (dict_find(dict, (char_u *)"topfill", -1) != NULL)
+! curwin->w_topfill = (int)get_dict_number(dict, (char_u *)"topfill");
+ #endif
+ if (dict_find(dict, (char_u *)"leftcol", -1) != NULL)
+! curwin->w_leftcol = (colnr_T)get_dict_number(dict, (char_u *)"leftcol");
+ if (dict_find(dict, (char_u *)"skipcol", -1) != NULL)
+! curwin->w_skipcol = (colnr_T)get_dict_number(dict, (char_u *)"skipcol");
+
+ check_cursor();
+ win_new_height(curwin, curwin->w_height);
+--- 14080,14108 ----
+ else
+ {
+ if (dict_find(dict, (char_u *)"lnum", -1) != NULL)
+! curwin->w_cursor.lnum = (linenr_T)dict_get_number(dict, (char_u *)"lnum");
+ if (dict_find(dict, (char_u *)"col", -1) != NULL)
+! curwin->w_cursor.col = (colnr_T)dict_get_number(dict, (char_u *)"col");
+ #ifdef FEAT_VIRTUALEDIT
+ if (dict_find(dict, (char_u *)"coladd", -1) != NULL)
+! curwin->w_cursor.coladd = (colnr_T)dict_get_number(dict, (char_u *)"coladd");
+ #endif
+ if (dict_find(dict, (char_u *)"curswant", -1) != NULL)
+ {
+! curwin->w_curswant = (colnr_T)dict_get_number(dict, (char_u *)"curswant");
+ curwin->w_set_curswant = FALSE;
+ }
+
+ if (dict_find(dict, (char_u *)"topline", -1) != NULL)
+! set_topline(curwin, (linenr_T)dict_get_number(dict, (char_u *)"topline"));
+ #ifdef FEAT_DIFF
+ if (dict_find(dict, (char_u *)"topfill", -1) != NULL)
+! curwin->w_topfill = (int)dict_get_number(dict, (char_u *)"topfill");
+ #endif
+ if (dict_find(dict, (char_u *)"leftcol", -1) != NULL)
+! curwin->w_leftcol = (colnr_T)dict_get_number(dict, (char_u *)"leftcol");
+ if (dict_find(dict, (char_u *)"skipcol", -1) != NULL)
+! curwin->w_skipcol = (colnr_T)dict_get_number(dict, (char_u *)"skipcol");
+
+ check_cursor();
+ win_new_height(curwin, curwin->w_height);
+*** ../vim-8.1.0582/src/quickfix.c 2018-11-16 18:45:57.864041240 +0100
+--- src/quickfix.c 2018-12-14 15:32:09.382516272 +0100
+***************
+*** 6258,6273 ****
+ if (first_entry)
+ did_bufnr_emsg = FALSE;
+
+! filename = get_dict_string(d, (char_u *)"filename", TRUE);
+! module = get_dict_string(d, (char_u *)"module", TRUE);
+! bufnum = (int)get_dict_number(d, (char_u *)"bufnr");
+! lnum = (int)get_dict_number(d, (char_u *)"lnum");
+! col = (int)get_dict_number(d, (char_u *)"col");
+! vcol = (int)get_dict_number(d, (char_u *)"vcol");
+! nr = (int)get_dict_number(d, (char_u *)"nr");
+! type = get_dict_string(d, (char_u *)"type", TRUE);
+! pattern = get_dict_string(d, (char_u *)"pattern", TRUE);
+! text = get_dict_string(d, (char_u *)"text", TRUE);
+ if (text == NULL)
+ text = vim_strsave((char_u *)"");
+
+--- 6258,6273 ----
+ if (first_entry)
+ did_bufnr_emsg = FALSE;
+
+! filename = dict_get_string(d, (char_u *)"filename", TRUE);
+! module = dict_get_string(d, (char_u *)"module", TRUE);
+! bufnum = (int)dict_get_number(d, (char_u *)"bufnr");
+! lnum = (int)dict_get_number(d, (char_u *)"lnum");
+! col = (int)dict_get_number(d, (char_u *)"col");
+! vcol = (int)dict_get_number(d, (char_u *)"vcol");
+! nr = (int)dict_get_number(d, (char_u *)"nr");
+! type = dict_get_string(d, (char_u *)"type", TRUE);
+! pattern = dict_get_string(d, (char_u *)"pattern", TRUE);
+! text = dict_get_string(d, (char_u *)"text", TRUE);
+ if (text == NULL)
+ text = vim_strsave((char_u *)"");
+
+***************
+*** 6290,6296 ****
+
+ // If the 'valid' field is present it overrules the detected value.
+ if ((dict_find(d, (char_u *)"valid", -1)) != NULL)
+! valid = (int)get_dict_number(d, (char_u *)"valid");
+
+ status = qf_add_entry(qi,
+ qf_idx,
+--- 6290,6296 ----
+
+ // If the 'valid' field is present it overrules the detected value.
+ if ((dict_find(d, (char_u *)"valid", -1)) != NULL)
+! valid = (int)dict_get_number(d, (char_u *)"valid");
+
+ status = qf_add_entry(qi,
+ qf_idx,
+***************
+*** 6456,6462 ****
+ return FAIL;
+
+ vim_free(qfl->qf_title);
+! qfl->qf_title = get_dict_string(what, (char_u *)"title", TRUE);
+ if (qf_idx == qi->qf_curlist)
+ qf_update_win_titlevar(qi);
+
+--- 6456,6462 ----
+ return FAIL;
+
+ vim_free(qfl->qf_title);
+! qfl->qf_title = dict_get_string(what, (char_u *)"title", TRUE);
+ if (qf_idx == qi->qf_curlist)
+ qf_update_win_titlevar(qi);
+
+*** ../vim-8.1.0582/src/tag.c 2018-11-11 15:20:32.436704418 +0100
+--- src/tag.c 2018-12-14 15:32:15.522466806 +0100
+***************
+*** 4160,4173 ****
+ if (list2fpos(&di->di_tv, &mark, &fnum, NULL) != OK)
+ continue;
+ if ((tagname =
+! get_dict_string(itemdict, (char_u *)"tagname", TRUE)) == NULL)
+ continue;
+
+ if (mark.col > 0)
+ mark.col--;
+ tagstack_push_item(wp, tagname,
+! (int)get_dict_number(itemdict, (char_u *)"bufnr"),
+! (int)get_dict_number(itemdict, (char_u *)"matchnr") - 1,
+ mark, fnum);
+ }
+ }
+--- 4160,4173 ----
+ if (list2fpos(&di->di_tv, &mark, &fnum, NULL) != OK)
+ continue;
+ if ((tagname =
+! dict_get_string(itemdict, (char_u *)"tagname", TRUE)) == NULL)
+ continue;
+
+ if (mark.col > 0)
+ mark.col--;
+ tagstack_push_item(wp, tagname,
+! (int)dict_get_number(itemdict, (char_u *)"bufnr"),
+! (int)dict_get_number(itemdict, (char_u *)"matchnr") - 1,
+ mark, fnum);
+ }
+ }
+*** ../vim-8.1.0582/src/terminal.c 2018-11-11 22:18:17.214948188 +0100
+--- src/terminal.c 2018-12-14 15:32:21.230420914 +0100
+***************
+*** 3523,3531 ****
+ dict_T *dict = opt_item->li_tv.vval.v_dict;
+ char_u *p;
+
+! p = get_dict_string(dict, (char_u *)"ff", FALSE);
+ if (p == NULL)
+! p = get_dict_string(dict, (char_u *)"fileformat", FALSE);
+ if (p != NULL)
+ {
+ if (check_ff_value(p) == FAIL)
+--- 3523,3531 ----
+ dict_T *dict = opt_item->li_tv.vval.v_dict;
+ char_u *p;
+
+! p = dict_get_string(dict, (char_u *)"ff", FALSE);
+ if (p == NULL)
+! p = dict_get_string(dict, (char_u *)"fileformat", FALSE);
+ if (p != NULL)
+ {
+ if (check_ff_value(p) == FAIL)
+***************
+*** 3533,3541 ****
+ else
+ ea.force_ff = *p;
+ }
+! p = get_dict_string(dict, (char_u *)"enc", FALSE);
+ if (p == NULL)
+! p = get_dict_string(dict, (char_u *)"encoding", FALSE);
+ if (p != NULL)
+ {
+ ea.cmd = alloc((int)STRLEN(p) + 12);
+--- 3533,3541 ----
+ else
+ ea.force_ff = *p;
+ }
+! p = dict_get_string(dict, (char_u *)"enc", FALSE);
+ if (p == NULL)
+! p = dict_get_string(dict, (char_u *)"encoding", FALSE);
+ if (p != NULL)
+ {
+ ea.cmd = alloc((int)STRLEN(p) + 12);
+***************
+*** 3547,3553 ****
+ }
+ }
+
+! p = get_dict_string(dict, (char_u *)"bad", FALSE);
+ if (p != NULL)
+ get_bad_opt(p, &ea);
+
+--- 3547,3553 ----
+ }
+ }
+
+! p = dict_get_string(dict, (char_u *)"bad", FALSE);
+ if (p != NULL)
+ get_bad_opt(p, &ea);
+
+***************
+*** 3915,3922 ****
+ d = argvars[2].vval.v_dict;
+ if (d != NULL)
+ {
+! max_height = get_dict_number(d, (char_u *)"rows");
+! max_width = get_dict_number(d, (char_u *)"columns");
+ }
+ }
+
+--- 3915,3922 ----
+ d = argvars[2].vval.v_dict;
+ if (d != NULL)
+ {
+! max_height = dict_get_number(d, (char_u *)"rows");
+! max_width = dict_get_number(d, (char_u *)"columns");
+ }
+ }
+
+*** ../vim-8.1.0582/src/textprop.c 2018-12-14 12:18:07.764091572 +0100
+--- src/textprop.c 2018-12-14 15:32:29.026358345 +0100
+***************
+*** 173,179 ****
+ EMSG(_("E965: missing property type name"));
+ return;
+ }
+! type_name = get_dict_string(dict, (char_u *)"type", FALSE);
+
+ if (dict_find(dict, (char_u *)"end_lnum", -1) != NULL)
+ {
+--- 173,179 ----
+ EMSG(_("E965: missing property type name"));
+ return;
+ }
+! type_name = dict_get_string(dict, (char_u *)"type", FALSE);
+
+ if (dict_find(dict, (char_u *)"end_lnum", -1) != NULL)
+ {
+***************
+*** 183,192 ****
+ }
+
+ if (dict_find(dict, (char_u *)"length", -1) != NULL)
+! length = get_dict_number(dict, (char_u *)"length");
+ else if (dict_find(dict, (char_u *)"end_col", -1) != NULL)
+ {
+! length = get_dict_number(dict, (char_u *)"end_col") - col;
+ if (length <= 0)
+ {
+ EMSG2(_(e_invargval), "end_col");
+--- 183,192 ----
+ }
+
+ if (dict_find(dict, (char_u *)"length", -1) != NULL)
+! length = dict_get_number(dict, (char_u *)"length");
+ else if (dict_find(dict, (char_u *)"end_col", -1) != NULL)
+ {
+! length = dict_get_number(dict, (char_u *)"end_col") - col;
+ if (length <= 0)
+ {
+ EMSG2(_(e_invargval), "end_col");
+***************
+*** 195,201 ****
+ }
+
+ if (dict_find(dict, (char_u *)"id", -1) != NULL)
+! id = get_dict_number(dict, (char_u *)"id");
+
+ if (get_bufnr_from_arg(&argvars[2], &buf) == FAIL)
+ return;
+--- 195,201 ----
+ }
+
+ if (dict_find(dict, (char_u *)"id", -1) != NULL)
+! id = dict_get_number(dict, (char_u *)"id");
+
+ if (get_bufnr_from_arg(&argvars[2], &buf) == FAIL)
+ return;
+***************
+*** 265,271 ****
+
+ /*
+ * Return TRUE if any text properties are defined globally or for buffer
+! * 'buf".
+ */
+ int
+ has_any_text_properties(buf_T *buf)
+--- 265,271 ----
+
+ /*
+ * Return TRUE if any text properties are defined globally or for buffer
+! * "buf".
+ */
+ int
+ has_any_text_properties(buf_T *buf)
+***************
+*** 498,510 ****
+
+ di = dict_find(dict, (char_u*)"all", -1);
+ if (di != NULL)
+! do_all = get_dict_number(dict, (char_u *)"all");
+
+ if (dict_find(dict, (char_u *)"id", -1) != NULL)
+! id = get_dict_number(dict, (char_u *)"id");
+ if (dict_find(dict, (char_u *)"type", -1))
+ {
+! char_u *name = get_dict_string(dict, (char_u *)"type", FALSE);
+ proptype_T *type = lookup_prop_type(name, buf);
+
+ if (type == NULL)
+--- 498,510 ----
+
+ di = dict_find(dict, (char_u*)"all", -1);
+ if (di != NULL)
+! do_all = dict_get_number(dict, (char_u *)"all");
+
+ if (dict_find(dict, (char_u *)"id", -1) != NULL)
+! id = dict_get_number(dict, (char_u *)"id");
+ if (dict_find(dict, (char_u *)"type", -1))
+ {
+! char_u *name = dict_get_string(dict, (char_u *)"type", FALSE);
+ proptype_T *type = lookup_prop_type(name, buf);
+
+ if (type == NULL)
+***************
+*** 642,648 ****
+ char_u *highlight;
+ int hl_id = 0;
+
+! highlight = get_dict_string(dict, (char_u *)"highlight", FALSE);
+ if (highlight != NULL && *highlight != NUL)
+ hl_id = syn_name2id(highlight);
+ if (hl_id <= 0)
+--- 642,648 ----
+ char_u *highlight;
+ int hl_id = 0;
+
+! highlight = dict_get_string(dict, (char_u *)"highlight", FALSE);
+ if (highlight != NULL && *highlight != NUL)
+ hl_id = syn_name2id(highlight);
+ if (hl_id <= 0)
+*** ../vim-8.1.0582/src/version.c 2018-12-14 12:18:07.768091544 +0100
+--- src/version.c 2018-12-14 15:36:12.504617009 +0100
+***************
+*** 801,802 ****
+--- 801,804 ----
+ { /* Add new patch number below this line */
++ /**/
++ 583,
+ /**/
+
+--
+The average life of an organization chart is six months. You can safely
+ignore any order from your boss that would take six months to complete.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/8.1.0584 b/data/vim/patches/8.1.0584
new file mode 100644
index 000000000..df29e74fa
--- /dev/null
+++ b/data/vim/patches/8.1.0584
@@ -0,0 +1,66 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0584
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0584
+Problem: With search CTRL-L does not pick up composing characters.
+Solution: Check for composing characters. (Christian Brabandt, closes #3682)
+ [code change was accidentally included in 8.1.0579]
+Files: src/testdir/test_search.vim
+
+
+*** ../vim-8.1.0583/src/testdir/test_search.vim 2018-12-01 13:14:40.883412219 +0100
+--- src/testdir/test_search.vim 2018-12-12 22:16:41.812365708 +0100
+***************
+*** 1154,1156 ****
+--- 1154,1178 ----
+
+ call delete('Xviminfo')
+ endfunc
++
++ func Test_search_Ctrl_L_combining()
++ " Make sure, that Ctrl-L works correctly with combining characters.
++ " It uses an artificial example of an 'a' with 4 combining chars:
++ " 'a' U+0061 Dec:97 LATIN SMALL LETTER A &#x61; /\%u61\Z "\u0061"
++ " ' ̀' U+0300 Dec:768 COMBINING GRAVE ACCENT &#x300; /\%u300\Z "\u0300"
++ " ' Ì' U+0301 Dec:769 COMBINING ACUTE ACCENT &#x301; /\%u301\Z "\u0301"
++ " ' ̇' U+0307 Dec:775 COMBINING DOT ABOVE &#x307; /\%u307\Z "\u0307"
++ " ' ̣' U+0323 Dec:803 COMBINING DOT BELOW &#x323; /\%u323 "\u0323"
++ " Those should also appear on the commandline
++ if !has('multi_byte') || !exists('+incsearch')
++ return
++ endif
++ call Cmdline3_prep()
++ 1
++ let bufcontent = ['', 'MiaÌ€Ị̀̇m']
++ call append('$', bufcontent)
++ call feedkeys("/Mi\<c-l>\<c-l>\<cr>", 'tx')
++ call assert_equal(5, line('.'))
++ call assert_equal(bufcontent[1], @/)
++ call Incsearch_cleanup()
++ endfunc
+*** ../vim-8.1.0583/src/version.c 2018-12-14 15:38:28.331597637 +0100
+--- src/version.c 2018-12-14 15:44:29.752975840 +0100
+***************
+*** 801,802 ****
+--- 801,804 ----
+ { /* Add new patch number below this line */
++ /**/
++ 584,
+ /**/
+
+--
+Never enter the boss's office unless it's absolutely necessary. Every boss
+saves one corner of the desk for useless assignments that are doled out like
+Halloween candy to each visitor.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/8.1.0585 b/data/vim/patches/8.1.0585
new file mode 100644
index 000000000..22ebd64dd
--- /dev/null
+++ b/data/vim/patches/8.1.0585
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0585
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0585
+Problem: Undo test may fail on MS-Windows.
+Solution: Also handle lower case drive letters.
+Files: src/testdir/test_undo.vim
+
+
+*** ../vim-8.1.0584/src/testdir/test_undo.vim 2018-05-26 18:46:26.276087941 +0200
+--- src/testdir/test_undo.vim 2018-12-13 20:23:35.954899917 +0100
+***************
+*** 426,432 ****
+ let cwd = getcwd()
+ if has('win32')
+ " Replace windows drive such as C:... into C%...
+! let cwd = substitute(cwd, '^\([A-Z]\):', '\1%', 'g')
+ endif
+ let cwd = substitute(cwd . '/Xundofoo', '/', '%', 'g')
+ if has('persistent_undo')
+--- 426,432 ----
+ let cwd = getcwd()
+ if has('win32')
+ " Replace windows drive such as C:... into C%...
+! let cwd = substitute(cwd, '^\([a-zA-Z]\):', '\1%', 'g')
+ endif
+ let cwd = substitute(cwd . '/Xundofoo', '/', '%', 'g')
+ if has('persistent_undo')
+*** ../vim-8.1.0584/src/version.c 2018-12-14 15:46:59.519914793 +0100
+--- src/version.c 2018-12-14 15:48:06.983440116 +0100
+***************
+*** 801,802 ****
+--- 801,804 ----
+ { /* Add new patch number below this line */
++ /**/
++ 585,
+ /**/
+
+--
+An operatingsystem is just a name you give to the rest of bloating
+idiosyncratic machine-based-features you left out of your editor.
+ (author unknown)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/8.1.0586 b/data/vim/patches/8.1.0586
new file mode 100644
index 000000000..23aeae158
--- /dev/null
+++ b/data/vim/patches/8.1.0586
@@ -0,0 +1,850 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0586
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0586
+Problem: :digraph output is not easy to read.
+Solution: Add highlighting for :digraphs. (Marcin Szamotulski, closes #3572)
+ Also add section headers for :digraphs!.
+Files: src/ex_docmd.c, src/digraph.c, src/proto/digraph.pro,
+ src/ex_cmds.h, runtime/doc/digraph.txt
+
+
+*** ../vim-8.1.0585/src/ex_docmd.c 2018-12-08 16:03:18.656085902 +0100
+--- src/ex_docmd.c 2018-12-14 15:56:54.547772454 +0100
+***************
+*** 12413,12419 ****
+ if (*eap->arg != NUL)
+ putdigraph(eap->arg);
+ else
+! listdigraphs();
+ #else
+ EMSG(_("E196: No digraphs in this version"));
+ #endif
+--- 12413,12419 ----
+ if (*eap->arg != NUL)
+ putdigraph(eap->arg);
+ else
+! listdigraphs(eap->forceit);
+ #else
+ EMSG(_("E196: No digraphs in this version"));
+ #endif
+*** ../vim-8.1.0585/src/digraph.c 2018-09-30 21:43:17.179693404 +0200
+--- src/digraph.c 2018-12-14 18:49:37.198827111 +0100
+***************
+*** 28,34 ****
+ result_T result;
+ } digr_T;
+
+! static void printdigraph(digr_T *);
+
+ /* digraphs added by the user */
+ static garray_T user_digraphs = {0, 0, (int)sizeof(digr_T), 10, NULL};
+--- 28,34 ----
+ result_T result;
+ } digr_T;
+
+! static void printdigraph(digr_T *dp, result_T *previous);
+
+ /* digraphs added by the user */
+ static garray_T user_digraphs = {0, 0, (int)sizeof(digr_T), 10, NULL};
+***************
+*** 643,743 ****
+--- 643,796 ----
+ {'P', 'M', 0x9e},
+ {'A', 'C', 0x9f},
+ {'N', 'S', 0xa0},
++ #define DG_START_LATIN 0xa1
+ {'!', 'I', 0xa1},
++ {'~', '!', 0xa1}, // ¡ Vim 5.x compatible
+ {'C', 't', 0xa2},
++ {'c', '|', 0xa2}, // ¢ Vim 5.x compatible
+ {'P', 'd', 0xa3},
++ {'$', '$', 0xa3}, // £ Vim 5.x compatible
+ {'C', 'u', 0xa4},
++ {'o', 'x', 0xa4}, // ¤ Vim 5.x compatible
+ {'Y', 'e', 0xa5},
++ {'Y', '-', 0xa5}, // ¥ Vim 5.x compatible
+ {'B', 'B', 0xa6},
++ {'|', '|', 0xa6}, // ¦ Vim 5.x compatible
+ {'S', 'E', 0xa7},
+ {'\'', ':', 0xa8},
+ {'C', 'o', 0xa9},
++ {'c', 'O', 0xa9}, // © Vim 5.x compatible
+ {'-', 'a', 0xaa},
+ {'<', '<', 0xab},
+ {'N', 'O', 0xac},
++ {'-', ',', 0xac}, // ¬ Vim 5.x compatible
+ {'-', '-', 0xad},
+ {'R', 'g', 0xae},
+ {'\'', 'm', 0xaf},
++ {'-', '=', 0xaf}, // ¯ Vim 5.x compatible
+ {'D', 'G', 0xb0},
++ {'~', 'o', 0xb0}, // ° Vim 5.x compatible
+ {'+', '-', 0xb1},
+ {'2', 'S', 0xb2},
++ {'2', '2', 0xb2}, // ² Vim 5.x compatible
+ {'3', 'S', 0xb3},
++ {'3', '3', 0xb3}, // ³ Vim 5.x compatible
+ {'\'', '\'', 0xb4},
+ {'M', 'y', 0xb5},
+ {'P', 'I', 0xb6},
++ {'p', 'p', 0xb6}, // ¶ Vim 5.x compatible
+ {'.', 'M', 0xb7},
++ {'~', '.', 0xb7}, // · Vim 5.x compatible
+ {'\'', ',', 0xb8},
+ {'1', 'S', 0xb9},
++ {'1', '1', 0xb9}, // ¹ Vim 5.x compatible
+ {'-', 'o', 0xba},
+ {'>', '>', 0xbb},
+ {'1', '4', 0xbc},
+ {'1', '2', 0xbd},
+ {'3', '4', 0xbe},
+ {'?', 'I', 0xbf},
++ {'~', '?', 0xbf}, // ¿ Vim 5.x compatible
+ {'A', '!', 0xc0},
++ {'A', '`', 0xc0}, // À Vim 5.x compatible
+ {'A', '\'', 0xc1},
+ {'A', '>', 0xc2},
++ {'A', '^', 0xc2}, // Â Vim 5.x compatible
+ {'A', '?', 0xc3},
++ {'A', '~', 0xc3}, // Ã Vim 5.x compatible
+ {'A', ':', 0xc4},
++ {'A', '"', 0xc4}, // Ä Vim 5.x compatible
+ {'A', 'A', 0xc5},
++ {'A', '@', 0xc5}, // Å Vim 5.x compatible
+ {'A', 'E', 0xc6},
+ {'C', ',', 0xc7},
+ {'E', '!', 0xc8},
++ {'E', '`', 0xc8}, // È Vim 5.x compatible
+ {'E', '\'', 0xc9},
+ {'E', '>', 0xca},
++ {'E', '^', 0xca}, // Ê Vim 5.x compatible
+ {'E', ':', 0xcb},
++ {'E', '"', 0xcb}, // Ë Vim 5.x compatible
+ {'I', '!', 0xcc},
++ {'I', '`', 0xcc}, // Ì Vim 5.x compatible
+ {'I', '\'', 0xcd},
+ {'I', '>', 0xce},
++ {'I', '^', 0xce}, // Î Vim 5.x compatible
+ {'I', ':', 0xcf},
++ {'I', '"', 0xcf}, // Ï Vim 5.x compatible
+ {'D', '-', 0xd0},
+ {'N', '?', 0xd1},
++ {'N', '~', 0xd1}, // Ñ Vim 5.x compatible
+ {'O', '!', 0xd2},
++ {'O', '`', 0xd2}, // Ò Vim 5.x compatible
+ {'O', '\'', 0xd3},
+ {'O', '>', 0xd4},
++ {'O', '^', 0xd4}, // Ô Vim 5.x compatible
+ {'O', '?', 0xd5},
++ {'O', '~', 0xd5}, // Õ Vim 5.x compatible
+ {'O', ':', 0xd6},
+ {'*', 'X', 0xd7},
++ {'/', '\\', 0xd7}, // × Vim 5.x compatible
+ {'O', '/', 0xd8},
+ {'U', '!', 0xd9},
++ {'U', '`', 0xd9}, // Ù Vim 5.x compatible
+ {'U', '\'', 0xda},
+ {'U', '>', 0xdb},
++ {'U', '^', 0xdb}, // Û Vim 5.x compatible
+ {'U', ':', 0xdc},
+ {'Y', '\'', 0xdd},
+ {'T', 'H', 0xde},
++ {'I', 'p', 0xde}, // Þ Vim 5.x compatible
+ {'s', 's', 0xdf},
+ {'a', '!', 0xe0},
++ {'a', '`', 0xe0}, // à Vim 5.x compatible
+ {'a', '\'', 0xe1},
+ {'a', '>', 0xe2},
++ {'a', '^', 0xe2}, // â Vim 5.x compatible
+ {'a', '?', 0xe3},
++ {'a', '~', 0xe3}, // ã Vim 5.x compatible
+ {'a', ':', 0xe4},
++ {'a', '"', 0xe4}, // ä Vim 5.x compatible
+ {'a', 'a', 0xe5},
++ {'a', '@', 0xe5}, // å Vim 5.x compatible
+ {'a', 'e', 0xe6},
+ {'c', ',', 0xe7},
+ {'e', '!', 0xe8},
++ {'e', '`', 0xe8}, // è Vim 5.x compatible
+ {'e', '\'', 0xe9},
+ {'e', '>', 0xea},
++ {'e', '^', 0xea}, // ê Vim 5.x compatible
+ {'e', ':', 0xeb},
++ {'e', '"', 0xeb}, // ë Vim 5.x compatible
+ {'i', '!', 0xec},
++ {'i', '`', 0xec}, // ì Vim 5.x compatible
+ {'i', '\'', 0xed},
+ {'i', '>', 0xee},
++ {'i', '^', 0xee}, // î Vim 5.x compatible
+ {'i', ':', 0xef},
+ {'d', '-', 0xf0},
+ {'n', '?', 0xf1},
++ {'n', '~', 0xf1}, // ñ Vim 5.x compatible
+ {'o', '!', 0xf2},
++ {'o', '`', 0xf2}, // ò Vim 5.x compatible
+ {'o', '\'', 0xf3},
+ {'o', '>', 0xf4},
++ {'o', '^', 0xf4}, // ô Vim 5.x compatible
+ {'o', '?', 0xf5},
++ {'o', '~', 0xf5}, // õ Vim 5.x compatible
+ {'o', ':', 0xf6},
+ {'-', ':', 0xf7},
+ {'o', '/', 0xf8},
+ {'u', '!', 0xf9},
++ {'u', '`', 0xf9}, // ù Vim 5.x compatible
+ {'u', '\'', 0xfa},
+ {'u', '>', 0xfb},
++ {'u', '^', 0xfb}, // û Vim 5.x compatible
+ {'u', ':', 0xfc},
+ {'y', '\'', 0xfd},
+ {'t', 'h', 0xfe},
+ {'y', ':', 0xff},
++ {'y', '"', 0xff}, // x XX Vim 5.x compatible
+
+ # ifdef FEAT_MBYTE
+ # define USE_UNICODE_DIGRAPHS
+***************
+*** 915,920 ****
+--- 968,974 ----
+ {'\'', '0', 0x02da},
+ {'\'', ';', 0x02db},
+ {'\'', '"', 0x02dd},
++ #define DG_START_GREEK 0x0386
+ {'A', '%', 0x0386},
+ {'E', '%', 0x0388},
+ {'Y', '%', 0x0389},
+***************
+*** 996,1001 ****
+--- 1050,1056 ----
+ {'p', '3', 0x03e1},
+ {'\'', '%', 0x03f4},
+ {'j', '3', 0x03f5},
++ #define DG_START_CYRILLIC 0x0401
+ {'I', 'O', 0x0401},
+ {'D', '%', 0x0402},
+ {'G', '%', 0x0403},
+***************
+*** 1100,1105 ****
+--- 1155,1161 ----
+ {'c', '3', 0x0481},
+ {'G', '3', 0x0490},
+ {'g', '3', 0x0491},
++ #define DG_START_HEBREW 0x05d0
+ {'A', '+', 0x05d0},
+ {'B', '+', 0x05d1},
+ {'G', '+', 0x05d2},
+***************
+*** 1127,1132 ****
+--- 1183,1189 ----
+ {'R', '+', 0x05e8},
+ {'S', 'h', 0x05e9},
+ {'T', '+', 0x05ea},
++ #define DG_START_ARABIC 0x060c
+ {',', '+', 0x060c},
+ {';', '+', 0x061b},
+ {'?', '+', 0x061f},
+***************
+*** 1189,1194 ****
+--- 1246,1252 ----
+ {'7', 'a', 0x06f7},
+ {'8', 'a', 0x06f8},
+ {'9', 'a', 0x06f9},
++ #define DG_START_LATIN_EXTENDED 0x1e02
+ {'B', '.', 0x1e02},
+ {'b', '.', 0x1e03},
+ {'B', '_', 0x1e06},
+***************
+*** 1240,1246 ****
+--- 1298,1306 ----
+ {'V', '?', 0x1e7c},
+ {'v', '?', 0x1e7d},
+ {'W', '!', 0x1e80},
++ {'W', '`', 0x1e80}, // extra alternative, easier to remember
+ {'w', '!', 0x1e81},
++ {'w', '`', 0x1e81}, // extra alternative, easier to remember
+ {'W', '\'', 0x1e82},
+ {'w', '\'', 0x1e83},
+ {'W', ':', 0x1e84},
+***************
+*** 1274,1284 ****
+--- 1334,1347 ----
+ {'U', '2', 0x1ee6},
+ {'u', '2', 0x1ee7},
+ {'Y', '!', 0x1ef2},
++ {'Y', '`', 0x1ef2}, // extra alternative, easier to remember
+ {'y', '!', 0x1ef3},
++ {'y', '`', 0x1ef3}, // extra alternative, easier to remember
+ {'Y', '2', 0x1ef6},
+ {'y', '2', 0x1ef7},
+ {'Y', '?', 0x1ef8},
+ {'y', '?', 0x1ef9},
++ #define DG_START_GREEK_EXTENDED 0x1f00
+ {';', '\'', 0x1f00},
+ {',', '\'', 0x1f01},
+ {';', '!', 0x1f02},
+***************
+*** 1287,1292 ****
+--- 1350,1356 ----
+ {'?', ',', 0x1f05},
+ {'!', ':', 0x1f06},
+ {'?', ':', 0x1f07},
++ #define DG_START_PUNCTUATION 0x2002
+ {'1', 'N', 0x2002},
+ {'1', 'M', 0x2003},
+ {'3', 'M', 0x2004},
+***************
+*** 1325,1330 ****
+--- 1389,1395 ----
+ {':', 'X', 0x203b},
+ {'\'', '-', 0x203e},
+ {'/', 'f', 0x2044},
++ #define DG_START_SUB_SUPER 0x2070
+ {'0', 'S', 0x2070},
+ {'4', 'S', 0x2074},
+ {'5', 'S', 0x2075},
+***************
+*** 1353,1358 ****
+--- 1418,1424 ----
+ {'=', 's', 0x208c},
+ {'(', 's', 0x208d},
+ {')', 's', 0x208e},
++ #define DG_START_CURRENCY 0x20a4
+ {'L', 'i', 0x20a4},
+ {'P', 't', 0x20a7},
+ {'W', '=', 0x20a9},
+***************
+*** 1360,1365 ****
+--- 1426,1432 ----
+ {'E', 'u', 0x20ac}, /* euro */
+ {'=', 'R', 0x20bd}, /* rouble */
+ {'=', 'P', 0x20bd}, /* rouble */
++ #define DG_START_OTHER1 0x2103
+ {'o', 'C', 0x2103},
+ {'c', 'o', 0x2105},
+ {'o', 'F', 0x2109},
+***************
+*** 1382,1387 ****
+--- 1449,1455 ----
+ {'3', '8', 0x215c},
+ {'5', '8', 0x215d},
+ {'7', '8', 0x215e},
++ #define DG_START_ROMAN 0x2160
+ {'1', 'R', 0x2160},
+ {'2', 'R', 0x2161},
+ {'3', 'R', 0x2162},
+***************
+*** 1406,1411 ****
+--- 1474,1480 ----
+ {'a', 'r', 0x2179},
+ {'b', 'r', 0x217a},
+ {'c', 'r', 0x217b},
++ #define DG_START_ARROWS 0x2190
+ {'<', '-', 0x2190},
+ {'-', '!', 0x2191},
+ {'-', '>', 0x2192},
+***************
+*** 1415,1420 ****
+--- 1484,1490 ----
+ {'<', '=', 0x21d0},
+ {'=', '>', 0x21d2},
+ {'=', '=', 0x21d4},
++ #define DG_START_MATH 0x2200
+ {'F', 'A', 0x2200},
+ {'d', 'P', 0x2202},
+ {'T', 'E', 0x2203},
+***************
+*** 1472,1477 ****
+--- 1542,1548 ----
+ {'.', 'P', 0x22c5},
+ {':', '3', 0x22ee},
+ {'.', '3', 0x22ef},
++ #define DG_START_TECHNICAL 0x2302
+ {'E', 'h', 0x2302},
+ {'<', '7', 0x2308},
+ {'>', '7', 0x2309},
+***************
+*** 1484,1489 ****
+--- 1555,1561 ----
+ {'I', 'l', 0x2321},
+ {'<', '/', 0x2329},
+ {'/', '>', 0x232a},
++ #define DG_START_OTHER2 0x2423
+ {'V', 's', 0x2423},
+ {'1', 'h', 0x2440},
+ {'3', 'h', 0x2441},
+***************
+*** 1502,1507 ****
+--- 1574,1580 ----
+ {'7', '.', 0x248e},
+ {'8', '.', 0x248f},
+ {'9', '.', 0x2490},
++ #define DG_START_DRAWING 0x2500
+ {'h', 'h', 0x2500},
+ {'H', 'H', 0x2501},
+ {'v', 'v', 0x2502},
+***************
+*** 1552,1557 ****
+--- 1625,1631 ----
+ {'V', 'H', 0x254b},
+ {'F', 'D', 0x2571},
+ {'B', 'D', 0x2572},
++ #define DG_START_BLOCK 0x2580
+ {'T', 'B', 0x2580},
+ {'L', 'B', 0x2584},
+ {'F', 'B', 0x2588},
+***************
+*** 1560,1565 ****
+--- 1634,1640 ----
+ {'.', 'S', 0x2591},
+ {':', 'S', 0x2592},
+ {'?', 'S', 0x2593},
++ #define DG_START_SHAPES 0x25a0
+ {'f', 'S', 0x25a0},
+ {'O', 'S', 0x25a1},
+ {'R', 'O', 0x25a2},
+***************
+*** 1593,1598 ****
+--- 1668,1674 ----
+ {'I', 'c', 0x25d9},
+ {'F', 'd', 0x25e2},
+ {'B', 'd', 0x25e3},
++ #define DG_START_SYMBOLS 0x2605
+ {'*', '2', 0x2605},
+ {'*', '1', 0x2606},
+ {'<', 'H', 0x261c},
+***************
+*** 1612,1620 ****
+--- 1688,1698 ----
+ {'M', 'b', 0x266d},
+ {'M', 'x', 0x266e},
+ {'M', 'X', 0x266f},
++ #define DG_START_DINGBATS 0x2713
+ {'O', 'K', 0x2713},
+ {'X', 'X', 0x2717},
+ {'-', 'X', 0x2720},
++ #define DG_START_CJK_SYMBOLS 0x3000
+ {'I', 'S', 0x3000},
+ {',', '_', 0x3001},
+ {'.', '_', 0x3002},
+***************
+*** 1638,1643 ****
+--- 1716,1722 ----
+ {'(', 'I', 0x3016},
+ {')', 'I', 0x3017},
+ {'-', '?', 0x301c},
++ #define DG_START_HIRAGANA 0x3041
+ {'A', '5', 0x3041},
+ {'a', '5', 0x3042},
+ {'I', '5', 0x3043},
+***************
+*** 1726,1731 ****
+--- 1805,1811 ----
+ {'0', '5', 0x309c},
+ {'*', '5', 0x309d},
+ {'+', '5', 0x309e},
++ #define DG_START_KATAKANA 0x30a1
+ {'a', '6', 0x30a1},
+ {'A', '6', 0x30a2},
+ {'i', '6', 0x30a3},
+***************
+*** 1820,1825 ****
+--- 1900,1906 ----
+ {'-', '6', 0x30fc},
+ {'*', '6', 0x30fd},
+ {'+', '6', 0x30fe},
++ #define DG_START_BOPOMOFO 0x3105
+ {'b', '4', 0x3105},
+ {'p', '4', 0x3106},
+ {'m', '4', 0x3107},
+***************
+*** 1859,1864 ****
+--- 1940,1946 ----
+ {'v', '4', 0x312a},
+ {'n', 'G', 0x312b},
+ {'g', 'n', 0x312c},
++ #define DG_START_OTHER3 0x3220
+ {'1', 'c', 0x3220},
+ {'2', 'c', 0x3221},
+ {'3', 'c', 0x3222},
+***************
+*** 1875,1943 ****
+ {'f', 'l', 0xfb02},
+ {'f', 't', 0xfb05},
+ {'s', 't', 0xfb06},
+-
+- /* extra alternatives, easier to remember */
+- {'W', '`', 0x1e80},
+- {'w', '`', 0x1e81},
+- {'Y', '`', 0x1ef2},
+- {'y', '`', 0x1ef3},
+-
+ # endif /* FEAT_MBYTE */
+
+- /* Vim 5.x compatible digraphs that don't conflict with the above */
+- {'~', '!', 161}, /* ¡ */
+- {'c', '|', 162}, /* ¢ */
+- {'$', '$', 163}, /* £ */
+- {'o', 'x', 164}, /* ¤ - currency symbol in ISO 8859-1 */
+- {'Y', '-', 165}, /* ¥ */
+- {'|', '|', 166}, /* ¦ */
+- {'c', 'O', 169}, /* © */
+- {'-', ',', 172}, /* ¬ */
+- {'-', '=', 175}, /* ¯ */
+- {'~', 'o', 176}, /* ° */
+- {'2', '2', 178}, /* ² */
+- {'3', '3', 179}, /* ³ */
+- {'p', 'p', 182}, /* ¶ */
+- {'~', '.', 183}, /* · */
+- {'1', '1', 185}, /* ¹ */
+- {'~', '?', 191}, /* ¿ */
+- {'A', '`', 192}, /* À */
+- {'A', '^', 194}, /* Â */
+- {'A', '~', 195}, /* Ã */
+- {'A', '"', 196}, /* Ä */
+- {'A', '@', 197}, /* Å */
+- {'E', '`', 200}, /* È */
+- {'E', '^', 202}, /* Ê */
+- {'E', '"', 203}, /* Ë */
+- {'I', '`', 204}, /* Ì */
+- {'I', '^', 206}, /* Î */
+- {'I', '"', 207}, /* Ï */
+- {'N', '~', 209}, /* Ñ */
+- {'O', '`', 210}, /* Ò */
+- {'O', '^', 212}, /* Ô */
+- {'O', '~', 213}, /* Õ */
+- {'/', '\\', 215}, /* × - multiplication symbol in ISO 8859-1 */
+- {'U', '`', 217}, /* Ù */
+- {'U', '^', 219}, /* Û */
+- {'I', 'p', 222}, /* Þ */
+- {'a', '`', 224}, /* à */
+- {'a', '^', 226}, /* â */
+- {'a', '~', 227}, /* ã */
+- {'a', '"', 228}, /* ä */
+- {'a', '@', 229}, /* å */
+- {'e', '`', 232}, /* è */
+- {'e', '^', 234}, /* ê */
+- {'e', '"', 235}, /* ë */
+- {'i', '`', 236}, /* ì */
+- {'i', '^', 238}, /* î */
+- {'n', '~', 241}, /* ñ */
+- {'o', '`', 242}, /* ò */
+- {'o', '^', 244}, /* ô */
+- {'o', '~', 245}, /* õ */
+- {'u', '`', 249}, /* ù */
+- {'u', '^', 251}, /* û */
+- {'y', '"', 255}, /* x XX */
+-
+ {NUL, NUL, NUL}
+ };
+
+--- 1957,1964 ----
+***************
+*** 1986,1992 ****
+ digr_T *dp;
+ static char_u r[3];
+
+! #if defined(FEAT_MBYTE) && defined(USE_UNICODE_DIGRAPHS)
+ if (!enc_utf8)
+ {
+ char_u buf[6], *to;
+--- 2007,2013 ----
+ digr_T *dp;
+ static char_u r[3];
+
+! #if defined(USE_UNICODE_DIGRAPHS)
+ if (!enc_utf8)
+ {
+ char_u buf[6], *to;
+***************
+*** 2240,2257 ****
+ }
+ }
+
+ void
+! listdigraphs(void)
+ {
+ int i;
+ digr_T *dp;
+
+ msg_putchar('\n');
+
+ dp = digraphdefault;
+ for (i = 0; dp->char1 != NUL && !got_int; ++i)
+ {
+! #if defined(USE_UNICODE_DIGRAPHS) && defined(FEAT_MBYTE)
+ digr_T tmp;
+
+ /* May need to convert the result to 'encoding'. */
+--- 2261,2290 ----
+ }
+ }
+
++ #if defined(USE_UNICODE_DIGRAPHS)
++ static void
++ digraph_header(char *msg)
++ {
++ if (msg_col > 0)
++ msg_putchar('\n');
++ msg_outtrans_attr((char_u *)msg, HL_ATTR(HLF_CM));
++ msg_putchar('\n');
++ }
++ #endif
++
+ void
+! listdigraphs(int use_headers)
+ {
+ int i;
+ digr_T *dp;
++ result_T previous = 0;
+
+ msg_putchar('\n');
+
+ dp = digraphdefault;
+ for (i = 0; dp->char1 != NUL && !got_int; ++i)
+ {
+! #if defined(USE_UNICODE_DIGRAPHS)
+ digr_T tmp;
+
+ /* May need to convert the result to 'encoding'. */
+***************
+*** 2260,2266 ****
+ tmp.result = getexactdigraph(tmp.char1, tmp.char2, FALSE);
+ if (tmp.result != 0 && tmp.result != tmp.char2
+ && (has_mbyte || tmp.result <= 255))
+! printdigraph(&tmp);
+ #else
+
+ if (getexactdigraph(dp->char1, dp->char2, FALSE) == dp->result
+--- 2293,2299 ----
+ tmp.result = getexactdigraph(tmp.char1, tmp.char2, FALSE);
+ if (tmp.result != 0 && tmp.result != tmp.char2
+ && (has_mbyte || tmp.result <= 255))
+! printdigraph(&tmp, use_headers ? &previous : NULL);
+ #else
+
+ if (getexactdigraph(dp->char1, dp->char2, FALSE) == dp->result
+***************
+*** 2268,2274 ****
+ && (has_mbyte || dp->result <= 255)
+ # endif
+ )
+! printdigraph(dp);
+ #endif
+ ++dp;
+ ui_breakcheck();
+--- 2301,2307 ----
+ && (has_mbyte || dp->result <= 255)
+ # endif
+ )
+! printdigraph(dp, use_headers ? &previous : NULL);
+ #endif
+ ++dp;
+ ui_breakcheck();
+***************
+*** 2277,2283 ****
+ dp = (digr_T *)user_digraphs.ga_data;
+ for (i = 0; i < user_digraphs.ga_len && !got_int; ++i)
+ {
+! printdigraph(dp);
+ ui_breakcheck();
+ ++dp;
+ }
+--- 2310,2321 ----
+ dp = (digr_T *)user_digraphs.ga_data;
+ for (i = 0; i < user_digraphs.ga_len && !got_int; ++i)
+ {
+! #if defined(USE_UNICODE_DIGRAPHS)
+! if (previous >= 0 && use_headers)
+! digraph_header(_("Custom"));
+! previous = -1;
+! #endif
+! printdigraph(dp, NULL);
+ ui_breakcheck();
+ ++dp;
+ }
+***************
+*** 2285,2292 ****
+ wrong, in which case we messed up ScreenLines */
+ }
+
+ static void
+! printdigraph(digr_T *dp)
+ {
+ char_u buf[30];
+ char_u *p;
+--- 2323,2363 ----
+ wrong, in which case we messed up ScreenLines */
+ }
+
++ struct dg_header_entry {
++ int dg_start;
++ char *dg_header;
++ } header_table[] = {
++ {DG_START_LATIN, N_("Latin supplement")},
++ {DG_START_GREEK, N_("Greek and Coptic")},
++ {DG_START_CYRILLIC, N_("Cyrillic")},
++ {DG_START_HEBREW, N_("Hebrew")},
++ {DG_START_ARABIC, N_("Arabic")},
++ {DG_START_LATIN_EXTENDED, N_("Latin extended")},
++ {DG_START_GREEK_EXTENDED, N_("Greek extended")},
++ {DG_START_PUNCTUATION, N_("Punctuation")},
++ {DG_START_SUB_SUPER, N_("Super- and subscripts")},
++ {DG_START_CURRENCY, N_("Currency")},
++ {DG_START_OTHER1, N_("Other")},
++ {DG_START_ROMAN, N_("Roman numbers")},
++ {DG_START_ARROWS, N_("Arrows")},
++ {DG_START_MATH, N_("Mathematical operators")},
++ {DG_START_TECHNICAL, N_("Technical")},
++ {DG_START_OTHER2, N_("Other")},
++ {DG_START_DRAWING, N_("Box drawing")},
++ {DG_START_BLOCK, N_("Block elements")},
++ {DG_START_SHAPES, N_("Geometric shapes")},
++ {DG_START_SYMBOLS, N_("Symbols")},
++ {DG_START_DINGBATS, N_("Dingbats")},
++ {DG_START_CJK_SYMBOLS, N_("CJK symbols and punctuation")},
++ {DG_START_HIRAGANA, N_("Hiragana")},
++ {DG_START_KATAKANA, N_("Katakana")},
++ {DG_START_BOPOMOFO, N_("Bopomofo")},
++ {DG_START_OTHER3, N_("Other")},
++ {0xfffffff, NULL},
++ };
++
+ static void
+! printdigraph(digr_T *dp, result_T *previous)
+ {
+ char_u buf[30];
+ char_u *p;
+***************
+*** 2304,2309 ****
+--- 2375,2396 ----
+
+ if (dp->result != 0)
+ {
++ #if defined(USE_UNICODE_DIGRAPHS)
++ if (previous != NULL)
++ {
++ int i;
++
++ for (i = 0; header_table[i].dg_header != NULL; ++i)
++ if (*previous < header_table[i].dg_start
++ && dp->result >= header_table[i].dg_start
++ && dp->result < header_table[i + 1].dg_start)
++ {
++ digraph_header(_(header_table[i].dg_header));
++ break;
++ }
++ *previous = dp->result;
++ }
++ #endif
+ if (msg_col > Columns - list_width)
+ msg_putchar('\n');
+ if (msg_col)
+***************
+*** 2314,2319 ****
+--- 2401,2409 ----
+ *p++ = dp->char1;
+ *p++ = dp->char2;
+ *p++ = ' ';
++ *p = NUL;
++ msg_outtrans(buf);
++ p = buf;
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+ {
+***************
+*** 2325,2330 ****
+--- 2415,2423 ----
+ else
+ #endif
+ *p++ = (char_u)dp->result;
++ *p = NUL;
++ msg_outtrans_attr(buf, HL_ATTR(HLF_8));
++ p = buf;
+ if (char2cells(dp->result) == 1)
+ *p++ = ' ';
+ vim_snprintf((char *)p, sizeof(buf) - (p - buf), " %3d", dp->result);
+*** ../vim-8.1.0585/src/proto/digraph.pro 2018-09-13 17:26:31.091401618 +0200
+--- src/proto/digraph.pro 2018-12-14 15:58:50.914970163 +0100
+***************
+*** 4,10 ****
+ int get_digraph(int cmdline);
+ int getdigraph(int char1, int char2, int meta_char);
+ void putdigraph(char_u *str);
+! void listdigraphs(void);
+ char_u *keymap_init(void);
+ void ex_loadkeymap(exarg_T *eap);
+ void keymap_clear(garray_T *kmap);
+--- 4,10 ----
+ int get_digraph(int cmdline);
+ int getdigraph(int char1, int char2, int meta_char);
+ void putdigraph(char_u *str);
+! void listdigraphs(int use_headers);
+ char_u *keymap_init(void);
+ void ex_loadkeymap(exarg_T *eap);
+ void keymap_clear(garray_T *kmap);
+*** ../vim-8.1.0585/src/ex_cmds.h 2018-11-30 22:40:09.098211991 +0100
+--- src/ex_cmds.h 2018-12-14 15:59:49.330567980 +0100
+***************
+*** 456,462 ****
+ TRLBAR,
+ ADDR_LINES),
+ EX(CMD_digraphs, "digraphs", ex_digraphs,
+! EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
+ EX(CMD_djump, "djump", ex_findpat,
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
+--- 456,462 ----
+ TRLBAR,
+ ADDR_LINES),
+ EX(CMD_digraphs, "digraphs", ex_digraphs,
+! BANG|EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
+ EX(CMD_djump, "djump", ex_findpat,
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
+*** ../vim-8.1.0585/runtime/doc/digraph.txt 2018-05-17 13:40:51.000000000 +0200
+--- runtime/doc/digraph.txt 2018-12-14 15:56:25.435973424 +0100
+***************
+*** 24,30 ****
+ 1. Defining digraphs *digraphs-define*
+
+ *:dig* *:digraphs*
+! :dig[raphs] show currently defined digraphs.
+ *E104* *E39*
+ :dig[raphs] {char1}{char2} {number} ...
+ Add digraph {char1}{char2} to the list. {number} is
+--- 24,32 ----
+ 1. Defining digraphs *digraphs-define*
+
+ *:dig* *:digraphs*
+! :dig[raphs][!] Show currently defined digraphs.
+! With [!] headers are used to make it a bit easier to
+! find a specific character.
+ *E104* *E39*
+ :dig[raphs] {char1}{char2} {number} ...
+ Add digraph {char1}{char2} to the list. {number} is
+*** ../vim-8.1.0585/src/version.c 2018-12-14 15:48:44.259178570 +0100
+--- src/version.c 2018-12-14 18:41:39.921914267 +0100
+***************
+*** 801,802 ****
+--- 801,804 ----
+ { /* Add new patch number below this line */
++ /**/
++ 586,
+ /**/
+
+--
+Contrary to popular belief, it's often your clothing that gets promoted, not
+you.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/8.1.0587 b/data/vim/patches/8.1.0587
new file mode 100644
index 000000000..51e712b5c
--- /dev/null
+++ b/data/vim/patches/8.1.0587
@@ -0,0 +1,82 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0587
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0587
+Problem: GvimExt: realloc() failing is not handled properly.
+Solution: Check for NULL return. (Jan-Jaap Korpershoek, closes #3689)
+Files: src/GvimExt/gvimext.cpp
+
+
+*** ../vim-8.1.0586/src/GvimExt/gvimext.cpp 2018-10-25 11:25:50.166512213 +0200
+--- src/GvimExt/gvimext.cpp 2018-12-14 19:15:54.292680774 +0100
+***************
+*** 1024,1029 ****
+--- 1024,1031 ----
+
+ cmdlen = BUFSIZE;
+ cmdStrW = (wchar_t *) malloc(cmdlen * sizeof(wchar_t));
++ if (cmdStrW == NULL)
++ return;
+ getGvimInvocationW(cmdStrW);
+
+ if (useDiff)
+***************
+*** 1039,1045 ****
+ if (len > cmdlen)
+ {
+ cmdlen = len + BUFSIZE;
+! cmdStrW = (wchar_t *)realloc(cmdStrW, cmdlen * sizeof(wchar_t));
+ }
+ wcscat(cmdStrW, L" \"");
+ wcscat(cmdStrW, m_szFileUserClickedOn);
+--- 1041,1050 ----
+ if (len > cmdlen)
+ {
+ cmdlen = len + BUFSIZE;
+! wchar_t *cmdStrW_new = (wchar_t *)realloc(cmdStrW, cmdlen * sizeof(wchar_t));
+! if (cmdStrW_new == NULL)
+! goto theend;
+! cmdStrW = cmdStrW_new;
+ }
+ wcscat(cmdStrW, L" \"");
+ wcscat(cmdStrW, m_szFileUserClickedOn);
+***************
+*** 1076,1082 ****
+ CloseHandle(pi.hProcess);
+ CloseHandle(pi.hThread);
+ }
+!
+ free(cmdStrW);
+
+ return NOERROR;
+--- 1081,1087 ----
+ CloseHandle(pi.hProcess);
+ CloseHandle(pi.hThread);
+ }
+! theend:
+ free(cmdStrW);
+
+ return NOERROR;
+*** ../vim-8.1.0586/src/version.c 2018-12-14 18:52:57.169528762 +0100
+--- src/version.c 2018-12-14 19:17:18.488135136 +0100
+***************
+*** 801,802 ****
+--- 801,804 ----
+ { /* Add new patch number below this line */
++ /**/
++ 587,
+ /**/
+
+--
+A)bort, R)etry, B)ang it with a large hammer
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/8.1.0588 b/data/vim/patches/8.1.0588
new file mode 100644
index 000000000..55122e453
--- /dev/null
+++ b/data/vim/patches/8.1.0588
@@ -0,0 +1,89 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0588
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0588
+Problem: Cannot define a sign with space in the text.
+Solution: Allow for escaping characters. (Ben Jackson, closes #2967)
+Files: src/ex_cmds.c, src/testdir/test_signs.vim
+
+
+*** ../vim-8.1.0587/src/ex_cmds.c 2018-11-10 18:54:40.660592045 +0100
+--- src/ex_cmds.c 2018-12-14 19:28:26.340081284 +0100
+***************
+*** 7779,7784 ****
+--- 7779,7792 ----
+ int len;
+
+ arg += 5;
++ for (s = arg; s + 1 < p; ++s)
++ if (*s == '\\')
++ {
++ // Remove a backslash, so that it is possible
++ // to use a space.
++ STRMOVE(s, s + 1);
++ --p;
++ }
+ # ifdef FEAT_MBYTE
+ /* Count cells and check for non-printable chars */
+ if (has_mbyte)
+*** ../vim-8.1.0587/src/testdir/test_signs.vim 2017-10-27 00:40:58.000000000 +0200
+--- src/testdir/test_signs.vim 2018-12-14 19:32:28.519179069 +0100
+***************
+*** 104,109 ****
+--- 104,136 ----
+ exe 'sign jump 43 file=' . fn
+ call assert_equal('B', getline('.'))
+
++ " can't define a sign with a non-printable character as text
++ call assert_fails("sign define Sign4 text=\e linehl=Comment", 'E239:')
++ call assert_fails("sign define Sign4 text=a\e linehl=Comment", 'E239:')
++ call assert_fails("sign define Sign4 text=\ea linehl=Comment", 'E239:')
++
++ " Only 1 or 2 character text is allowed
++ call assert_fails("sign define Sign4 text=abc linehl=Comment", 'E239:')
++ call assert_fails("sign define Sign4 text= linehl=Comment", 'E239:')
++ call assert_fails("sign define Sign4 text=\ ab linehl=Comment", 'E239:')
++
++ " define sign with whitespace
++ sign define Sign4 text=\ X linehl=Comment
++ sign undefine Sign4
++ sign define Sign4 linehl=Comment text=\ X
++ sign undefine Sign4
++
++ sign define Sign5 text=X\ linehl=Comment
++ sign undefine Sign5
++ sign define Sign5 linehl=Comment text=X\
++ sign undefine Sign5
++
++ " define sign with backslash
++ sign define Sign4 text=\\\\ linehl=Comment
++ sign undefine Sign4
++ sign define Sign4 text=\\ linehl=Comment
++ sign undefine Sign4
++
+ " After undefining the sign, we should no longer be able to place it.
+ sign undefine Sign1
+ sign undefine Sign2
+*** ../vim-8.1.0587/src/version.c 2018-12-14 19:19:58.939094931 +0100
+--- src/version.c 2018-12-14 19:36:51.285961178 +0100
+***************
+*** 801,802 ****
+--- 801,804 ----
+ { /* Add new patch number below this line */
++ /**/
++ 588,
+ /**/
+
+--
+A)bort, R)etry, D)o it right this time
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/8.1.0589 b/data/vim/patches/8.1.0589
new file mode 100644
index 000000000..2cdb7e9a7
--- /dev/null
+++ b/data/vim/patches/8.1.0589
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0589
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0589
+Problem: Compilation error in gvimext.cpp.
+Solution: Return a value. Also fix using uninitialized variable.
+Files: src/GvimExt/gvimext.cpp, src/dosinst.c
+
+
+*** ../vim-8.1.0588/src/GvimExt/gvimext.cpp 2018-12-14 19:19:58.939094931 +0100
+--- src/GvimExt/gvimext.cpp 2018-12-14 19:51:07.765220863 +0100
+***************
+*** 1025,1031 ****
+ cmdlen = BUFSIZE;
+ cmdStrW = (wchar_t *) malloc(cmdlen * sizeof(wchar_t));
+ if (cmdStrW == NULL)
+! return;
+ getGvimInvocationW(cmdStrW);
+
+ if (useDiff)
+--- 1025,1031 ----
+ cmdlen = BUFSIZE;
+ cmdStrW = (wchar_t *) malloc(cmdlen * sizeof(wchar_t));
+ if (cmdStrW == NULL)
+! return E_FAIL;
+ getGvimInvocationW(cmdStrW);
+
+ if (useDiff)
+***************
+*** 1043,1049 ****
+ cmdlen = len + BUFSIZE;
+ wchar_t *cmdStrW_new = (wchar_t *)realloc(cmdStrW, cmdlen * sizeof(wchar_t));
+ if (cmdStrW_new == NULL)
+! goto theend;
+ cmdStrW = cmdStrW_new;
+ }
+ wcscat(cmdStrW, L" \"");
+--- 1043,1052 ----
+ cmdlen = len + BUFSIZE;
+ wchar_t *cmdStrW_new = (wchar_t *)realloc(cmdStrW, cmdlen * sizeof(wchar_t));
+ if (cmdStrW_new == NULL)
+! {
+! free(cmdStrW);
+! return E_FAIL;
+! }
+ cmdStrW = cmdStrW_new;
+ }
+ wcscat(cmdStrW, L" \"");
+*** ../vim-8.1.0588/src/dosinst.c 2018-11-21 13:58:27.092110956 +0100
+--- src/dosinst.c 2018-12-14 19:52:30.904732290 +0100
+***************
+*** 2459,2465 ****
+ }
+ else if (strcmp(argv[i], "-create-directories") == 0)
+ {
+! int vimfiles_dir_choice;
+
+ init_directories_choice();
+ if (argv[i + 1][0] != '-')
+--- 2459,2465 ----
+ }
+ else if (strcmp(argv[i], "-create-directories") == 0)
+ {
+! int vimfiles_dir_choice = (int)vimfiles_dir_none;
+
+ init_directories_choice();
+ if (argv[i + 1][0] != '-')
+*** ../vim-8.1.0588/src/version.c 2018-12-14 19:37:03.681899394 +0100
+--- src/version.c 2018-12-14 19:53:29.836384520 +0100
+***************
+*** 801,802 ****
+--- 801,804 ----
+ { /* Add new patch number below this line */
++ /**/
++ 589,
+ /**/
+
+--
+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/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/vim/patches/8.1.0590 b/data/vim/patches/8.1.0590
new file mode 100644
index 000000000..cca000d35
--- /dev/null
+++ b/data/vim/patches/8.1.0590
@@ -0,0 +1,218 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0590
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0590
+Problem: When a job ends the closed channels are not handled.
+Solution: When a job is detected to have ended, check the channels again.
+ (closes #3530)
+Files: src/channel.c, src/proto/channel.pro, src/misc2.c
+
+
+*** ../vim-8.1.0589/src/channel.c 2018-10-19 17:35:58.081200733 +0200
+--- src/channel.c 2018-12-14 21:27:04.570167163 +0100
+***************
+*** 5510,5533 ****
+
+ /*
+ * Called once in a while: check if any jobs that seem useful have ended.
+ */
+! void
+ job_check_ended(void)
+ {
+ int i;
+
+ if (first_job == NULL)
+! return;
+
+ for (i = 0; i < MAX_CHECK_ENDED; ++i)
+ {
+! /* NOTE: mch_detect_ended_job() must only return a job of which the
+! * status was just set to JOB_ENDED. */
+ job_T *job = mch_detect_ended_job(first_job);
+
+ if (job == NULL)
+ break;
+! job_cleanup(job); /* may free "job" */
+ }
+
+ if (channel_need_redraw)
+--- 5510,5537 ----
+
+ /*
+ * Called once in a while: check if any jobs that seem useful have ended.
++ * Returns TRUE if a job did end.
+ */
+! int
+ job_check_ended(void)
+ {
+ int i;
++ int did_end = FALSE;
+
++ // be quick if there are no jobs to check
+ if (first_job == NULL)
+! return did_end;
+
+ for (i = 0; i < MAX_CHECK_ENDED; ++i)
+ {
+! // NOTE: mch_detect_ended_job() must only return a job of which the
+! // status was just set to JOB_ENDED.
+ job_T *job = mch_detect_ended_job(first_job);
+
+ if (job == NULL)
+ break;
+! did_end = TRUE;
+! job_cleanup(job); // may free "job"
+ }
+
+ if (channel_need_redraw)
+***************
+*** 5535,5540 ****
+--- 5539,5545 ----
+ channel_need_redraw = FALSE;
+ redraw_after_callback(TRUE);
+ }
++ return did_end;
+ }
+
+ /*
+*** ../vim-8.1.0589/src/proto/channel.pro 2018-06-17 19:36:30.215317108 +0200
+--- src/proto/channel.pro 2018-12-14 21:24:32.683134493 +0100
+***************
+*** 65,71 ****
+ void job_set_options(job_T *job, jobopt_T *opt);
+ void job_stop_on_exit(void);
+ int has_pending_job(void);
+! void job_check_ended(void);
+ job_T *job_start(typval_T *argvars, char **argv_arg, jobopt_T *opt_arg, int is_terminal);
+ char *job_status(job_T *job);
+ void job_info(job_T *job, dict_T *dict);
+--- 65,71 ----
+ void job_set_options(job_T *job, jobopt_T *opt);
+ void job_stop_on_exit(void);
+ int has_pending_job(void);
+! int job_check_ended(void);
+ job_T *job_start(typval_T *argvars, char **argv_arg, jobopt_T *opt_arg, int is_terminal);
+ char *job_status(job_T *job);
+ void job_info(job_T *job, dict_T *dict);
+*** ../vim-8.1.0589/src/misc2.c 2018-12-13 22:17:52.877941474 +0100
+--- src/misc2.c 2018-12-14 21:27:39.313947112 +0100
+***************
+*** 6351,6356 ****
+--- 6351,6358 ----
+ #endif
+
+ #if defined(MESSAGE_QUEUE) || defined(PROTO)
++ # define MAX_REPEAT_PARSE 8
++
+ /*
+ * Process messages that have been queued for netbeans or clientserver.
+ * Also check if any jobs have ended.
+***************
+*** 6360,6396 ****
+ void
+ parse_queued_messages(void)
+ {
+! win_T *old_curwin = curwin;
+
+ // Do not handle messages while redrawing, because it may cause buffers to
+ // change or be wiped while they are being redrawn.
+ if (updating_screen)
+ return;
+
+! // For Win32 mch_breakcheck() does not check for input, do it here.
+ # if defined(WIN32) && defined(FEAT_JOB_CHANNEL)
+! channel_handle_events(FALSE);
+ # endif
+
+ # ifdef FEAT_NETBEANS_INTG
+! // Process the queued netbeans messages.
+! netbeans_parse_messages();
+ # endif
+ # ifdef FEAT_JOB_CHANNEL
+! // Write any buffer lines still to be written.
+! channel_write_any_lines();
+
+! // Process the messages queued on channels.
+! channel_parse_messages();
+ # endif
+ # if defined(FEAT_CLIENTSERVER) && defined(FEAT_X11)
+! // Process the queued clientserver messages.
+! server_parse_messages();
+ # endif
+ # ifdef FEAT_JOB_CHANNEL
+! // Check if any jobs have ended.
+! job_check_ended();
+ # endif
+
+ // If the current window changed we need to bail out of the waiting loop.
+ // E.g. when a job exit callback closes the terminal window.
+--- 6362,6406 ----
+ void
+ parse_queued_messages(void)
+ {
+! win_T *old_curwin = curwin;
+! int i;
+
+ // Do not handle messages while redrawing, because it may cause buffers to
+ // change or be wiped while they are being redrawn.
+ if (updating_screen)
+ return;
+
+! // Loop when a job ended, but don't keep looping forever.
+! for (i = 0; i < MAX_REPEAT_PARSE; ++i)
+! {
+! // For Win32 mch_breakcheck() does not check for input, do it here.
+ # if defined(WIN32) && defined(FEAT_JOB_CHANNEL)
+! channel_handle_events(FALSE);
+ # endif
+
+ # ifdef FEAT_NETBEANS_INTG
+! // Process the queued netbeans messages.
+! netbeans_parse_messages();
+ # endif
+ # ifdef FEAT_JOB_CHANNEL
+! // Write any buffer lines still to be written.
+! channel_write_any_lines();
+
+! // Process the messages queued on channels.
+! channel_parse_messages();
+ # endif
+ # if defined(FEAT_CLIENTSERVER) && defined(FEAT_X11)
+! // Process the queued clientserver messages.
+! server_parse_messages();
+ # endif
+ # ifdef FEAT_JOB_CHANNEL
+! // Check if any jobs have ended. If so, repeat the above to handle
+! // changes, e.g. stdin may have been closed.
+! if (job_check_ended())
+! continue;
+ # endif
++ break;
++ }
+
+ // If the current window changed we need to bail out of the waiting loop.
+ // E.g. when a job exit callback closes the terminal window.
+*** ../vim-8.1.0589/src/version.c 2018-12-14 19:54:35.711994528 +0100
+--- src/version.c 2018-12-14 21:31:00.840677937 +0100
+***************
+*** 801,802 ****
+--- 801,804 ----
+ { /* Add new patch number below this line */
++ /**/
++ 590,
+ /**/
+
+--
+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/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/data/xz/_metadata/conflicts b/data/xz/_metadata/conflicts
index f65310ce3..3bc02b4d4 100644
--- a/data/xz/_metadata/conflicts
+++ b/data/xz/_metadata/conflicts
@@ -1 +1 @@
-xz-utils
+xz-utils, com.mc.xz
diff --git a/data/xz/_metadata/priority b/data/xz/_metadata/priority
index ea5b3d7ee..d0b3ce728 100644
--- a/data/xz/_metadata/priority
+++ b/data/xz/_metadata/priority
@@ -1 +1 @@
-important
++required