RUN: /usr/share/launchpad-buildd/slavebin/slave-prep ['slave-prep'] Forking launchpad-buildd slave process... Kernel version: Linux elnath 2.6.24-32-xen #1 SMP Mon Dec 3 16:12:25 UTC 2012 x86_64 Buildd toolchain package versions: launchpad-buildd_124~0.IS.08.04 python-lpbuildd_124~0.IS.08.04 bzr-builder_0.7.2+bzr156-0ubuntu1~1.IS.8.04 bzr_2.4.0-0ubuntu2~11.IS.8.04 dpkg-dev_1.14.16.6ubuntu4.2. Syncing the system clock with the buildd NTP service... 27 Jul 20:18:34 ntpdate[3378]: adjust time server 10.211.37.1 offset -0.013641 sec RUN: /usr/share/launchpad-buildd/slavebin/unpack-chroot ['unpack-chroot', 'PACKAGEBUILD-6216952', '/home/buildd/filecache-default/2edf3d13dd20e6c791fc6a07999fc68aa9868cbd'] Unpacking chroot for build PACKAGEBUILD-6216952 RUN: /usr/share/launchpad-buildd/slavebin/mount-chroot ['mount-chroot', 'PACKAGEBUILD-6216952'] Mounting chroot for build PACKAGEBUILD-6216952 RUN: /usr/share/launchpad-buildd/slavebin/override-sources-list ['override-sources-list', 'PACKAGEBUILD-6216952', 'deb http://ppa.launchpad.net/rudenko/neovim/ubuntu precise main', 'deb http://ftpmaster.internal/ubuntu precise main restricted universe multiverse', 'deb http://ftpmaster.internal/ubuntu precise-security main restricted universe multiverse', 'deb http://ftpmaster.internal/ubuntu precise-updates main restricted universe multiverse'] Overriding sources.list in build-PACKAGEBUILD-6216952 RUN: /usr/share/launchpad-buildd/slavebin/update-debian-chroot ['update-debian-chroot', 'PACKAGEBUILD-6216952', 'i386'] Updating debian chroot for build PACKAGEBUILD-6216952 Ign http://ftpmaster.internal precise InRelease Ign http://ftpmaster.internal precise-security InRelease Ign http://ftpmaster.internal precise-updates InRelease Ign http://ppa.launchpad.net precise InRelease Get:1 http://ppa.launchpad.net precise Release.gpg [836 B] Get:2 http://ppa.launchpad.net precise Release [11.9 kB] Ign http://ppa.launchpad.net precise Release Get:3 http://ppa.launchpad.net precise/main i386 Packages [1006 B] Get:4 http://ftpmaster.internal precise Release.gpg [198 B] Ign http://ppa.launchpad.net precise/main TranslationIndex Get:5 http://ftpmaster.internal precise-security Release.gpg [198 B] Ign http://ppa.launchpad.net precise/main Translation-en Get:6 http://ftpmaster.internal precise-updates Release.gpg [198 B] Get:7 http://ftpmaster.internal precise Release [49.6 kB] Get:8 http://ftpmaster.internal precise-security Release [49.6 kB] Get:9 http://ftpmaster.internal precise-updates Release [49.6 kB] Get:10 http://ftpmaster.internal precise/main i386 Packages [1274 kB] Get:11 http://ftpmaster.internal precise/restricted i386 Packages [8431 B] Get:12 http://ftpmaster.internal precise/universe i386 Packages [4796 kB] Get:13 http://ftpmaster.internal precise/multiverse i386 Packages [121 kB] Get:14 http://ftpmaster.internal precise/main TranslationIndex [3706 B] Get:15 http://ftpmaster.internal precise/multiverse TranslationIndex [2676 B] Get:16 http://ftpmaster.internal precise/restricted TranslationIndex [2596 B] Get:17 http://ftpmaster.internal precise/universe TranslationIndex [2922 B] Get:18 http://ftpmaster.internal precise-security/main i386 Packages [442 kB] Get:19 http://ftpmaster.internal precise-security/restricted i386 Packages [4620 B] Get:20 http://ftpmaster.internal precise-security/universe i386 Packages [99.7 kB] Get:21 http://ftpmaster.internal precise-security/multiverse i386 Packages [2650 B] Get:22 http://ftpmaster.internal precise-security/main TranslationIndex [74 B] Get:23 http://ftpmaster.internal precise-security/multiverse TranslationIndex [72 B] Get:24 http://ftpmaster.internal precise-security/restricted TranslationIndex [72 B] Get:25 http://ftpmaster.internal precise-security/universe TranslationIndex [73 B] Get:26 http://ftpmaster.internal precise-updates/main i386 Packages [853 kB] Get:27 http://ftpmaster.internal precise-updates/restricted i386 Packages [13.7 kB] Get:28 http://ftpmaster.internal precise-updates/universe i386 Packages [251 kB] Get:29 http://ftpmaster.internal precise-updates/multiverse i386 Packages [15.5 kB] Get:30 http://ftpmaster.internal precise-updates/main TranslationIndex [3564 B] Get:31 http://ftpmaster.internal precise-updates/multiverse TranslationIndex [2605 B] Get:32 http://ftpmaster.internal precise-updates/restricted TranslationIndex [2461 B] Get:33 http://ftpmaster.internal precise-updates/universe TranslationIndex [2850 B] Get:34 http://ftpmaster.internal precise/main Translation-en [726 kB] Get:35 http://ftpmaster.internal precise/multiverse Translation-en [93.4 kB] Get:36 http://ftpmaster.internal precise/restricted Translation-en [2395 B] Get:37 http://ftpmaster.internal precise/universe Translation-en [3341 kB] Get:38 http://ftpmaster.internal precise-security/main Translation-en [189 kB] Get:39 http://ftpmaster.internal precise-security/multiverse Translation-en [1299 B] Get:40 http://ftpmaster.internal precise-security/restricted Translation-en [1253 B] Get:41 http://ftpmaster.internal precise-security/universe Translation-en [57.8 kB] Get:42 http://ftpmaster.internal precise-updates/main Translation-en [361 kB] Get:43 http://ftpmaster.internal precise-updates/multiverse Translation-en [9010 B] Get:44 http://ftpmaster.internal precise-updates/restricted Translation-en [3027 B] Get:45 http://ftpmaster.internal precise-updates/universe Translation-en [142 kB] Fetched 13.0 MB in 8s (1444 kB/s) Reading package lists... W: GPG error: http://ppa.launchpad.net precise Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 764F75BBAA14BA98 Reading package lists... Building dependency tree... Reading state information... The following packages will be upgraded: apt apt-transport-https base-files bash binutils bsdutils build-essential busybox-initramfs ca-certificates coreutils dpkg dpkg-dev gnupg gpgv ifupdown initramfs-tools initramfs-tools-bin initscripts iproute libapt-pkg4.12 libasn1-8-heimdal libblkid1 libc-bin libc-dev-bin libc6 libc6-dev libcurl3-gnutls libdbus-1-3 libdpkg-perl libdrm-intel1 libdrm-nouveau1a libdrm-radeon1 libdrm2 libgcrypt11 libglib2.0-0 libgnutls26 libgssapi-krb5-2 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libk5crypto3 libkrb5-26-heimdal libkrb5-3 libkrb5support0 libldap-2.4-2 liblockfile-bin liblockfile1 libmount1 libnih-dbus1 libnih1 libpciaccess0 libplymouth2 libroken18-heimdal libsasl2-2 libsqlite3-0 libssl1.0.0 libtasn1-3 libudev0 libuuid1 libwind0-heimdal linux-libc-dev login lsb-base make mount mountall multiarch-support openssl passwd perl perl-base perl-modules plymouth procps python-minimal python2.7-minimal sysv-rc sysvinit-utils tzdata ubuntu-keyring udev upstart util-linux 85 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 43.5 MB of archives. After this operation, 140 kB of additional disk space will be used. WARNING: The following packages cannot be authenticated! base-files bash dpkg coreutils login mount perl perl-base perl-modules sysv-rc plymouth libplymouth2 initramfs-tools-bin initramfs-tools mountall initscripts upstart libc-dev-bin libc6-dev libc-bin libc6 sysvinit-utils libdbus-1-3 libdrm2 libpciaccess0 libdrm-intel1 libdrm-nouveau1a libdrm-radeon1 libglib2.0-0 libudev0 busybox-initramfs lsb-base tzdata util-linux procps udev libnih-dbus1 libnih1 passwd iproute ifupdown linux-libc-dev bsdutils libssl1.0.0 python2.7-minimal python-minimal libapt-pkg4.12 ubuntu-keyring gpgv gnupg apt libuuid1 libblkid1 libmount1 liblockfile-bin liblockfile1 libsqlite3-0 libroken18-heimdal libasn1-8-heimdal libgcrypt11 libtasn1-3 libgnutls26 libk5crypto3 libgssapi-krb5-2 libkrb5-3 libkrb5support0 libhcrypto4-heimdal libheimbase1-heimdal libwind0-heimdal libhx509-5-heimdal libkrb5-26-heimdal libheimntlm0-heimdal libgssapi3-heimdal libsasl2-2 libldap-2.4-2 openssl ca-certificates libcurl3-gnutls multiarch-support apt-transport-https binutils make dpkg-dev libdpkg-perl build-essential Authentication warning overridden. Get:1 http://ftpmaster.internal/ubuntu/ precise-updates/main base-files i386 6.5ubuntu6.7 [61.5 kB] Get:2 http://ftpmaster.internal/ubuntu/ precise-updates/main bash i386 4.2-2ubuntu2.1 [616 kB] Get:3 http://ftpmaster.internal/ubuntu/ precise-security/main dpkg i386 1.16.1.2ubuntu7.5 [1814 kB] Get:4 http://ftpmaster.internal/ubuntu/ precise-updates/main coreutils i386 8.13-3ubuntu3.2 [2181 kB] Get:5 http://ftpmaster.internal/ubuntu/ precise-updates/main login i386 1:4.1.4.2+svn3283-3ubuntu5.1 [286 kB] Get:6 http://ftpmaster.internal/ubuntu/ precise-updates/main mount i386 2.20.1-1ubuntu3.1 [167 kB] Get:7 http://ftpmaster.internal/ubuntu/ precise-security/main perl i386 5.14.2-6ubuntu2.4 [3697 kB] Get:8 http://ftpmaster.internal/ubuntu/ precise-security/main perl-base i386 5.14.2-6ubuntu2.4 [1471 kB] Get:9 http://ftpmaster.internal/ubuntu/ precise-security/main perl-modules all 5.14.2-6ubuntu2.4 [3389 kB] Get:10 http://ftpmaster.internal/ubuntu/ precise-updates/main sysv-rc all 2.88dsf-13.10ubuntu11.1 [44.6 kB] Get:11 http://ftpmaster.internal/ubuntu/ precise-updates/main plymouth i386 0.8.2-2ubuntu31.1 [125 kB] Get:12 http://ftpmaster.internal/ubuntu/ precise-updates/main libplymouth2 i386 0.8.2-2ubuntu31.1 [91.9 kB] Get:13 http://ftpmaster.internal/ubuntu/ precise-security/main initramfs-tools-bin i386 0.99ubuntu13.5 [9648 B] Get:14 http://ftpmaster.internal/ubuntu/ precise-security/main initramfs-tools all 0.99ubuntu13.5 [49.0 kB] Get:15 http://ftpmaster.internal/ubuntu/ precise-updates/main mountall i386 2.36.4 [70.2 kB] Get:16 http://ftpmaster.internal/ubuntu/ precise-updates/main initscripts i386 2.88dsf-13.10ubuntu11.1 [28.1 kB] Get:17 http://ftpmaster.internal/ubuntu/ precise-updates/main upstart i386 1.5-0ubuntu7.2 [313 kB] Get:18 http://ftpmaster.internal/ubuntu/ precise-security/main libc-dev-bin i386 2.15-0ubuntu10.5 [78.2 kB] Get:19 http://ftpmaster.internal/ubuntu/ precise-security/main libc6-dev i386 2.15-0ubuntu10.5 [5107 kB] Get:20 http://ftpmaster.internal/ubuntu/ precise-security/main libc-bin i386 2.15-0ubuntu10.5 [1133 kB] Get:21 http://ftpmaster.internal/ubuntu/ precise-security/main libc6 i386 2.15-0ubuntu10.5 [3949 kB] Get:22 http://ftpmaster.internal/ubuntu/ precise-updates/main sysvinit-utils i386 2.88dsf-13.10ubuntu11.1 [58.4 kB] Get:23 http://ftpmaster.internal/ubuntu/ precise-security/main libdbus-1-3 i386 1.4.18-1ubuntu1.5 [148 kB] Get:24 http://ftpmaster.internal/ubuntu/ precise-updates/main libdrm2 i386 2.4.52-1~precise1 [27.5 kB] Get:25 http://ftpmaster.internal/ubuntu/ precise-updates/main libpciaccess0 i386 0.12.902-1ubuntu0.2 [22.5 kB] Get:26 http://ftpmaster.internal/ubuntu/ precise-updates/main libdrm-intel1 i386 2.4.52-1~precise1 [65.9 kB] Get:27 http://ftpmaster.internal/ubuntu/ precise-updates/main libdrm-nouveau1a i386 2.4.52-1~precise1 [14.2 kB] Get:28 http://ftpmaster.internal/ubuntu/ precise-updates/main libdrm-radeon1 i386 2.4.52-1~precise1 [28.6 kB] Get:29 http://ftpmaster.internal/ubuntu/ precise-updates/main libglib2.0-0 i386 2.32.4-0ubuntu1 [1190 kB] Get:30 http://ftpmaster.internal/ubuntu/ precise-updates/main libudev0 i386 175-0ubuntu9.5 [32.1 kB] Get:31 http://ftpmaster.internal/ubuntu/ precise-updates/main busybox-initramfs i386 1:1.18.5-1ubuntu4.1 [172 kB] Get:32 http://ftpmaster.internal/ubuntu/ precise-updates/main lsb-base all 4.0-0ubuntu20.3 [10.5 kB] Get:33 http://ftpmaster.internal/ubuntu/ precise-security/main tzdata all 2014e-0ubuntu0.12.04 [458 kB] Get:34 http://ftpmaster.internal/ubuntu/ precise-updates/main util-linux i386 2.20.1-1ubuntu3.1 [594 kB] Get:35 http://ftpmaster.internal/ubuntu/ precise-updates/main procps i386 1:3.2.8-11ubuntu6.3 [225 kB] Get:36 http://ftpmaster.internal/ubuntu/ precise-updates/main udev i386 175-0ubuntu9.5 [358 kB] Get:37 http://ftpmaster.internal/ubuntu/ precise-updates/main libnih-dbus1 i386 1.0.3-4ubuntu9.1 [15.4 kB] Get:38 http://ftpmaster.internal/ubuntu/ precise-updates/main libnih1 i386 1.0.3-4ubuntu9.1 [53.7 kB] Get:39 http://ftpmaster.internal/ubuntu/ precise-updates/main passwd i386 1:4.1.4.2+svn3283-3ubuntu5.1 [940 kB] Get:40 http://ftpmaster.internal/ubuntu/ precise-updates/main iproute i386 20111117-1ubuntu2.3 [443 kB] Get:41 http://ftpmaster.internal/ubuntu/ precise-updates/main ifupdown i386 0.7~beta2ubuntu11.1 [47.8 kB] Get:42 http://ftpmaster.internal/ubuntu/ precise-security/main linux-libc-dev i386 3.2.0-67.101 [858 kB] Get:43 http://ftpmaster.internal/ubuntu/ precise-updates/main bsdutils i386 1:2.20.1-1ubuntu3.1 [41.7 kB] Get:44 http://ftpmaster.internal/ubuntu/ precise-security/main libssl1.0.0 i386 1.0.1-4ubuntu5.16 [1007 kB] Get:45 http://ftpmaster.internal/ubuntu/ precise-security/main python2.7-minimal i386 2.7.3-0ubuntu3.5 [1689 kB] Get:46 http://ftpmaster.internal/ubuntu/ precise-updates/main python-minimal i386 2.7.3-0ubuntu2.2 [29.2 kB] Get:47 http://ftpmaster.internal/ubuntu/ precise-security/main libapt-pkg4.12 i386 0.8.16~exp12ubuntu10.17 [942 kB] Get:48 http://ftpmaster.internal/ubuntu/ precise-updates/main ubuntu-keyring all 2011.11.21.1 [16.7 kB] Get:49 http://ftpmaster.internal/ubuntu/ precise-security/main gpgv i386 1.4.11-3ubuntu2.6 [178 kB] Get:50 http://ftpmaster.internal/ubuntu/ precise-security/main gnupg i386 1.4.11-3ubuntu2.6 [791 kB] Get:51 http://ftpmaster.internal/ubuntu/ precise-security/main apt i386 0.8.16~exp12ubuntu10.17 [1105 kB] Get:52 http://ftpmaster.internal/ubuntu/ precise-updates/main libuuid1 i386 2.20.1-1ubuntu3.1 [13.6 kB] Get:53 http://ftpmaster.internal/ubuntu/ precise-updates/main libblkid1 i386 2.20.1-1ubuntu3.1 [81.0 kB] Get:54 http://ftpmaster.internal/ubuntu/ precise-updates/main libmount1 i386 2.20.1-1ubuntu3.1 [72.0 kB] Get:55 http://ftpmaster.internal/ubuntu/ precise-updates/main liblockfile-bin i386 1.09-3ubuntu0.1 [12.4 kB] Get:56 http://ftpmaster.internal/ubuntu/ precise-updates/main liblockfile1 i386 1.09-3ubuntu0.1 [9216 B] Get:57 http://ftpmaster.internal/ubuntu/ precise-updates/main libsqlite3-0 i386 3.7.9-2ubuntu1.1 [354 kB] Get:58 http://ftpmaster.internal/ubuntu/ precise-updates/main libroken18-heimdal i386 1.6~git20120311.dfsg.1-2ubuntu0.1 [47.5 kB] Get:59 http://ftpmaster.internal/ubuntu/ precise-updates/main libasn1-8-heimdal i386 1.6~git20120311.dfsg.1-2ubuntu0.1 [242 kB] Get:60 http://ftpmaster.internal/ubuntu/ precise-security/main libgcrypt11 i386 1.5.0-3ubuntu0.2 [281 kB] Get:61 http://ftpmaster.internal/ubuntu/ precise-security/main libtasn1-3 i386 2.10-1ubuntu1.2 [44.2 kB] Get:62 http://ftpmaster.internal/ubuntu/ precise-security/main libgnutls26 i386 2.12.14-5ubuntu3.8 [448 kB] Get:63 http://ftpmaster.internal/ubuntu/ precise-security/main libk5crypto3 i386 1.10+dfsg~beta1-2ubuntu0.3 [77.4 kB] Get:64 http://ftpmaster.internal/ubuntu/ precise-security/main libgssapi-krb5-2 i386 1.10+dfsg~beta1-2ubuntu0.3 [120 kB] Get:65 http://ftpmaster.internal/ubuntu/ precise-security/main libkrb5-3 i386 1.10+dfsg~beta1-2ubuntu0.3 [366 kB] Get:66 http://ftpmaster.internal/ubuntu/ precise-security/main libkrb5support0 i386 1.10+dfsg~beta1-2ubuntu0.3 [23.9 kB] Get:67 http://ftpmaster.internal/ubuntu/ precise-updates/main libhcrypto4-heimdal i386 1.6~git20120311.dfsg.1-2ubuntu0.1 [104 kB] Get:68 http://ftpmaster.internal/ubuntu/ precise-updates/main libheimbase1-heimdal i386 1.6~git20120311.dfsg.1-2ubuntu0.1 [33.3 kB] Get:69 http://ftpmaster.internal/ubuntu/ precise-updates/main libwind0-heimdal i386 1.6~git20120311.dfsg.1-2ubuntu0.1 [77.8 kB] Get:70 http://ftpmaster.internal/ubuntu/ precise-updates/main libhx509-5-heimdal i386 1.6~git20120311.dfsg.1-2ubuntu0.1 [127 kB] Get:71 http://ftpmaster.internal/ubuntu/ precise-updates/main libkrb5-26-heimdal i386 1.6~git20120311.dfsg.1-2ubuntu0.1 [240 kB] Get:72 http://ftpmaster.internal/ubuntu/ precise-updates/main libheimntlm0-heimdal i386 1.6~git20120311.dfsg.1-2ubuntu0.1 [16.8 kB] Get:73 http://ftpmaster.internal/ubuntu/ precise-updates/main libgssapi3-heimdal i386 1.6~git20120311.dfsg.1-2ubuntu0.1 [112 kB] Get:74 http://ftpmaster.internal/ubuntu/ precise-updates/main libsasl2-2 i386 2.1.25.dfsg1-3ubuntu0.1 [69.0 kB] Get:75 http://ftpmaster.internal/ubuntu/ precise-updates/main libldap-2.4-2 i386 2.4.28-1.1ubuntu4.4 [185 kB] Get:76 http://ftpmaster.internal/ubuntu/ precise-security/main openssl i386 1.0.1-4ubuntu5.16 [519 kB] Get:77 http://ftpmaster.internal/ubuntu/ precise-security/main ca-certificates all 20130906ubuntu0.12.04.1 [192 kB] Get:78 http://ftpmaster.internal/ubuntu/ precise-security/main libcurl3-gnutls i386 7.22.0-3ubuntu4.8 [232 kB] Get:79 http://ftpmaster.internal/ubuntu/ precise-security/main multiarch-support i386 2.15-0ubuntu10.5 [4482 B] Get:80 http://ftpmaster.internal/ubuntu/ precise-security/main apt-transport-https i386 0.8.16~exp12ubuntu10.17 [16.3 kB] Get:81 http://ftpmaster.internal/ubuntu/ precise-security/main binutils i386 2.22-6ubuntu1.1 [2387 kB] Get:82 http://ftpmaster.internal/ubuntu/ precise-updates/main make i386 3.81-8.1ubuntu1.1 [116 kB] Get:83 http://ftpmaster.internal/ubuntu/ precise-security/main dpkg-dev all 1.16.1.2ubuntu7.5 [468 kB] Get:84 http://ftpmaster.internal/ubuntu/ precise-security/main libdpkg-perl all 1.16.1.2ubuntu7.5 [182 kB] Get:85 http://ftpmaster.internal/ubuntu/ precise-updates/main build-essential i386 11.5ubuntu2.1 [5796 B] debconf: delaying package configuration, since apt-utils is not installed Fetched 43.5 MB in 2s (19.0 MB/s) (Reading database ... 12281 files and directories currently installed.) Preparing to replace base-files 6.5ubuntu6 (using .../base-files_6.5ubuntu6.7_i386.deb) ... Unpacking replacement base-files ... Setting up base-files (6.5ubuntu6.7) ... Installing new version of config file /etc/issue ... Installing new version of config file /etc/issue.net ... Installing new version of config file /etc/lsb-release ... (Reading database ... 12282 files and directories currently installed.) Preparing to replace bash 4.2-2ubuntu2 (using .../bash_4.2-2ubuntu2.1_i386.deb) ... Unpacking replacement bash ... Setting up bash (4.2-2ubuntu2.1) ... update-alternatives: using /usr/share/man/man7/bash-builtins.7.gz to provide /usr/share/man/man7/builtins.7.gz (builtins.7.gz) in auto mode. (Reading database ... 12282 files and directories currently installed.) Preparing to replace dpkg 1.16.1.2ubuntu7 (using .../dpkg_1.16.1.2ubuntu7.5_i386.deb) ... Unpacking replacement dpkg ... Setting up dpkg (1.16.1.2ubuntu7.5) ... (Reading database ... 12283 files and directories currently installed.) Preparing to replace coreutils 8.13-3ubuntu3 (using .../coreutils_8.13-3ubuntu3.2_i386.deb) ... Unpacking replacement coreutils ... Setting up coreutils (8.13-3ubuntu3.2) ... (Reading database ... 12283 files and directories currently installed.) Preparing to replace login 1:4.1.4.2+svn3283-3ubuntu5 (using .../login_1%3a4.1.4.2+svn3283-3ubuntu5.1_i386.deb) ... Unpacking replacement login ... Setting up login (1:4.1.4.2+svn3283-3ubuntu5.1) ... (Reading database ... 12283 files and directories currently installed.) Preparing to replace mount 2.20.1-1ubuntu3 (using .../mount_2.20.1-1ubuntu3.1_i386.deb) ... Unpacking replacement mount ... Setting up mount (2.20.1-1ubuntu3.1) ... (Reading database ... 12283 files and directories currently installed.) Preparing to replace perl 5.14.2-6ubuntu2 (using .../perl_5.14.2-6ubuntu2.4_i386.deb) ... Unpacking replacement perl ... Preparing to replace perl-base 5.14.2-6ubuntu2 (using .../perl-base_5.14.2-6ubuntu2.4_i386.deb) ... Unpacking replacement perl-base ... Setting up perl-base (5.14.2-6ubuntu2.4) ... (Reading database ... 12283 files and directories currently installed.) Preparing to replace perl-modules 5.14.2-6ubuntu2 (using .../perl-modules_5.14.2-6ubuntu2.4_all.deb) ... Unpacking replacement perl-modules ... Preparing to replace sysv-rc 2.88dsf-13.10ubuntu11 (using .../sysv-rc_2.88dsf-13.10ubuntu11.1_all.deb) ... Unpacking replacement sysv-rc ... Preparing to replace plymouth 0.8.2-2ubuntu30 (using .../plymouth_0.8.2-2ubuntu31.1_i386.deb) ... Unpacking replacement plymouth ... Preparing to replace libplymouth2 0.8.2-2ubuntu30 (using .../libplymouth2_0.8.2-2ubuntu31.1_i386.deb) ... Unpacking replacement libplymouth2 ... Preparing to replace initramfs-tools-bin 0.99ubuntu13 (using .../initramfs-tools-bin_0.99ubuntu13.5_i386.deb) ... Unpacking replacement initramfs-tools-bin ... Preparing to replace initramfs-tools 0.99ubuntu13 (using .../initramfs-tools_0.99ubuntu13.5_all.deb) ... Unpacking replacement initramfs-tools ... Preparing to replace mountall 2.36 (using .../mountall_2.36.4_i386.deb) ... Unpacking replacement mountall ... Preparing to replace initscripts 2.88dsf-13.10ubuntu11 (using .../initscripts_2.88dsf-13.10ubuntu11.1_i386.deb) ... Unpacking replacement initscripts ... Preparing to replace upstart 1.5-0ubuntu5 (using .../upstart_1.5-0ubuntu7.2_i386.deb) ... Unpacking replacement upstart ... Preparing to replace libc-dev-bin 2.15-0ubuntu10 (using .../libc-dev-bin_2.15-0ubuntu10.5_i386.deb) ... Unpacking replacement libc-dev-bin ... Preparing to replace libc6-dev 2.15-0ubuntu10 (using .../libc6-dev_2.15-0ubuntu10.5_i386.deb) ... Unpacking replacement libc6-dev ... Preparing to replace libc-bin 2.15-0ubuntu10 (using .../libc-bin_2.15-0ubuntu10.5_i386.deb) ... Unpacking replacement libc-bin ... Setting up libc-bin (2.15-0ubuntu10.5) ... (Reading database ... 12283 files and directories currently installed.) Preparing to replace libc6 2.15-0ubuntu10 (using .../libc6_2.15-0ubuntu10.5_i386.deb) ... Unpacking replacement libc6 ... Setting up libc6 (2.15-0ubuntu10.5) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place (Reading database ... 12283 files and directories currently installed.) Preparing to replace sysvinit-utils 2.88dsf-13.10ubuntu11 (using .../sysvinit-utils_2.88dsf-13.10ubuntu11.1_i386.deb) ... Unpacking replacement sysvinit-utils ... Preparing to replace libdbus-1-3 1.4.18-1ubuntu1 (using .../libdbus-1-3_1.4.18-1ubuntu1.5_i386.deb) ... Unpacking replacement libdbus-1-3 ... Preparing to replace libdrm2 2.4.32-1ubuntu1 (using .../libdrm2_2.4.52-1~precise1_i386.deb) ... Unpacking replacement libdrm2 ... Preparing to replace libpciaccess0 0.12.902-1 (using .../libpciaccess0_0.12.902-1ubuntu0.2_i386.deb) ... Unpacking replacement libpciaccess0 ... Preparing to replace libdrm-intel1 2.4.32-1ubuntu1 (using .../libdrm-intel1_2.4.52-1~precise1_i386.deb) ... Unpacking replacement libdrm-intel1 ... Preparing to replace libdrm-nouveau1a 2.4.32-1ubuntu1 (using .../libdrm-nouveau1a_2.4.52-1~precise1_i386.deb) ... Unpacking replacement libdrm-nouveau1a ... Preparing to replace libdrm-radeon1 2.4.32-1ubuntu1 (using .../libdrm-radeon1_2.4.52-1~precise1_i386.deb) ... Unpacking replacement libdrm-radeon1 ... Preparing to replace libglib2.0-0 2.32.1-0ubuntu2 (using .../libglib2.0-0_2.32.4-0ubuntu1_i386.deb) ... Unpacking replacement libglib2.0-0 ... Preparing to replace libudev0 175-0ubuntu9 (using .../libudev0_175-0ubuntu9.5_i386.deb) ... Unpacking replacement libudev0 ... Preparing to replace busybox-initramfs 1:1.18.5-1ubuntu4 (using .../busybox-initramfs_1%3a1.18.5-1ubuntu4.1_i386.deb) ... Unpacking replacement busybox-initramfs ... Preparing to replace lsb-base 4.0-0ubuntu20 (using .../lsb-base_4.0-0ubuntu20.3_all.deb) ... Unpacking replacement lsb-base ... Setting up lsb-base (4.0-0ubuntu20.3) ... (Reading database ... 12283 files and directories currently installed.) Preparing to replace tzdata 2012b-1 (using .../tzdata_2014e-0ubuntu0.12.04_all.deb) ... Unpacking replacement tzdata ... Setting up tzdata (2014e-0ubuntu0.12.04) ... Current default time zone: 'Etc/UTC' Local time is now: Sun Jul 27 20:19:47 UTC 2014. Universal Time is now: Sun Jul 27 20:19:47 UTC 2014. Run 'dpkg-reconfigure tzdata' if you wish to change it. (Reading database ... 12274 files and directories currently installed.) Preparing to replace util-linux 2.20.1-1ubuntu3 (using .../util-linux_2.20.1-1ubuntu3.1_i386.deb) ... Unpacking replacement util-linux ... Setting up libdbus-1-3 (1.4.18-1ubuntu1.5) ... Setting up libudev0 (175-0ubuntu9.5) ... Setting up sysvinit-utils (2.88dsf-13.10ubuntu11.1) ... Setting up sysv-rc (2.88dsf-13.10ubuntu11.1) ... Setting up libdrm2 (2.4.52-1~precise1) ... Setting up libpciaccess0 (0.12.902-1ubuntu0.2) ... Setting up libdrm-intel1 (2.4.52-1~precise1) ... Setting up libdrm-nouveau1a (2.4.52-1~precise1) ... Setting up libdrm-radeon1 (2.4.52-1~precise1) ... Setting up libplymouth2 (0.8.2-2ubuntu31.1) ... Setting up initramfs-tools-bin (0.99ubuntu13.5) ... Setting up busybox-initramfs (1:1.18.5-1ubuntu4.1) ... Setting up upstart (1.5-0ubuntu7.2) ... Installing new version of config file /etc/logrotate.d/upstart ... Setting up util-linux (2.20.1-1ubuntu3.1) ... Setting up initramfs-tools (0.99ubuntu13.5) ... update-initramfs: deferring update (trigger activated) Setting up mountall (2.36.4) ... Setting up initscripts (2.88dsf-13.10ubuntu11.1) ... Setting up plymouth (0.8.2-2ubuntu31.1) ... update-initramfs: deferring update (trigger activated) Processing triggers for libc-bin ... ldconfig deferred processing now taking place Processing triggers for initramfs-tools ... (Reading database ... 12274 files and directories currently installed.) Preparing to replace procps 1:3.2.8-11ubuntu6 (using .../procps_1%3a3.2.8-11ubuntu6.3_i386.deb) ... invoke-rc.d: policy-rc.d denied execution of stop. Unpacking replacement procps ... Preparing to replace udev 175-0ubuntu9 (using .../udev_175-0ubuntu9.5_i386.deb) ... Adding 'diversion of /sbin/udevadm to /sbin/udevadm.upgrade by fake-udev' Unpacking replacement udev ... Preparing to replace libnih-dbus1 1.0.3-4ubuntu9 (using .../libnih-dbus1_1.0.3-4ubuntu9.1_i386.deb) ... Unpacking replacement libnih-dbus1 ... Preparing to replace libnih1 1.0.3-4ubuntu9 (using .../libnih1_1.0.3-4ubuntu9.1_i386.deb) ... Unpacking replacement libnih1 ... Preparing to replace passwd 1:4.1.4.2+svn3283-3ubuntu5 (using .../passwd_1%3a4.1.4.2+svn3283-3ubuntu5.1_i386.deb) ... Unpacking replacement passwd ... Setting up passwd (1:4.1.4.2+svn3283-3ubuntu5.1) ... (Reading database ... 12284 files and directories currently installed.) Preparing to replace iproute 20111117-1ubuntu2 (using .../iproute_20111117-1ubuntu2.3_i386.deb) ... Unpacking replacement iproute ... Preparing to replace ifupdown 0.7~beta2ubuntu8 (using .../ifupdown_0.7~beta2ubuntu11.1_i386.deb) ... Unpacking replacement ifupdown ... Preparing to replace linux-libc-dev 3.2.0-23.36 (using .../linux-libc-dev_3.2.0-67.101_i386.deb) ... Unpacking replacement linux-libc-dev ... Preparing to replace bsdutils 1:2.20.1-1ubuntu3 (using .../bsdutils_1%3a2.20.1-1ubuntu3.1_i386.deb) ... Unpacking replacement bsdutils ... Setting up bsdutils (1:2.20.1-1ubuntu3.1) ... (Reading database ... 12288 files and directories currently installed.) Preparing to replace libssl1.0.0 1.0.1-4ubuntu3 (using .../libssl1.0.0_1.0.1-4ubuntu5.16_i386.deb) ... Unpacking replacement libssl1.0.0 ... Setting up libssl1.0.0 (1.0.1-4ubuntu5.16) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place (Reading database ... 12288 files and directories currently installed.) Preparing to replace python2.7-minimal 2.7.3-0ubuntu3 (using .../python2.7-minimal_2.7.3-0ubuntu3.5_i386.deb) ... Unpacking replacement python2.7-minimal ... Setting up python2.7-minimal (2.7.3-0ubuntu3.5) ... (Reading database ... 12288 files and directories currently installed.) Preparing to replace python-minimal 2.7.3-0ubuntu2 (using .../python-minimal_2.7.3-0ubuntu2.2_i386.deb) ... Unpacking replacement python-minimal ... Setting up python-minimal (2.7.3-0ubuntu2.2) ... (Reading database ... 12288 files and directories currently installed.) Preparing to replace libapt-pkg4.12 0.8.16~exp12ubuntu10 (using .../libapt-pkg4.12_0.8.16~exp12ubuntu10.17_i386.deb) ... Unpacking replacement libapt-pkg4.12 ... Setting up libapt-pkg4.12 (0.8.16~exp12ubuntu10.17) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place (Reading database ... 12288 files and directories currently installed.) Preparing to replace ubuntu-keyring 2011.11.21 (using .../ubuntu-keyring_2011.11.21.1_all.deb) ... Unpacking replacement ubuntu-keyring ... Setting up ubuntu-keyring (2011.11.21.1) ... gpg: key 437D05B5: "Ubuntu Archive Automatic Signing Key " not changed gpg: key FBB75451: "Ubuntu CD Image Automatic Signing Key " not changed gpg: key C0B21F32: public key "Ubuntu Archive Automatic Signing Key (2012) " imported gpg: key EFE21092: public key "Ubuntu CD Image Automatic Signing Key (2012) " imported gpg: Total number processed: 4 gpg: imported: 2 (RSA: 2) gpg: unchanged: 2 gpg: no ultimately trusted keys found (Reading database ... 12288 files and directories currently installed.) Preparing to replace gpgv 1.4.11-3ubuntu2 (using .../gpgv_1.4.11-3ubuntu2.6_i386.deb) ... Unpacking replacement gpgv ... Setting up gpgv (1.4.11-3ubuntu2.6) ... (Reading database ... 12288 files and directories currently installed.) Preparing to replace gnupg 1.4.11-3ubuntu2 (using .../gnupg_1.4.11-3ubuntu2.6_i386.deb) ... Unpacking replacement gnupg ... Setting up gnupg (1.4.11-3ubuntu2.6) ... (Reading database ... 12288 files and directories currently installed.) Preparing to replace apt 0.8.16~exp12ubuntu10 (using .../apt_0.8.16~exp12ubuntu10.17_i386.deb) ... Unpacking replacement apt ... Setting up apt (0.8.16~exp12ubuntu10.17) ... Installing new version of config file /etc/apt/apt.conf.d/01autoremove ... gpg: key 437D05B5: "Ubuntu Archive Automatic Signing Key " not changed gpg: key FBB75451: "Ubuntu CD Image Automatic Signing Key " not changed gpg: key C0B21F32: "Ubuntu Archive Automatic Signing Key (2012) " not changed gpg: key EFE21092: "Ubuntu CD Image Automatic Signing Key (2012) " not changed gpg: Total number processed: 4 gpg: unchanged: 4 No packages found matching linux-image-[0-9]*. (Reading database ... 12289 files and directories currently installed.) Preparing to replace libuuid1 2.20.1-1ubuntu3 (using .../libuuid1_2.20.1-1ubuntu3.1_i386.deb) ... Unpacking replacement libuuid1 ... Setting up libuuid1 (2.20.1-1ubuntu3.1) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place (Reading database ... 12289 files and directories currently installed.) Preparing to replace libblkid1 2.20.1-1ubuntu3 (using .../libblkid1_2.20.1-1ubuntu3.1_i386.deb) ... Unpacking replacement libblkid1 ... Setting up libblkid1 (2.20.1-1ubuntu3.1) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place (Reading database ... 12289 files and directories currently installed.) Preparing to replace libmount1 2.20.1-1ubuntu3 (using .../libmount1_2.20.1-1ubuntu3.1_i386.deb) ... Unpacking replacement libmount1 ... Setting up libmount1 (2.20.1-1ubuntu3.1) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place (Reading database ... 12289 files and directories currently installed.) Preparing to replace liblockfile-bin 1.09-3 (using .../liblockfile-bin_1.09-3ubuntu0.1_i386.deb) ... Unpacking replacement liblockfile-bin ... Preparing to replace liblockfile1 1.09-3 (using .../liblockfile1_1.09-3ubuntu0.1_i386.deb) ... Unpacking replacement liblockfile1 ... Preparing to replace libsqlite3-0 3.7.9-2ubuntu1 (using .../libsqlite3-0_3.7.9-2ubuntu1.1_i386.deb) ... Unpacking replacement libsqlite3-0 ... Preparing to replace libroken18-heimdal 1.6~git20120311.dfsg.1-2 (using .../libroken18-heimdal_1.6~git20120311.dfsg.1-2ubuntu0.1_i386.deb) ... Unpacking replacement libroken18-heimdal ... Preparing to replace libasn1-8-heimdal 1.6~git20120311.dfsg.1-2 (using .../libasn1-8-heimdal_1.6~git20120311.dfsg.1-2ubuntu0.1_i386.deb) ... Unpacking replacement libasn1-8-heimdal ... Preparing to replace libgcrypt11 1.5.0-3 (using .../libgcrypt11_1.5.0-3ubuntu0.2_i386.deb) ... Unpacking replacement libgcrypt11 ... Preparing to replace libtasn1-3 2.10-1ubuntu1 (using .../libtasn1-3_2.10-1ubuntu1.2_i386.deb) ... Unpacking replacement libtasn1-3 ... Preparing to replace libgnutls26 2.12.14-5ubuntu3 (using .../libgnutls26_2.12.14-5ubuntu3.8_i386.deb) ... Unpacking replacement libgnutls26 ... Preparing to replace libk5crypto3 1.10+dfsg~beta1-2 (using .../libk5crypto3_1.10+dfsg~beta1-2ubuntu0.3_i386.deb) ... Unpacking replacement libk5crypto3 ... Preparing to replace libgssapi-krb5-2 1.10+dfsg~beta1-2 (using .../libgssapi-krb5-2_1.10+dfsg~beta1-2ubuntu0.3_i386.deb) ... Unpacking replacement libgssapi-krb5-2 ... Preparing to replace libkrb5-3 1.10+dfsg~beta1-2 (using .../libkrb5-3_1.10+dfsg~beta1-2ubuntu0.3_i386.deb) ... Unpacking replacement libkrb5-3 ... Preparing to replace libkrb5support0 1.10+dfsg~beta1-2 (using .../libkrb5support0_1.10+dfsg~beta1-2ubuntu0.3_i386.deb) ... Unpacking replacement libkrb5support0 ... Preparing to replace libhcrypto4-heimdal 1.6~git20120311.dfsg.1-2 (using .../libhcrypto4-heimdal_1.6~git20120311.dfsg.1-2ubuntu0.1_i386.deb) ... Unpacking replacement libhcrypto4-heimdal ... Preparing to replace libheimbase1-heimdal 1.6~git20120311.dfsg.1-2 (using .../libheimbase1-heimdal_1.6~git20120311.dfsg.1-2ubuntu0.1_i386.deb) ... Unpacking replacement libheimbase1-heimdal ... Preparing to replace libwind0-heimdal 1.6~git20120311.dfsg.1-2 (using .../libwind0-heimdal_1.6~git20120311.dfsg.1-2ubuntu0.1_i386.deb) ... Unpacking replacement libwind0-heimdal ... Preparing to replace libhx509-5-heimdal 1.6~git20120311.dfsg.1-2 (using .../libhx509-5-heimdal_1.6~git20120311.dfsg.1-2ubuntu0.1_i386.deb) ... Unpacking replacement libhx509-5-heimdal ... Preparing to replace libkrb5-26-heimdal 1.6~git20120311.dfsg.1-2 (using .../libkrb5-26-heimdal_1.6~git20120311.dfsg.1-2ubuntu0.1_i386.deb) ... Unpacking replacement libkrb5-26-heimdal ... Preparing to replace libheimntlm0-heimdal 1.6~git20120311.dfsg.1-2 (using .../libheimntlm0-heimdal_1.6~git20120311.dfsg.1-2ubuntu0.1_i386.deb) ... Unpacking replacement libheimntlm0-heimdal ... Preparing to replace libgssapi3-heimdal 1.6~git20120311.dfsg.1-2 (using .../libgssapi3-heimdal_1.6~git20120311.dfsg.1-2ubuntu0.1_i386.deb) ... Unpacking replacement libgssapi3-heimdal ... Preparing to replace libsasl2-2 2.1.25.dfsg1-3 (using .../libsasl2-2_2.1.25.dfsg1-3ubuntu0.1_i386.deb) ... Unpacking replacement libsasl2-2 ... Preparing to replace libldap-2.4-2 2.4.28-1.1ubuntu4 (using .../libldap-2.4-2_2.4.28-1.1ubuntu4.4_i386.deb) ... Unpacking replacement libldap-2.4-2 ... Preparing to replace openssl 1.0.1-4ubuntu3 (using .../openssl_1.0.1-4ubuntu5.16_i386.deb) ... Unpacking replacement openssl ... Preparing to replace ca-certificates 20111211 (using .../ca-certificates_20130906ubuntu0.12.04.1_all.deb) ... Unpacking replacement ca-certificates ... Preparing to replace libcurl3-gnutls 7.22.0-3ubuntu4 (using .../libcurl3-gnutls_7.22.0-3ubuntu4.8_i386.deb) ... Unpacking replacement libcurl3-gnutls ... Preparing to replace multiarch-support 2.15-0ubuntu10 (using .../multiarch-support_2.15-0ubuntu10.5_i386.deb) ... Unpacking replacement multiarch-support ... Setting up multiarch-support (2.15-0ubuntu10.5) ... (Reading database ... 12299 files and directories currently installed.) Preparing to replace apt-transport-https 0.8.16~exp12ubuntu10 (using .../apt-transport-https_0.8.16~exp12ubuntu10.17_i386.deb) ... Unpacking replacement apt-transport-https ... Preparing to replace binutils 2.22-6ubuntu1 (using .../binutils_2.22-6ubuntu1.1_i386.deb) ... Unpacking replacement binutils ... Preparing to replace make 3.81-8.1ubuntu1 (using .../make_3.81-8.1ubuntu1.1_i386.deb) ... Unpacking replacement make ... Preparing to replace dpkg-dev 1.16.1.2ubuntu7 (using .../dpkg-dev_1.16.1.2ubuntu7.5_all.deb) ... Unpacking replacement dpkg-dev ... Preparing to replace libdpkg-perl 1.16.1.2ubuntu7 (using .../libdpkg-perl_1.16.1.2ubuntu7.5_all.deb) ... Unpacking replacement libdpkg-perl ... Preparing to replace build-essential 11.5ubuntu2 (using .../build-essential_11.5ubuntu2.1_i386.deb) ... Unpacking replacement build-essential ... Setting up libc-dev-bin (2.15-0ubuntu10.5) ... Setting up linux-libc-dev (3.2.0-67.101) ... Setting up libc6-dev (2.15-0ubuntu10.5) ... Setting up libglib2.0-0 (2.32.4-0ubuntu1) ... No schema files found: doing nothing. Setting up procps (1:3.2.8-11ubuntu6.3) ... invoke-rc.d: policy-rc.d denied execution of start. Setting up udev (175-0ubuntu9.5) ... invoke-rc.d: policy-rc.d denied execution of restart. Removing 'diversion of /sbin/udevadm to /sbin/udevadm.upgrade by fake-udev' update-initramfs: deferring update (trigger activated) Setting up libnih1 (1.0.3-4ubuntu9.1) ... Setting up libnih-dbus1 (1.0.3-4ubuntu9.1) ... Setting up iproute (20111117-1ubuntu2.3) ... Setting up ifupdown (0.7~beta2ubuntu11.1) ... Installing new version of config file /etc/init/network-interface.conf ... Setting up liblockfile-bin (1.09-3ubuntu0.1) ... Setting up liblockfile1 (1.09-3ubuntu0.1) ... Setting up libsqlite3-0 (3.7.9-2ubuntu1.1) ... Setting up libroken18-heimdal (1.6~git20120311.dfsg.1-2ubuntu0.1) ... Setting up libasn1-8-heimdal (1.6~git20120311.dfsg.1-2ubuntu0.1) ... Setting up libgcrypt11 (1.5.0-3ubuntu0.2) ... Setting up libtasn1-3 (2.10-1ubuntu1.2) ... Setting up libgnutls26 (2.12.14-5ubuntu3.8) ... Setting up libkrb5support0 (1.10+dfsg~beta1-2ubuntu0.3) ... Setting up libk5crypto3 (1.10+dfsg~beta1-2ubuntu0.3) ... Setting up libkrb5-3 (1.10+dfsg~beta1-2ubuntu0.3) ... Setting up libgssapi-krb5-2 (1.10+dfsg~beta1-2ubuntu0.3) ... Setting up libhcrypto4-heimdal (1.6~git20120311.dfsg.1-2ubuntu0.1) ... Setting up libheimbase1-heimdal (1.6~git20120311.dfsg.1-2ubuntu0.1) ... Setting up libwind0-heimdal (1.6~git20120311.dfsg.1-2ubuntu0.1) ... Setting up libhx509-5-heimdal (1.6~git20120311.dfsg.1-2ubuntu0.1) ... Setting up libkrb5-26-heimdal (1.6~git20120311.dfsg.1-2ubuntu0.1) ... Setting up libheimntlm0-heimdal (1.6~git20120311.dfsg.1-2ubuntu0.1) ... Setting up libgssapi3-heimdal (1.6~git20120311.dfsg.1-2ubuntu0.1) ... Setting up libsasl2-2 (2.1.25.dfsg1-3ubuntu0.1) ... Setting up libldap-2.4-2 (2.4.28-1.1ubuntu4.4) ... Setting up openssl (1.0.1-4ubuntu5.16) ... Setting up ca-certificates (20130906ubuntu0.12.04.1) ... Updating certificates in /etc/ssl/certs... 21 added, 9 removed; done. Running hooks in /etc/ca-certificates/update.d....done. Setting up libcurl3-gnutls (7.22.0-3ubuntu4.8) ... Setting up apt-transport-https (0.8.16~exp12ubuntu10.17) ... Setting up binutils (2.22-6ubuntu1.1) ... Setting up make (3.81-8.1ubuntu1.1) ... Setting up perl-modules (5.14.2-6ubuntu2.4) ... Setting up perl (5.14.2-6ubuntu2.4) ... Setting up libdpkg-perl (1.16.1.2ubuntu7.5) ... Setting up dpkg-dev (1.16.1.2ubuntu7.5) ... Setting up build-essential (11.5ubuntu2.1) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place Processing triggers for initramfs-tools ... RUN: /usr/share/launchpad-buildd/slavebin/sbuild-package ['sbuild-package', 'PACKAGEBUILD-6216952', 'i386', 'precise', '--nolog', '--batch', '--archive=ubuntu', '--dist=precise', '-A', '--purpose=PPA', '--architecture=i386', '--comp=main', 'neovim_0.0.0+897+201407272017~ubuntu12.04.1.dsc'] Initiating build PACKAGEBUILD-6216952 with 1 jobs across 1 processor cores. Kernel reported to sbuild: 2.6.24-32-xen #1 SMP Mon Dec 3 16:12:25 UTC 2012 i686 Automatic build of neovim_0.0.0+897+201407272017~ubuntu12.04.1 on elnath by sbuild/i386 1.170.5 Build started at 20140727-2020 ****************************************************************************** neovim_0.0.0+897+201407272017~ubuntu12.04.1.dsc exists in cwd ** Using build dependencies supplied by package: Build-Depends: libtool, autoconf, automake, cmake, libncurses5-dev, g++ (>= 4:4.6), pkg-config, debhelper (>= 9), lua5.1, luarocks, liblua5.1-lpeg2, libmsgpack-dev, luajit, libluajit-5.1-dev, lua-cmsgpack Checking for already installed source dependencies... libtool: missing autoconf: missing automake: missing cmake: missing libncurses5-dev: missing g++: already installed (4:4.6.3-1ubuntu5 >= 4:4.6 is satisfied) pkg-config: missing debhelper: missing lua5.1: missing luarocks: missing liblua5.1-lpeg2: missing libmsgpack-dev: missing luajit: missing libluajit-5.1-dev: missing lua-cmsgpack: missing Checking for source dependency conflicts... /usr/bin/sudo /usr/bin/apt-get --purge $CHROOT_OPTIONS -q -y install libtool autoconf automake cmake libncurses5-dev pkg-config debhelper lua5.1 luarocks liblua5.1-lpeg2 libmsgpack-dev luajit libluajit-5.1-dev lua-cmsgpack Reading package lists... Building dependency tree... Reading state information... The following extra packages will be installed: autotools-dev bsdmainutils cmake-data dh-apparmor emacsen-common file gettext gettext-base groff-base html2text intltool-debian libarchive12 libcroco3 libcurl3 libexpat1 libgettextpo0 liblua5.1-0 liblua5.1-0-dev libluajit-5.1-2 libluajit-5.1-common libmagic1 libmsgpack3 libmsgpackc2 libnettle4 libpipeline1 libpopt0 libreadline-dev libreadline6-dev libtinfo-dev libunistring0 libxml2 libxmlrpc-core-c3 m4 man-db po-debconf wget zip Suggested packages: autoconf2.13 autoconf-archive gnu-standards autoconf-doc wamerican wordlist whois vacation dh-make gettext-doc groff ncurses-doc libtool-doc automaken gfortran fortran95-compiler gcj less www-browser libmail-box-perl Recommended packages: libltdl-dev xml-core libmail-sendmail-perl unzip The following NEW packages will be installed: autoconf automake autotools-dev bsdmainutils cmake cmake-data debhelper dh-apparmor emacsen-common file gettext gettext-base groff-base html2text intltool-debian libarchive12 libcroco3 libcurl3 libexpat1 libgettextpo0 liblua5.1-0 liblua5.1-0-dev liblua5.1-lpeg2 libluajit-5.1-2 libluajit-5.1-common libluajit-5.1-dev libmagic1 libmsgpack-dev libmsgpack3 libmsgpackc2 libncurses5-dev libnettle4 libpipeline1 libpopt0 libreadline-dev libreadline6-dev libtinfo-dev libtool libunistring0 libxml2 libxmlrpc-core-c3 lua-cmsgpack lua5.1 luajit luarocks m4 man-db pkg-config po-debconf wget zip 0 upgraded, 51 newly installed, 0 to remove and 0 not upgraded. Need to get 16.1 MB of archives. After this operation, 47.8 MB of additional disk space will be used. WARNING: The following packages cannot be authenticated! libpopt0 libpipeline1 libxml2 libnettle4 libarchive12 libcroco3 libcurl3 libexpat1 libunistring0 libgettextpo0 liblua5.1-0 liblua5.1-lpeg2 libluajit-5.1-common libluajit-5.1-2 libluajit-5.1-dev lua5.1 lua-cmsgpack luajit libmagic1 file bsdmainutils gettext-base groff-base man-db wget m4 autoconf autotools-dev automake libxmlrpc-core-c3 emacsen-common cmake-data cmake html2text gettext intltool-debian po-debconf dh-apparmor debhelper libtinfo-dev libreadline6-dev libreadline-dev liblua5.1-0-dev libncurses5-dev libtool zip luarocks pkg-config libmsgpack3 libmsgpackc2 libmsgpack-dev Authentication warning overridden. Get:1 http://ppa.launchpad.net/rudenko/neovim/ubuntu/ precise/main lua-cmsgpack i386 0.3-2+5~ubuntu12.04.1 [8014 B] Get:2 http://ftpmaster.internal/ubuntu/ precise/main libpopt0 i386 1.16-3ubuntu1 [29.0 kB] Get:3 http://ftpmaster.internal/ubuntu/ precise/main libpipeline1 i386 1.2.1-1 [26.1 kB] Get:4 http://ftpmaster.internal/ubuntu/ precise-security/main libxml2 i386 2.7.8.dfsg-5.1ubuntu4.9 [662 kB] Get:5 http://ftpmaster.internal/ubuntu/ precise/main libnettle4 i386 2.4-1 [101 kB] Get:6 http://ftpmaster.internal/ubuntu/ precise/main libarchive12 i386 3.0.3-6ubuntu1 [294 kB] Get:7 http://ftpmaster.internal/ubuntu/ precise-updates/main libcroco3 i386 0.6.5-1ubuntu0.1 [100 kB] Get:8 http://ftpmaster.internal/ubuntu/ precise-security/main libcurl3 i386 7.22.0-3ubuntu4.8 [242 kB] Get:9 http://ftpmaster.internal/ubuntu/ precise-security/main libexpat1 i386 2.0.1-7.2ubuntu1.1 [130 kB] Get:10 http://ftpmaster.internal/ubuntu/ precise/main libunistring0 i386 0.9.3-5 [432 kB] Get:11 http://ftpmaster.internal/ubuntu/ precise/main libgettextpo0 i386 0.18.1.1-5ubuntu3 [118 kB] Get:12 http://ftpmaster.internal/ubuntu/ precise/main liblua5.1-0 i386 5.1.4-12ubuntu1 [178 kB] Get:13 http://ftpmaster.internal/ubuntu/ precise/universe liblua5.1-lpeg2 i386 0.10.2-2 [25.9 kB] Get:14 http://ftpmaster.internal/ubuntu/ precise/universe libluajit-5.1-common all 2.0.0~beta9+dfsg-1 [35.4 kB] Get:15 http://ftpmaster.internal/ubuntu/ precise/universe libluajit-5.1-2 i386 2.0.0~beta9+dfsg-1 [221 kB] Get:16 http://ftpmaster.internal/ubuntu/ precise/universe libluajit-5.1-dev i386 2.0.0~beta9+dfsg-1 [234 kB] Get:17 http://ftpmaster.internal/ubuntu/ precise/main lua5.1 i386 5.1.4-12ubuntu1 [147 kB] Get:18 http://ftpmaster.internal/ubuntu/ precise/universe luajit i386 2.0.0~beta9+dfsg-1 [217 kB] Get:19 http://ftpmaster.internal/ubuntu/ precise-security/main libmagic1 i386 5.09-2ubuntu0.4 [220 kB] Get:20 http://ftpmaster.internal/ubuntu/ precise-security/main file i386 5.09-2ubuntu0.4 [19.4 kB] Get:21 http://ftpmaster.internal/ubuntu/ precise/main bsdmainutils i386 8.2.3ubuntu1 [194 kB] Get:22 http://ftpmaster.internal/ubuntu/ precise/main gettext-base i386 0.18.1.1-5ubuntu3 [58.2 kB] Get:23 http://ftpmaster.internal/ubuntu/ precise/main groff-base i386 1.21-7 [1024 kB] Get:24 http://ftpmaster.internal/ubuntu/ precise-updates/main man-db i386 2.6.1-2ubuntu1 [742 kB] Get:25 http://ftpmaster.internal/ubuntu/ precise-updates/main wget i386 1.13.4-2ubuntu1.1 [280 kB] Get:26 http://ftpmaster.internal/ubuntu/ precise/main m4 i386 1.4.16-2ubuntu1 [195 kB] Get:27 http://ftpmaster.internal/ubuntu/ precise/main autoconf all 2.68-1ubuntu2 [560 kB] Get:28 http://ftpmaster.internal/ubuntu/ precise/main autotools-dev all 20120210.1ubuntu1 [42.4 kB] Get:29 http://ftpmaster.internal/ubuntu/ precise/main automake all 1:1.11.3-1ubuntu2 [571 kB] Get:30 http://ftpmaster.internal/ubuntu/ precise-security/main libxmlrpc-core-c3 i386 1.16.33-3.1ubuntu5.1 [179 kB] Get:31 http://ftpmaster.internal/ubuntu/ precise/main emacsen-common all 1.4.22ubuntu1 [16.9 kB] Get:32 http://ftpmaster.internal/ubuntu/ precise-updates/main cmake-data all 2.8.7-0ubuntu5 [754 kB] Get:33 http://ftpmaster.internal/ubuntu/ precise-updates/main cmake i386 2.8.7-0ubuntu5 [4399 kB] Get:34 http://ftpmaster.internal/ubuntu/ precise/main html2text i386 1.3.2a-15 [101 kB] Get:35 http://ftpmaster.internal/ubuntu/ precise/main gettext i386 0.18.1.1-5ubuntu3 [1122 kB] Get:36 http://ftpmaster.internal/ubuntu/ precise/main intltool-debian all 0.35.0+20060710.1 [31.6 kB] Get:37 http://ftpmaster.internal/ubuntu/ precise/main po-debconf all 1.0.16+nmu2ubuntu1 [210 kB] Get:38 http://ftpmaster.internal/ubuntu/ precise-updates/main dh-apparmor all 2.7.102-0ubuntu3.9 [8950 B] Get:39 http://ftpmaster.internal/ubuntu/ precise/main debhelper all 9.20120115ubuntu3 [616 kB] Get:40 http://ftpmaster.internal/ubuntu/ precise/main libtinfo-dev i386 5.9-4 [93.5 kB] Get:41 http://ftpmaster.internal/ubuntu/ precise/main libreadline6-dev i386 6.2-8 [249 kB] Get:42 http://ftpmaster.internal/ubuntu/ precise/main libreadline-dev i386 6.2-8 [932 B] Get:43 http://ftpmaster.internal/ubuntu/ precise/main liblua5.1-0-dev i386 5.1.4-12ubuntu1 [212 kB] Get:44 http://ftpmaster.internal/ubuntu/ precise/main libncurses5-dev i386 5.9-4 [218 kB] Get:45 http://ftpmaster.internal/ubuntu/ precise/main libtool i386 2.4.2-1ubuntu1 [302 kB] Get:46 http://ftpmaster.internal/ubuntu/ precise/main zip i386 3.0-4 [256 kB] Get:47 http://ftpmaster.internal/ubuntu/ precise/universe luarocks all 2.0.8-2 [106 kB] Get:48 http://ftpmaster.internal/ubuntu/ precise/main pkg-config i386 0.26-1ubuntu1 [40.3 kB] Get:49 http://ftpmaster.internal/ubuntu/ precise/universe libmsgpack3 i386 0.5.4-2 [13.5 kB] Get:50 http://ftpmaster.internal/ubuntu/ precise/universe libmsgpackc2 i386 0.5.4-2 [12.4 kB] Get:51 http://ftpmaster.internal/ubuntu/ precise/universe libmsgpack-dev i386 0.5.4-2 [62.9 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 16.1 MB in 0s (18.1 MB/s) Selecting previously unselected package libpopt0. (Reading database ... 12298 files and directories currently installed.) Unpacking libpopt0 (from .../libpopt0_1.16-3ubuntu1_i386.deb) ... Selecting previously unselected package libpipeline1. Unpacking libpipeline1 (from .../libpipeline1_1.2.1-1_i386.deb) ... Selecting previously unselected package libxml2. Unpacking libxml2 (from .../libxml2_2.7.8.dfsg-5.1ubuntu4.9_i386.deb) ... Selecting previously unselected package libnettle4. Unpacking libnettle4 (from .../libnettle4_2.4-1_i386.deb) ... Selecting previously unselected package libarchive12. Unpacking libarchive12 (from .../libarchive12_3.0.3-6ubuntu1_i386.deb) ... Selecting previously unselected package libcroco3. Unpacking libcroco3 (from .../libcroco3_0.6.5-1ubuntu0.1_i386.deb) ... Selecting previously unselected package libcurl3. Unpacking libcurl3 (from .../libcurl3_7.22.0-3ubuntu4.8_i386.deb) ... Selecting previously unselected package libexpat1. Unpacking libexpat1 (from .../libexpat1_2.0.1-7.2ubuntu1.1_i386.deb) ... Selecting previously unselected package libunistring0. Unpacking libunistring0 (from .../libunistring0_0.9.3-5_i386.deb) ... Selecting previously unselected package libgettextpo0. Unpacking libgettextpo0 (from .../libgettextpo0_0.18.1.1-5ubuntu3_i386.deb) ... Selecting previously unselected package liblua5.1-0. Unpacking liblua5.1-0 (from .../liblua5.1-0_5.1.4-12ubuntu1_i386.deb) ... Selecting previously unselected package liblua5.1-lpeg2. Unpacking liblua5.1-lpeg2 (from .../liblua5.1-lpeg2_0.10.2-2_i386.deb) ... Selecting previously unselected package libluajit-5.1-common. Unpacking libluajit-5.1-common (from .../libluajit-5.1-common_2.0.0~beta9+dfsg-1_all.deb) ... Selecting previously unselected package libluajit-5.1-2. Unpacking libluajit-5.1-2 (from .../libluajit-5.1-2_2.0.0~beta9+dfsg-1_i386.deb) ... Selecting previously unselected package libluajit-5.1-dev. Unpacking libluajit-5.1-dev (from .../libluajit-5.1-dev_2.0.0~beta9+dfsg-1_i386.deb) ... Selecting previously unselected package lua5.1. Unpacking lua5.1 (from .../lua5.1_5.1.4-12ubuntu1_i386.deb) ... Selecting previously unselected package lua-cmsgpack. Unpacking lua-cmsgpack (from .../lua-cmsgpack_0.3-2+5~ubuntu12.04.1_i386.deb) ... Selecting previously unselected package luajit. Unpacking luajit (from .../luajit_2.0.0~beta9+dfsg-1_i386.deb) ... Selecting previously unselected package libmagic1. Unpacking libmagic1 (from .../libmagic1_5.09-2ubuntu0.4_i386.deb) ... Selecting previously unselected package file. Unpacking file (from .../file_5.09-2ubuntu0.4_i386.deb) ... Selecting previously unselected package bsdmainutils. Unpacking bsdmainutils (from .../bsdmainutils_8.2.3ubuntu1_i386.deb) ... Selecting previously unselected package gettext-base. Unpacking gettext-base (from .../gettext-base_0.18.1.1-5ubuntu3_i386.deb) ... Selecting previously unselected package groff-base. Unpacking groff-base (from .../groff-base_1.21-7_i386.deb) ... Selecting previously unselected package man-db. Unpacking man-db (from .../man-db_2.6.1-2ubuntu1_i386.deb) ... Selecting previously unselected package wget. Unpacking wget (from .../wget_1.13.4-2ubuntu1.1_i386.deb) ... Selecting previously unselected package m4. Unpacking m4 (from .../m4_1.4.16-2ubuntu1_i386.deb) ... Selecting previously unselected package autoconf. Unpacking autoconf (from .../autoconf_2.68-1ubuntu2_all.deb) ... Selecting previously unselected package autotools-dev. Unpacking autotools-dev (from .../autotools-dev_20120210.1ubuntu1_all.deb) ... Selecting previously unselected package automake. Unpacking automake (from .../automake_1%3a1.11.3-1ubuntu2_all.deb) ... Selecting previously unselected package libxmlrpc-core-c3. Unpacking libxmlrpc-core-c3 (from .../libxmlrpc-core-c3_1.16.33-3.1ubuntu5.1_i386.deb) ... Selecting previously unselected package emacsen-common. Unpacking emacsen-common (from .../emacsen-common_1.4.22ubuntu1_all.deb) ... Selecting previously unselected package cmake-data. Unpacking cmake-data (from .../cmake-data_2.8.7-0ubuntu5_all.deb) ... Selecting previously unselected package cmake. Unpacking cmake (from .../cmake_2.8.7-0ubuntu5_i386.deb) ... Selecting previously unselected package html2text. Unpacking html2text (from .../html2text_1.3.2a-15_i386.deb) ... Selecting previously unselected package gettext. Unpacking gettext (from .../gettext_0.18.1.1-5ubuntu3_i386.deb) ... Selecting previously unselected package intltool-debian. Unpacking intltool-debian (from .../intltool-debian_0.35.0+20060710.1_all.deb) ... Selecting previously unselected package po-debconf. Unpacking po-debconf (from .../po-debconf_1.0.16+nmu2ubuntu1_all.deb) ... Selecting previously unselected package dh-apparmor. Unpacking dh-apparmor (from .../dh-apparmor_2.7.102-0ubuntu3.9_all.deb) ... Selecting previously unselected package debhelper. Unpacking debhelper (from .../debhelper_9.20120115ubuntu3_all.deb) ... Selecting previously unselected package libtinfo-dev. Unpacking libtinfo-dev (from .../libtinfo-dev_5.9-4_i386.deb) ... Selecting previously unselected package libreadline6-dev. Unpacking libreadline6-dev (from .../libreadline6-dev_6.2-8_i386.deb) ... Selecting previously unselected package libreadline-dev. Unpacking libreadline-dev (from .../libreadline-dev_6.2-8_i386.deb) ... Selecting previously unselected package liblua5.1-0-dev. Unpacking liblua5.1-0-dev (from .../liblua5.1-0-dev_5.1.4-12ubuntu1_i386.deb) ... Selecting previously unselected package libncurses5-dev. Unpacking libncurses5-dev (from .../libncurses5-dev_5.9-4_i386.deb) ... Selecting previously unselected package libtool. Unpacking libtool (from .../libtool_2.4.2-1ubuntu1_i386.deb) ... Selecting previously unselected package zip. Unpacking zip (from .../archives/zip_3.0-4_i386.deb) ... Selecting previously unselected package luarocks. Unpacking luarocks (from .../luarocks_2.0.8-2_all.deb) ... Selecting previously unselected package pkg-config. Unpacking pkg-config (from .../pkg-config_0.26-1ubuntu1_i386.deb) ... Selecting previously unselected package libmsgpack3. Unpacking libmsgpack3 (from .../libmsgpack3_0.5.4-2_i386.deb) ... Selecting previously unselected package libmsgpackc2. Unpacking libmsgpackc2 (from .../libmsgpackc2_0.5.4-2_i386.deb) ... Selecting previously unselected package libmsgpack-dev. Unpacking libmsgpack-dev (from .../libmsgpack-dev_0.5.4-2_i386.deb) ... Setting up libpopt0 (1.16-3ubuntu1) ... Setting up libpipeline1 (1.2.1-1) ... Setting up libxml2 (2.7.8.dfsg-5.1ubuntu4.9) ... Setting up libnettle4 (2.4-1) ... Setting up libarchive12 (3.0.3-6ubuntu1) ... Setting up libcroco3 (0.6.5-1ubuntu0.1) ... Setting up libcurl3 (7.22.0-3ubuntu4.8) ... Setting up libexpat1 (2.0.1-7.2ubuntu1.1) ... Setting up libunistring0 (0.9.3-5) ... Setting up libgettextpo0 (0.18.1.1-5ubuntu3) ... Setting up liblua5.1-0 (5.1.4-12ubuntu1) ... Setting up liblua5.1-lpeg2 (0.10.2-2) ... Setting up libluajit-5.1-common (2.0.0~beta9+dfsg-1) ... Setting up libluajit-5.1-2 (2.0.0~beta9+dfsg-1) ... Setting up libluajit-5.1-dev (2.0.0~beta9+dfsg-1) ... Setting up lua5.1 (5.1.4-12ubuntu1) ... update-alternatives: using /usr/bin/lua5.1 to provide /usr/bin/lua (lua-interpreter) in auto mode. update-alternatives: using /usr/bin/luac5.1 to provide /usr/bin/luac (lua-compiler) in auto mode. Setting up lua-cmsgpack (0.3-2+5~ubuntu12.04.1) ... Setting up luajit (2.0.0~beta9+dfsg-1) ... Setting up libmagic1 (5.09-2ubuntu0.4) ... Setting up file (5.09-2ubuntu0.4) ... Setting up bsdmainutils (8.2.3ubuntu1) ... update-alternatives: using /usr/bin/bsd-write to provide /usr/bin/write (write) in auto mode. update-alternatives: using /usr/bin/bsd-from to provide /usr/bin/from (from) in auto mode. Setting up gettext-base (0.18.1.1-5ubuntu3) ... Setting up groff-base (1.21-7) ... Setting up man-db (2.6.1-2ubuntu1) ... Building database of manual pages ... Setting up wget (1.13.4-2ubuntu1.1) ... Setting up m4 (1.4.16-2ubuntu1) ... Setting up autoconf (2.68-1ubuntu2) ... Setting up autotools-dev (20120210.1ubuntu1) ... Setting up automake (1:1.11.3-1ubuntu2) ... update-alternatives: using /usr/bin/automake-1.11 to provide /usr/bin/automake (automake) in auto mode. Setting up libxmlrpc-core-c3 (1.16.33-3.1ubuntu5.1) ... Setting up emacsen-common (1.4.22ubuntu1) ... emacsen-common: Handling install of emacsen flavor emacs Setting up cmake-data (2.8.7-0ubuntu5) ... emacsen-common: Handling install of emacsen flavor emacs Setting up cmake (2.8.7-0ubuntu5) ... Setting up html2text (1.3.2a-15) ... Setting up gettext (0.18.1.1-5ubuntu3) ... Setting up intltool-debian (0.35.0+20060710.1) ... Setting up po-debconf (1.0.16+nmu2ubuntu1) ... Setting up dh-apparmor (2.7.102-0ubuntu3.9) ... Setting up debhelper (9.20120115ubuntu3) ... Setting up libtinfo-dev (5.9-4) ... Setting up libreadline6-dev (6.2-8) ... Setting up libreadline-dev (6.2-8) ... Setting up liblua5.1-0-dev (5.1.4-12ubuntu1) ... Setting up libncurses5-dev (5.9-4) ... Setting up libtool (2.4.2-1ubuntu1) ... Setting up zip (3.0-4) ... Setting up luarocks (2.0.8-2) ... Making manifest for /usr/local/lib/luarocks/rocks Generating index.html for /usr/local/lib/luarocks/rocks Setting up pkg-config (0.26-1ubuntu1) ... Setting up libmsgpack3 (0.5.4-2) ... Setting up libmsgpackc2 (0.5.4-2) ... Setting up libmsgpack-dev (0.5.4-2) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place Checking correctness of source dependencies... Toolchain package versions: libc6-dev_2.15-0ubuntu10.5 make_3.81-8.1ubuntu1.1 dpkg-dev_1.16.1.2ubuntu7.5 gcc-4.6_4.6.3-1ubuntu5 g++-4.6_4.6.3-1ubuntu5 binutils_2.22-6ubuntu1.1 libstdc++6-4.6-dev_4.6.3-1ubuntu5 libstdc++6_4.6.3-1ubuntu5 ------------------------------------------------------------------------------ dpkg-source: warning: -sn is not a valid option for Dpkg::Source::Package::V3::native dpkg-source: warning: extracting unsigned source package (neovim_0.0.0+897+201407272017~ubuntu12.04.1.dsc) dpkg-source: info: extracting neovim in neovim-0.0.0+897+201407272017~ubuntu12.04.1 dpkg-source: info: unpacking neovim_0.0.0+897+201407272017~ubuntu12.04.1.tar.gz dpkg-buildpackage: source package neovim dpkg-buildpackage: source version 0.0.0+897+201407272017~ubuntu12.04.1 dpkg-source --before-build neovim-0.0.0+897+201407272017~ubuntu12.04.1 dpkg-buildpackage: host architecture i386 /usr/bin/fakeroot debian/rules clean dh clean dh_testdir dh_auto_clean make[1]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1' test -d build && make -C build clean || true make -C src/nvim/testdir clean make[2]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/testdir' rm -rf *.out \ *.failed \ *.rej \ *.orig \ test.log \ test.out X* viminfo \ tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok \ valgrind.* \ .*.swp \ .*.swo make[2]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/testdir' rm -rf build make[1]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1' dh_clean debian/rules build dh build dh_testdir dh_auto_configure debian/rules override_dh_auto_build make[1]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1' mv deps .deps dh_auto_build -a make[2]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1' mkdir -p .deps/build/third-party cd .deps/build/third-party && \ cmake -G 'Unix Makefiles' \ ../../../third-party -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Found GNU Make at /usr/bin/make -- Configuring done -- Generating done -- Build files have been written to: /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party mkdir -p build touch build/.ran-third-party-cmake make -C .deps/build/third-party make[3]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[4]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[5]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' Scanning dependencies of target libuv make[5]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[5]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' [ 12%] Creating directories for 'libuv' [ 25%] No download step for 'libuv' [ 37%] No patch step for 'libuv' [ 50%] No update step for 'libuv' [ 62%] Performing configure step for 'libuv' + libtoolize libtoolize: putting auxiliary files in `.'. libtoolize: linking file `./ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. libtoolize: linking file `m4/libtool.m4' libtoolize: linking file `m4/ltoptions.m4' libtoolize: linking file `m4/ltsugar.m4' libtoolize: linking file `m4/ltversion.m4' libtoolize: linking file `m4/lt~obsolete.m4' + aclocal -I m4 + autoconf + automake --add-missing --copy configure.ac:27: installing `./ar-lib' configure.ac:25: installing `./compile' configure.ac:21: installing `./config.guess' configure.ac:21: installing `./config.sub' configure.ac:20: installing `./install-sh' configure.ac:20: installing `./missing' Makefile.am: installing `./depcomp' checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking for gcc... /usr/bin/gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether /usr/bin/gcc accepts -g... yes checking for /usr/bin/gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of /usr/bin/gcc... gcc3 checking whether /usr/bin/gcc and cc understand -c and -o together... yes checking for ar... ar checking the archiver (ar) interface... ar checking whether make supports nested variables... yes checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by /usr/bin/gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 805306365 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert i686-pc-linux-gnu file names to i686-pc-linux-gnu format... func_convert_file_noop checking how to convert i686-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from /usr/bin/gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... /usr/bin/gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if /usr/bin/gcc supports -fno-rtti -fno-exceptions... no checking for /usr/bin/gcc option to produce PIC... -fPIC -DPIC checking if /usr/bin/gcc PIC flag -fPIC -DPIC works... yes checking if /usr/bin/gcc static flag -static works... yes checking if /usr/bin/gcc supports -c -o file.o... yes checking if /usr/bin/gcc supports -c -o file.o... (cached) yes checking whether the /usr/bin/gcc linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... no checking whether to build static libraries... yes checking for dlopen in -ldl... yes checking for kstat_lookup in -lkstat... no checking for kvm_open in -lkvm... no checking for gethostbyname in -lnsl... yes checking for perfstat_cpu in -lperfstat... no checking for pthread_mutex_init in -lpthread... yes checking for clock_gettime in -lrt... yes checking for sendfile in -lsendfile... no checking for socket in -lsocket... no checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... 64 checking for dtrace... no checking for pkg-config... yes configure: creating ./config.status config.status: creating libuv.pc config.status: creating Makefile config.status: executing depfiles commands config.status: executing libtool commands [ 75%] Performing build step for 'libuv' make[6]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv-build' make[7]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv-build' CC src/libuv_la-fs-poll.lo CC src/libuv_la-inet.lo CC src/libuv_la-uv-common.lo CC src/libuv_la-version.lo CC src/unix/libuv_la-async.lo CC src/unix/libuv_la-core.lo CC src/unix/libuv_la-dl.lo CC src/unix/libuv_la-fs.lo CC src/unix/libuv_la-getaddrinfo.lo CC src/unix/libuv_la-getnameinfo.lo CC src/unix/libuv_la-loop-watcher.lo CC src/unix/libuv_la-loop.lo CC src/unix/libuv_la-pipe.lo CC src/unix/libuv_la-poll.lo CC src/unix/libuv_la-process.lo CC src/unix/libuv_la-signal.lo CC src/unix/libuv_la-stream.lo CC src/unix/libuv_la-tcp.lo CC src/unix/libuv_la-thread.lo CC src/unix/libuv_la-threadpool.lo CC src/unix/libuv_la-timer.lo CC src/unix/libuv_la-tty.lo CC src/unix/libuv_la-udp.lo CC src/unix/libuv_la-linux-core.lo CC src/unix/libuv_la-linux-inotify.lo CC src/unix/libuv_la-linux-syscalls.lo CC src/unix/libuv_la-proctitle.lo CCLD libuv.la make[7]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv-build' make[6]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv-build' [ 87%] Performing install step for 'libuv' make[6]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv-build' make[7]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv-build' make[8]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv-build' /bin/bash ./libtool --mode=install /usr/bin/install -c libuv.la '/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/usr/lib' libtool: install: /usr/bin/install -c .libs/libuv.lai /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/usr/lib/libuv.la libtool: install: /usr/bin/install -c .libs/libuv.a /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/usr/lib/libuv.a libtool: install: chmod 644 /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/usr/lib/libuv.a libtool: install: ranlib /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/usr/lib/libuv.a libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/games:/sbin" ldconfig -n /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/usr/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/usr/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- /usr/bin/install -c -m 644 /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv/include/uv.h /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv/include/uv-errno.h /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv/include/uv-version.h /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv/include/uv-unix.h /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv/include/uv-linux.h '/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/usr/include' /usr/bin/install -c -m 644 libuv.pc '/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/usr/lib/pkgconfig' make[8]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv-build' make[7]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv-build' make[6]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/src/libuv-build' [100%] Completed 'libuv' make[5]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' [100%] Built target libuv make[5]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' Scanning dependencies of target third-party make[5]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[5]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[5]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' [100%] Built target third-party make[4]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[3]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' cd build && cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=deb -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_CXX_FLAGS_DEB:STRING='-DNDEBUG -Os -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1' -DCMAKE_C_FLAGS_DEB:STRING='-DNDEBUG -Os -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1' .. -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Looking for dlopen in dl -- Looking for dlopen in dl - found -- Looking for kstat_lookup in kstat -- Looking for kstat_lookup in kstat - not found -- Looking for kvm_open in kvm -- Looking for kvm_open in kvm - not found -- Looking for gethostbyname in nsl -- Looking for gethostbyname in nsl - found -- Looking for perfstat_cpu in perfstat -- Looking for perfstat_cpu in perfstat - not found -- Looking for clock_gettime in rt -- Looking for clock_gettime in rt - found -- Looking for sendfile in sendfile -- Looking for sendfile in sendfile - not found -- Found LibUV: /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/usr/lib/libuv.a -- Found Msgpack: /usr/lib/libmsgpackc.so -- Found LuaJit: /usr/lib/i386-linux-gnu/libluajit-5.1.so -- Performing Test HAVE_WORKING_LIBINTL -- Performing Test HAVE_WORKING_LIBINTL - Success -- Looking for _nl_msg_cat_cntr -- Looking for _nl_msg_cat_cntr - found -- Looking for include files CMAKE_HAVE_PTHREAD_H -- Looking for include files CMAKE_HAVE_PTHREAD_H - found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Checking Lua interpreter /usr/bin/lua -- Using the Lua interpreter /usr/bin/lua -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for stdint.h -- Looking for stdint.h - found -- Looking for stddef.h -- Looking for stddef.h - found -- Check size of int -- Check size of int - done -- Check size of long -- Check size of long - done -- Check size of time_t -- Check size of time_t - done -- Check size of off_t -- Check size of off_t - done -- Check size of void * -- Check size of void * - done -- Looking for _NSGetEnviron -- Looking for _NSGetEnviron - not found. -- Looking for include files HAVE_DIRENT_H -- Looking for include files HAVE_DIRENT_H - found -- Looking for include files HAVE_FCNTL_H -- Looking for include files HAVE_FCNTL_H - found -- Looking for include files HAVE_ICONV_H -- Looking for include files HAVE_ICONV_H - found -- Looking for include files HAVE_LANGINFO_H -- Looking for include files HAVE_LANGINFO_H - found -- Looking for include files HAVE_LIBGEN_H -- Looking for include files HAVE_LIBGEN_H - found -- Looking for include files HAVE_LOCALE_H -- Looking for include files HAVE_LOCALE_H - found -- Looking for include files HAVE_PWD_H -- Looking for include files HAVE_PWD_H - found -- Looking for include files HAVE_STRINGS_H -- Looking for include files HAVE_STRINGS_H - found -- Looking for include files HAVE_STROPTS_H -- Looking for include files HAVE_STROPTS_H - found -- Looking for include files HAVE_SYS_IOCTL_H -- Looking for include files HAVE_SYS_IOCTL_H - found -- Looking for include files HAVE_SYS_PARAM_H -- Looking for include files HAVE_SYS_PARAM_H - found -- Looking for include files HAVE_SYS_TIME_H -- Looking for include files HAVE_SYS_TIME_H - found -- Looking for include files HAVE_SYS_WAIT_H -- Looking for include files HAVE_SYS_WAIT_H - found -- Looking for include files HAVE_SYS_UTSNAME_H -- Looking for include files HAVE_SYS_UTSNAME_H - found -- Looking for include files HAVE_UTIME_H -- Looking for include files HAVE_UTIME_H - found -- Looking for include files HAVE_TERMCAP_H -- Looking for include files HAVE_TERMCAP_H - found -- Looking for include files HAVE_TERMIOS_H -- Looking for include files HAVE_TERMIOS_H - found -- Looking for include files HAVE_TERMIO_H -- Looking for include files HAVE_TERMIO_H - found -- Looking for include files HAVE_UNISTD_H -- Looking for include files HAVE_UNISTD_H - found -- Looking for fchown -- Looking for fchown - found -- Looking for fseeko -- Looking for fseeko - found -- Looking for fsync -- Looking for fsync - found -- Looking for getpwent -- Looking for getpwent - found -- Looking for getpwnam -- Looking for getpwnam - found -- Looking for getpwuid -- Looking for getpwuid - found -- Looking for iconv -- Looking for iconv - found -- Looking for lstat -- Looking for lstat - found -- Looking for putenv -- Looking for putenv - found -- Looking for opendir -- Looking for opendir - found -- Looking for readlink -- Looking for readlink - found -- Looking for setenv -- Looking for setenv - found -- Looking for setpgid -- Looking for setpgid - found -- Looking for setsid -- Looking for setsid - found -- Looking for sigaction -- Looking for sigaction - found -- Looking for sigvec -- Looking for sigvec - found -- Looking for strcasecmp -- Looking for strcasecmp - found -- Looking for strncasecmp -- Looking for strncasecmp - found -- Looking for utime -- Looking for utime - found -- Looking for utimes -- Looking for utimes - found -- Looking for FD_CLOEXEC -- Looking for FD_CLOEXEC - found -- Looking for CODESET -- Looking for CODESET - found -- Looking for tgetent in curses -- Looking for tgetent in curses - found -- Found Gettext: /usr/bin/msgmerge -- Found GNU Make at /usr/bin/make -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project: CMAKE_CXX_FLAGS_DEB -- Build files have been written to: /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build touch build/.ran-cmake make -C build make[3]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[4]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[5]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' [ 0%] Generating auto/api/window.c.generated.h, ../../include/api/window.h.generated.h [ 0%] Generating auto/api/vim.c.generated.h, ../../include/api/vim.h.generated.h [ 2%] Generating auto/api/tabpage.c.generated.h, ../../include/api/tabpage.h.generated.h [ 2%] Generating auto/api/buffer.c.generated.h, ../../include/api/buffer.h.generated.h [ 2%] Generating auto/msgpack_dispatch.c [ 2%] Generating auto/cursor_shape.c.generated.h, ../../include/cursor_shape.h.generated.h [ 2%] Generating auto/ex_docmd.c.generated.h, ../../include/ex_docmd.h.generated.h [ 2%] Generating auto/window.c.generated.h, ../../include/window.h.generated.h [ 4%] Generating auto/mark.c.generated.h, ../../include/mark.h.generated.h [ 4%] Generating auto/screen.c.generated.h, ../../include/screen.h.generated.h [ 4%] Generating auto/quickfix.c.generated.h, ../../include/quickfix.h.generated.h [ 4%] Generating auto/term.c.generated.h, ../../include/term.h.generated.h [ 4%] Generating auto/move.c.generated.h, ../../include/move.h.generated.h [ 6%] Generating auto/if_cscope.c.generated.h, ../../include/if_cscope.h.generated.h [ 6%] Generating auto/version.c.generated.h, ../../include/version.h.generated.h [ 6%] Generating auto/regexp.c.generated.h, ../../include/regexp.h.generated.h [ 6%] Generating auto/os_unix.c.generated.h, ../../include/os_unix.h.generated.h [ 6%] Generating auto/ex_cmds.c.generated.h, ../../include/ex_cmds.h.generated.h [ 9%] Generating auto/sha256.c.generated.h, ../../include/sha256.h.generated.h [ 9%] Generating auto/syntax.c.generated.h, ../../include/syntax.h.generated.h [ 9%] Generating auto/edit.c.generated.h, ../../include/edit.h.generated.h [ 9%] Generating auto/eval.c.generated.h, ../../include/eval.h.generated.h [ 11%] Generating auto/spell.c.generated.h, ../../include/spell.h.generated.h [ 11%] Generating auto/search.c.generated.h, ../../include/search.h.generated.h [ 11%] Generating auto/indent_c.c.generated.h, ../../include/indent_c.h.generated.h [ 11%] Generating auto/file_search.c.generated.h, ../../include/file_search.h.generated.h [ 11%] Generating auto/log.c.generated.h, ../../include/log.h.generated.h [ 13%] Generating auto/indent.c.generated.h, ../../include/indent.h.generated.h [ 13%] Generating auto/message.c.generated.h, ../../include/message.h.generated.h [ 13%] Generating auto/digraph.c.generated.h, ../../include/digraph.h.generated.h [ 13%] Generating auto/diff.c.generated.h, ../../include/diff.h.generated.h [ 13%] Generating auto/misc2.c.generated.h, ../../include/misc2.h.generated.h [ 15%] Generating auto/arabic.c.generated.h, ../../include/arabic.h.generated.h [ 15%] Generating auto/ex_getln.c.generated.h, ../../include/ex_getln.h.generated.h [ 15%] Generating auto/tempfile.c.generated.h, ../../include/tempfile.h.generated.h [ 15%] Generating auto/main.c.generated.h, ../../include/main.h.generated.h [ 15%] Generating auto/option.c.generated.h, ../../include/option.h.generated.h [ 18%] Generating auto/menu.c.generated.h, ../../include/menu.h.generated.h [ 18%] Generating auto/popupmnu.c.generated.h, ../../include/popupmnu.h.generated.h [ 18%] Generating auto/normal.c.generated.h, ../../include/normal.h.generated.h [ 18%] Generating auto/keymap.c.generated.h, ../../include/keymap.h.generated.h [ 18%] Generating auto/fold.c.generated.h, ../../include/fold.h.generated.h [ 20%] Generating auto/cursor.c.generated.h, ../../include/cursor.h.generated.h [ 20%] Generating auto/misc1.c.generated.h, ../../include/misc1.h.generated.h [ 20%] Generating auto/mbyte.c.generated.h, ../../include/mbyte.h.generated.h [ 20%] Generating auto/garray.c.generated.h, ../../include/garray.h.generated.h [ 20%] Generating auto/fileio.c.generated.h, ../../include/fileio.h.generated.h [ 22%] Generating auto/hashtab.c.generated.h, ../../include/hashtab.h.generated.h [ 22%] Generating auto/getchar.c.generated.h, ../../include/getchar.h.generated.h [ 22%] Generating auto/memline.c.generated.h, ../../include/memline.h.generated.h [ 22%] Generating auto/undo.c.generated.h, ../../include/undo.h.generated.h [ 22%] Generating auto/ops.c.generated.h, ../../include/ops.h.generated.h [ 25%] Generating auto/map.c.generated.h, ../../include/map.h.generated.h [ 25%] Generating auto/hardcopy.c.generated.h, ../../include/hardcopy.h.generated.h [ 25%] Generating auto/farsi.c.generated.h, ../../include/farsi.h.generated.h [ 25%] Generating auto/buffer.c.generated.h, ../../include/buffer.h.generated.h [ 25%] Generating auto/path.c.generated.h, ../../include/path.h.generated.h [ 27%] Generating auto/strings.c.generated.h, ../../include/strings.h.generated.h [ 27%] Generating auto/tag.c.generated.h, ../../include/tag.h.generated.h [ 27%] Generating auto/memory.c.generated.h, ../../include/memory.h.generated.h [ 27%] Generating auto/ui.c.generated.h, ../../include/ui.h.generated.h [ 27%] Generating auto/ex_cmds2.c.generated.h, ../../include/ex_cmds2.h.generated.h [ 29%] Generating auto/ex_eval.c.generated.h, ../../include/ex_eval.h.generated.h [ 29%] Generating auto/charset.c.generated.h, ../../include/charset.h.generated.h [ 29%] Generating auto/profile.c.generated.h, ../../include/profile.h.generated.h [ 29%] Generating auto/memfile.c.generated.h, ../../include/memfile.h.generated.h [ 29%] Generating auto/os/dl.c.generated.h, ../../include/os/dl.h.generated.h [ 31%] Generating auto/os/server.c.generated.h, ../../include/os/server.h.generated.h [ 31%] Generating auto/os/users.c.generated.h, ../../include/os/users.h.generated.h [ 31%] Generating auto/os/shell.c.generated.h, ../../include/os/shell.h.generated.h [ 31%] Generating auto/os/channel.c.generated.h, ../../include/os/channel.h.generated.h [ 31%] Generating auto/os/event.c.generated.h, ../../include/os/event.h.generated.h [ 34%] Generating auto/os/msgpack_rpc.c.generated.h, ../../include/os/msgpack_rpc.h.generated.h [ 34%] Generating auto/os/mem.c.generated.h, ../../include/os/mem.h.generated.h [ 34%] Generating auto/os/wstream.c.generated.h, ../../include/os/wstream.h.generated.h [ 34%] Generating auto/os/rstream.c.generated.h, ../../include/os/rstream.h.generated.h [ 34%] Generating auto/os/msgpack_rpc_helpers.c.generated.h, ../../include/os/msgpack_rpc_helpers.h.generated.h [ 36%] Generating auto/os/uv_helpers.c.generated.h, ../../include/os/uv_helpers.h.generated.h [ 36%] Generating auto/os/fs.c.generated.h, ../../include/os/fs.h.generated.h [ 36%] Generating auto/os/job.c.generated.h, ../../include/os/job.h.generated.h [ 36%] Generating auto/os/input.c.generated.h, ../../include/os/input.h.generated.h [ 36%] Generating auto/os/signal.c.generated.h, ../../include/os/signal.h.generated.h [ 38%] Generating auto/os/env.c.generated.h, ../../include/os/env.h.generated.h [ 38%] Generating auto/os/provider.c.generated.h, ../../include/os/provider.h.generated.h [ 38%] Generating auto/os/time.c.generated.h, ../../include/os/time.h.generated.h [ 38%] Generating auto/api/private/helpers.c.generated.h, ../../include/api/private/helpers.h.generated.h [ 38%] Generating auto/api/private/handle.c.generated.h, ../../include/api/private/handle.h.generated.h [ 40%] Generating auto/regexp_nfa.c.generated.h, ../../include/regexp_nfa.h.generated.h Scanning dependencies of target nvim make[5]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[5]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' [ 40%] Building C object src/nvim/CMakeFiles/nvim.dir/__/__/config/auto/pathdef.c.o [ 40%] Building C object src/nvim/CMakeFiles/nvim.dir/auto/msgpack_dispatch.c.o [ 43%] Building C object src/nvim/CMakeFiles/nvim.dir/cursor_shape.c.o [ 43%] Building C object src/nvim/CMakeFiles/nvim.dir/ex_docmd.c.o [ 43%] Building C object src/nvim/CMakeFiles/nvim.dir/window.c.o [ 43%] Building C object src/nvim/CMakeFiles/nvim.dir/mark.c.o [ 43%] Building C object src/nvim/CMakeFiles/nvim.dir/screen.c.o [ 45%] Building C object src/nvim/CMakeFiles/nvim.dir/quickfix.c.o [ 45%] Building C object src/nvim/CMakeFiles/nvim.dir/term.c.o [ 45%] Building C object src/nvim/CMakeFiles/nvim.dir/move.c.o [ 45%] Building C object src/nvim/CMakeFiles/nvim.dir/if_cscope.c.o [ 45%] Building C object src/nvim/CMakeFiles/nvim.dir/version.c.o [ 47%] Building C object src/nvim/CMakeFiles/nvim.dir/regexp.c.o [ 47%] Building C object src/nvim/CMakeFiles/nvim.dir/os_unix.c.o [ 47%] Building C object src/nvim/CMakeFiles/nvim.dir/ex_cmds.c.o /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/ex_cmds.c: In function 'write_viminfo': /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/ex_cmds.c:1615:15: warning: ignoring return value of 'fchown', declared with attribute warn_unused_result [-Wunused-result] [ 47%] Building C object src/nvim/CMakeFiles/nvim.dir/sha256.c.o [ 47%] Building C object src/nvim/CMakeFiles/nvim.dir/syntax.c.o /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/syntax.c: In function 'syn_regexec': /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/syntax.c:2868:8: warning: 'pt' may be used uninitialized in this function [-Wuninitialized] [ 50%] Building C object src/nvim/CMakeFiles/nvim.dir/edit.c.o [ 50%] Building C object src/nvim/CMakeFiles/nvim.dir/eval.c.o /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/eval.c: In function 'call_user_func': /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/eval.c:18111:16: warning: 'call_start' may be used uninitialized in this function [-Wuninitialized] [ 50%] Building C object src/nvim/CMakeFiles/nvim.dir/spell.c.o [ 50%] Building C object src/nvim/CMakeFiles/nvim.dir/search.c.o [ 50%] Building C object src/nvim/CMakeFiles/nvim.dir/indent_c.c.o [ 52%] Building C object src/nvim/CMakeFiles/nvim.dir/file_search.c.o [ 52%] Building C object src/nvim/CMakeFiles/nvim.dir/log.c.o [ 52%] Building C object src/nvim/CMakeFiles/nvim.dir/indent.c.o [ 52%] Building C object src/nvim/CMakeFiles/nvim.dir/message.c.o [ 52%] Building C object src/nvim/CMakeFiles/nvim.dir/digraph.c.o [ 54%] Building C object src/nvim/CMakeFiles/nvim.dir/diff.c.o [ 54%] Building C object src/nvim/CMakeFiles/nvim.dir/misc2.c.o [ 54%] Building C object src/nvim/CMakeFiles/nvim.dir/arabic.c.o [ 54%] Building C object src/nvim/CMakeFiles/nvim.dir/ex_getln.c.o [ 54%] Building C object src/nvim/CMakeFiles/nvim.dir/tempfile.c.o [ 56%] Building C object src/nvim/CMakeFiles/nvim.dir/main.c.o [ 56%] Building C object src/nvim/CMakeFiles/nvim.dir/option.c.o [ 56%] Building C object src/nvim/CMakeFiles/nvim.dir/menu.c.o [ 56%] Building C object src/nvim/CMakeFiles/nvim.dir/popupmnu.c.o [ 59%] Building C object src/nvim/CMakeFiles/nvim.dir/normal.c.o [ 59%] Building C object src/nvim/CMakeFiles/nvim.dir/keymap.c.o [ 59%] Building C object src/nvim/CMakeFiles/nvim.dir/fold.c.o [ 59%] Building C object src/nvim/CMakeFiles/nvim.dir/cursor.c.o [ 59%] Building C object src/nvim/CMakeFiles/nvim.dir/misc1.c.o [ 61%] Building C object src/nvim/CMakeFiles/nvim.dir/mbyte.c.o [ 61%] Building C object src/nvim/CMakeFiles/nvim.dir/garray.c.o [ 61%] Building C object src/nvim/CMakeFiles/nvim.dir/fileio.c.o /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/fileio.c: In function 'buf_write': /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/fileio.c:2748:17: warning: ignoring return value of 'fchown', declared with attribute warn_unused_result [-Wunused-result] /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/fileio.c:3435:13: warning: ignoring return value of 'fchown', declared with attribute warn_unused_result [-Wunused-result] [ 61%] Building C object src/nvim/CMakeFiles/nvim.dir/hashtab.c.o [ 61%] Building C object src/nvim/CMakeFiles/nvim.dir/getchar.c.o [ 63%] Building C object src/nvim/CMakeFiles/nvim.dir/memline.c.o [ 63%] Building C object src/nvim/CMakeFiles/nvim.dir/undo.c.o [ 63%] Building C object src/nvim/CMakeFiles/nvim.dir/ops.c.o [ 63%] Building C object src/nvim/CMakeFiles/nvim.dir/map.c.o [ 63%] Building C object src/nvim/CMakeFiles/nvim.dir/hardcopy.c.o [ 65%] Building C object src/nvim/CMakeFiles/nvim.dir/farsi.c.o [ 65%] Building C object src/nvim/CMakeFiles/nvim.dir/buffer.c.o [ 65%] Building C object src/nvim/CMakeFiles/nvim.dir/path.c.o [ 65%] Building C object src/nvim/CMakeFiles/nvim.dir/strings.c.o [ 65%] Building C object src/nvim/CMakeFiles/nvim.dir/tag.c.o [ 68%] Building C object src/nvim/CMakeFiles/nvim.dir/memory.c.o [ 68%] Building C object src/nvim/CMakeFiles/nvim.dir/ui.c.o [ 68%] Building C object src/nvim/CMakeFiles/nvim.dir/ex_cmds2.c.o [ 68%] Building C object src/nvim/CMakeFiles/nvim.dir/ex_eval.c.o [ 68%] Building C object src/nvim/CMakeFiles/nvim.dir/charset.c.o [ 70%] Building C object src/nvim/CMakeFiles/nvim.dir/profile.c.o [ 70%] Building C object src/nvim/CMakeFiles/nvim.dir/memfile.c.o [ 70%] Building C object src/nvim/CMakeFiles/nvim.dir/os/dl.c.o [ 70%] Building C object src/nvim/CMakeFiles/nvim.dir/os/server.c.o [ 70%] Building C object src/nvim/CMakeFiles/nvim.dir/os/users.c.o [ 72%] Building C object src/nvim/CMakeFiles/nvim.dir/os/shell.c.o [ 72%] Building C object src/nvim/CMakeFiles/nvim.dir/os/channel.c.o /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/os/channel.c: In function 'job_err': /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/os/channel.c:270:12: warning: unused variable 'channel' [-Wunused-variable] [ 72%] Building C object src/nvim/CMakeFiles/nvim.dir/os/event.c.o [ 72%] Building C object src/nvim/CMakeFiles/nvim.dir/os/msgpack_rpc.c.o [ 72%] Building C object src/nvim/CMakeFiles/nvim.dir/os/mem.c.o [ 75%] Building C object src/nvim/CMakeFiles/nvim.dir/os/wstream.c.o [ 75%] Building C object src/nvim/CMakeFiles/nvim.dir/os/rstream.c.o [ 75%] Building C object src/nvim/CMakeFiles/nvim.dir/os/msgpack_rpc_helpers.c.o [ 75%] Building C object src/nvim/CMakeFiles/nvim.dir/os/uv_helpers.c.o [ 75%] Building C object src/nvim/CMakeFiles/nvim.dir/os/fs.c.o [ 77%] Building C object src/nvim/CMakeFiles/nvim.dir/os/job.c.o [ 77%] Building C object src/nvim/CMakeFiles/nvim.dir/os/input.c.o [ 77%] Building C object src/nvim/CMakeFiles/nvim.dir/os/signal.c.o [ 77%] Building C object src/nvim/CMakeFiles/nvim.dir/os/env.c.o [ 77%] Building C object src/nvim/CMakeFiles/nvim.dir/os/provider.c.o [ 79%] Building C object src/nvim/CMakeFiles/nvim.dir/os/time.c.o [ 79%] Building C object src/nvim/CMakeFiles/nvim.dir/api/window.c.o [ 79%] Building C object src/nvim/CMakeFiles/nvim.dir/api/vim.c.o [ 79%] Building C object src/nvim/CMakeFiles/nvim.dir/api/tabpage.c.o [ 79%] Building C object src/nvim/CMakeFiles/nvim.dir/api/buffer.c.o [ 81%] Building C object src/nvim/CMakeFiles/nvim.dir/api/private/helpers.c.o [ 81%] Building C object src/nvim/CMakeFiles/nvim.dir/api/private/handle.c.o Linking C executable ../../bin/nvim make[5]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' [ 81%] Built target nvim make[5]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' Scanning dependencies of target sjiscorr make[5]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[5]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' [ 81%] Building C object src/nvim/po/CMakeFiles/sjiscorr.dir/sjiscorr.c.o Linking C executable ../../../bin/sjiscorr make[5]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' [ 81%] Built target sjiscorr make[5]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' Scanning dependencies of target translations make[5]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[5]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' [ 84%] Generating nvim.pot [ 84%] Generating ja.euc-jp.mo [ 84%] Generating cs.cp1250.mo [ 84%] Generating pl.cp1250.mo [ 86%] Generating pl.UTF-8.mo [ 86%] Generating sk.cp1250.mo [ 86%] Generating ru.cp1251.mo [ 86%] Generating uk.cp1251.mo [ 86%] Generating ko.mo [ 88%] Generating zh_CN.cp936.mo [ 88%] Generating nb.mo [ 88%] Generating ja.sjis.mo [ 88%] Generating af.mo [ 88%] Generating ca.mo [ 90%] Generating cs.mo [ 90%] Generating de.mo [ 90%] Generating en_GB.mo [ 90%] Generating eo.mo [ 90%] Generating es.mo [ 93%] Generating fi.mo [ 93%] Generating fr.mo [ 93%] Generating ga.mo [ 93%] Generating it.mo [ 93%] Generating ja.mo [ 95%] Generating ko.UTF-8.mo [ 95%] Generating nl.mo [ 95%] Generating no.mo [ 95%] Generating pl.mo [ 95%] Generating pt_BR.mo [ 97%] Generating ru.mo [ 97%] Generating sk.mo [ 97%] Generating sv.mo [ 97%] Generating uk.mo [100%] Generating vi.mo [100%] Generating zh_CN.mo [100%] Generating zh_CN.UTF-8.mo [100%] Generating zh_TW.mo [100%] Generating zh_TW.UTF-8.mo make[5]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' [100%] Built target translations make[4]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[3]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[2]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1' make[1]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1' dh_auto_test make[1]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1' make -C .deps/build/third-party make[2]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[3]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[4]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[4]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' [100%] Built target libuv make[4]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[4]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[4]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[4]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' [100%] Built target third-party make[3]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make[2]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/.deps/build/third-party' make -C build make[2]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[3]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[4]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[4]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' [ 81%] Built target nvim make[4]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[4]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' [ 81%] Built target sjiscorr make[4]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[4]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' [100%] Built target translations make[3]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' make[2]: Leaving directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/build' export MAKEFLAGS= ; make -C src/nvim/testdir make[2]: Entering directory `/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/testdir' rm -f test.log echo 'set $_exitcode = -1\nrun\nif $_exitcode != -1\n quit\nend' > .gdbinit rm -rf test1.failed test.out X* viminfo tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok wrongtermsize ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test1.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test1.in" 57 lines, 2069 charactersFirst a simple test to check if the test script works. If Vim was not compiled with the +eval feature, the small.vim script will be set to copy the test.ok file to test.out, so that it looks like the test succeeded. Otherwise an empty small.vim is written. small.vim is sourced by tests that require the +eval feature or other features that are missing in the small version. If Vim was not compiled with the +windows feature, the tiny.vim script will be set like small.vim above. tiny.vim is sourced by tests that require the +windows feature or other features that are missing in the tiny version. If Vim was not compiled with the +multi_byte feature, the mbyte.vim script will be set like small.vim above. mbyte.vim is sourced by tests that require the +multi_byte feature. Similar logic is applied to the +mzscheme feature, using mzscheme.vim. Similar logic is applied to the +lua feature, using lua.vim. STARTTEST :" If columns or lines are too small, create wrongtermsize. :" (Some tests will fail. When columns and/or lines are small) :if &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 35 lines, 1133 characters written:set ff& cpo+=A  /ENDTEST:w! mzscheme.vim :w! lua.vim :" :" If +multi_byte feature supported, make mbyte.vim empty. :if has("multi_byte") | sp another | w! mbyte.vim | q | endif :" :" If +mzscheme feature supported, make mzscheme.vim empty. :if has("mzscheme") | sp another | w! mzscheme.vim | q | endif :" :" If +lua feature supported, make lua.vim empty. :if has("lua") | sp another | w! lua.vim | q | endif :" :" If +eval feature supported quit here, leaving tiny.vim and small.vim empty. :" Otherwise write small.vim to skip the test. :if 1 | q! | endif :w! small.vim :" If +windows feature not supported :sp will fail and tiny.vim will be :" written to skip the test. :sp another :wq! tiny.vim :qa! ENDTEST :so! Xdotest :" If columns or lines are too small, create wrongtermsize. :" (Some tests will fail. When columns and/or lines are small) :if &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif :" :" Write a single line to test.out to check if testing works at all. :%d ~~~~~~~~~~~~~~~~~~~~~ ~ --No lines in buffer--this is a test:w! test.out "test.out" [New File] 1 line, 15 characters written:" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.  :w! small.vim "small.vim" [New File] 1 line, 1 character written:w! tiny.vim "tiny.vim" [New File] 1 line, 1 character writtene! test.ok w! test.out qa!:w! mbyte.vim "mbyte.vim" [New File] 4 lines, 28 characters written:w! mzscheme.vim "mzscheme.vim" [New File] 4 lines, 28 characters written:w! lua.vim "lua.vim" [New File] 4 lines, 28 characters written:" :" If +multi_byte feature supported, make mbyte.vim empty. :if has("multi_byte") | sp another | w! mbyte.vim | q | endif "another" [New File] "mbyte.vim" 0 lines, 0 characters writtene! test.ok:" :" If +mzscheme feature supported, make mzscheme.vim empty. :if has("mzscheme") | sp another | w! mzscheme.vim | q | endif :" :" If +lua feature supported, make lua.vim empty. :if has("lua") | sp another | w! lua.vim | q | endif :" :" If +eval feature supported quit here, leaving tiny.vim and small.vim empty. :" Otherwise write small.vim to skip the test. :if 1 | q! | endif rm -rf X* viminfo rm -rf test_autoformat_join.failed test.ok test.out X* viminfo cp test_autoformat_join.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test_autoformat_join.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test_autoformat_join.in" 23 lines, 524 charactersTests for setting the '[,'] marks when joining lines. STARTTEST :so small.vim :/^\t\t/ 0gqj^[ :let a=string(getpos("'[")).'/'.string(getpos("']")) :/^This line/;'}-join :let b=string(getpos("'[")).'/'.string(getpos("']")) :$put ='First test: Start/End '.string(a) :$put ='Second test: Start/End '.string(b) :/^\t\t/,$wq! test.out ENDTESTO sodales, ludite, vos qui attamen consulite per voster honur. Tua pulchra facies me fay planszer milies This line. Should be joined with the next line and with this line Results::set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for setting the '[,'] marks when joining lines./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 9 lines, 265 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :/^\t\t/ attamen consulite per voster honur. Tua pulchra facies me fay planszer milies :let a=string(getpos("'[")).'/'.string(getpos("']")) :/^This line/;'}-join This line. Should be joined with the next line and with this line~ ~:let b=string(getpos("'[")).'/'.string(getpos("']")) :$put ='First test: Start/End '.string(a) First test: Start/End '[0, 16, 1, 0]/[0, 17, 1, 0]' :$put ='Second test: Start/End '.string(b) Second test: Start/End '[0, 19, 11, 0]/[0, 19, 67, 0]' :/^\t\t/,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 8 lines, 292 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test_eval.failed test.ok test.out X* viminfo cp test_eval.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test_eval.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test_eval.in" 57 lines, 834 charactersSTARTTEST :e test.out :%d :" function name not starting with a capital :try : func! g:test() : echo "test" : endfunc :catch : $put =v:exception :endtry :" function name folowed by # :try : func! test2() "# : echo "test2" : endfunc :catch : $put =v:exception :endtry:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest STARTTEST/^STARTTEST search hit BOTTOM, continuing at TOP :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 54 lines, 815 characters written:set ff& cpo+=A /ENDTEST: $put ='called Foo(' . a:n . ')' :endfunction :let b:my_func = function('Foo') :call b:my_func(1) :echo g:Foo(2) :echo Foo(3) :" script-local function used in Funcref must exist. :so test_eval_func.vim :" using $ instead of '$' must give an error :try : call append($, 'foobar') :catch : $put =v:exception :endtry :1d :w :qa! ENDTEST :so! Xdotest :e test.out "test.out" [New File]~~~~~ ~~~ ~~~~~~~ ~~~~ ~~ ~:%d :" function name not starting with a capital :try : : func! g:test() : : echo "test" : : endfunc : :catch : : $put =v:exception : :endtry Vim(function):E128: Function name must start with a capital or "s:": g:test() ~ ~ ~ ~:" function name folowed by # :try : : func! test2() "# : : echo "test2" : : endfunc : :catch : : $put =v:exception : :endtry Vim(function):E128: Function name must start with a capital or "s:": g:test() Vim(function):E128: Function name must start with a capital or "s:": test2() "# ~ ~ ~:" function name includes a colon :try : : func! b:test() : : echo "test" : : endfunc : :catch : : $put =v:exception : :endtry Vim(function):E128: Function name must start with a capital or "s:": g:test() Vim(function):E128: Function name must start with a capital or "s:": test2() "# Vim(function):E128: Function name must start with a capital or "s:": b:test() ~ ~:" function name starting with/without "g:", buffer-local funcref. :function! g:Foo(n) : : $put ='called Foo(' . a:n . ')' : :endfunction Vim(function):E128: Function name must start with a capital or "s:": g:test():let b:my_func = function('Foo') :call b:my_func(1) called Foo(1) :echo g:Foo(2) 0called Foo(2) :echo Foo(3) 0called Foo(3) :" script-local function used in Funcref must exist. :so test_eval_func.vim s:Testje exists: 0 func s:Testje exists: 1 Bar exists: 1 func Bar exists: 1 :" using $ instead of '$' must give an error :try : : call append($, 'foobar') : :catch : : $put =v:exception : :endtry Vim(function):E128: Function name must start with a capital or "s:": g:test() Vim(function):E128: Function name must start with a capital or "s:": test2() "# Vim(function):E128: Function name must start with a capital or "s:": b:test()Vim(call):E116: Invalid arguments for function append:1d ~:w "test.out" [New File] 11 lines, 408 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test2.failed test.ok test.out X* viminfo cp test2.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test2.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test2.in" 29 lines, 717 charactersThis is a test if a URL is recognized by "gf", with the cursor before and after the "://". Also test ":\\". STARTTEST :so small.vim /^first /tmp :call append(0, expand("")) /^second /URL :call append(1, expand("")) :if has("ebcdic") : set isf=@,240-249,/,.,-,_,+,,,$,:,~,\ :else : set isf=@,48-57,/,.,-,_,+,,,$,:,~,\ :endif /^third /name :call append(2, expand("")) /^fourth /URL :call append(3, expand("")):set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 19 lines, 336 characters written:set ff& cpo+=A /ENDTEST5GdG:wq! test.out ENDTEST first test for URL://machine.name/tmp/vimtest2a and other text :so! Xdotest :so small.vim /^first search hit BOTTOM, continuing at TOP/tmp :call append(0, expand("")) /^second second test for URL://machine.name/tmp/vimtest2b. And other text /URL :call append(1, expand("")) :if has("ebcdic") : : set isf=@,240-249,/,.,-,_,+,,,$,:,~,\ : :else : : set isf=@,48-57,/,.,-,_,+,,,$,:,~,\ : :endif STARTTEST :so small.vim /^first /tmp /^third third test for URL:\\machine.name\vimtest2c and other text /name :call append(2, expand("")) /^fourth fourth test for URL:\\machine.name\tmp\vimtest2d, and other text /URL :call append(3, expand("")) This is a test if a URL is recognized by "gf", with the cursor before and after the "://". Also test ":\\". STARTTEST :so small.vim29 fewer linesURL:\\machine.name\tmp\vimtest2d ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 29 fewer lines:wq! test.out "test.out" [New File] 4 lines, 128 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test3.failed test.ok test.out X* viminfo cp test3.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test3.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test3.in" 2056 lines, 21564 characters/* vim: set cin ts=4 sw=4 : */ Test for 'cindent' STARTTEST :so small.vim :set nocompatible viminfo+=nviminfo modeline :edit" read modeline /start of AUTO =/end of AUTO ENDTEST /* start of AUTO matically checked vim: set ts=4 : */ {if (test)cmd1;cmd2; } {if (test)cmd1;else:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest /* vim: set cin ts=4 sw=4 : *//^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 5 lines, 125 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :set nocompatible viminfo+=nviminfo modeline :edit " read modeline "test3.in"2056L, 21564Cif (test)cmd1;cmd2;if (test)cmd1;else/start of AUTO /end of AUTO 873 lines to indent... 8500 750 650 550 450 350 250 150 50 lines to indent... 874 lines indented /^STARTTEST namespace test test2 { 1111111111111111111; } namespace111111111 { 111111111111111111; } /* end of AUTO */ STARTTEST :set tw=0 wm=60 columns=80 noai fo=croq /serious/e a about life, the universe, and the rest^[ ENDTEST { /* this is * a real serious important big * comment */ :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 93C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set tw=0 wm=60 columns=80 noai fo=croq namespace test test2 { 1111111111111111111; } namespace111111111 { 111111111111111111; } /* end of AUTO */ STARTTEST :set tw=0 wm=60 columns=80 noai fo=croq /serious/e a about life, the universe, and the rest^[ ENDTEST { /* this is * a real serious important big * comment *//serious/e  -- INSERT -- about life, the * universe, and the * rest important big * comment /^STARTTEST  *//* insert " about life, the universe, and the rest" after "serious" */ } STARTTEST :set nocin :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 6L, 78C written:set ff& cpo+=A  /ENDTEST/+-1commentsjoabout life^[/happens jothere^[/below oline^[/this Ohello^[  ENDTEST :so! Xdotest :set nocin /comments { /** Testing for comments, without 'cin' set */ -- INSERT -- about life /happens /* * what happens here? */ -- INSERT -- there /below /*the end of the comment, try inserting a line below */ -- INSERT -- line /this /* how aboutthis one */ -- INSERT --hello this one */ /^STARTTEST }STARTTEST :set cin :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 18C written:set ff& cpo+=A  /ENDTEST/+-1vec2== ENDTEST :so! Xdotest :set cin /vec2 { var = this + that + vec[0] * vec[0]+ vec[1] * vec[1]+ vec2[2] * vec[2]; } /^STARTTEST STARTTEST :set cin :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 5L, 51C written:set ff& cpo+=A  /ENDTEST/+-1:set cino=}4 /testing1 k2==/testing2 k2== ENDTEST :so! Xdotest :set cin :set cino=}4 /testing1 {asdf asdflkajds f; if (tes & ting) {asdf asdf asdf ;asdfa sdf asdf;} testing1;  /testing2  if (tes & ting) {asdf asdf asdf ;asdfa sdf asdf;} testing2;   /^STARTTEST }STARTTEST :set cin :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 4L, 36C written:set ff& cpo+=A  /ENDTEST/+-1:set cino=(0,)20 /main =][ ENDTEST :so! Xdotest :set cin :set cino=(0,)20 /main main ( int first_par, /* 19 lines to indent... 20indented   * Comment for /^STARTTEST * Comment for* first par*/second_par /** Comment for* second par*/); } STARTTEST :set cin :set cino=es,n0s /main =][ ENDTEST main(void) { /* Make sure that cino=X0s is not parsed like cino=Xs. */ if (cond)foo(); :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 4L, 36C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cin :set cino=es,n0s /main 8 lines to indent... 9indented  /^STARTTEST  else{bar(); } } STARTTEST :set cin :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 26C written:set ff& cpo+=A  /ENDTEST/+-1:set cino=]]=][ ENDTEST :so! Xdotest :set cin :set cino= { 11 lines to indent... 12indented   do /^STARTTEST if (){if ()asdf;elseasdf;} } while (); cmd;/* this should go under the } */ } STARTTEST ]]=][ ENDTEST void f() { if ( k() ) {l();} else { /* Start (two words) end */m(); } :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 1L, 6C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest  8 lines to indent... 9indented  /^STARTTEST n(); } STARTTEST :set cino={s,e-s :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 ]]=][ ENDTEST :so! Xdotest :set cino={s,e-s void f() { 7 lines to indent... 8indented  {  if ( k() ) /^STARTTEST  {l();} else { /* Start (two words) end */m();} n(); /* should be under the if () */ } STARTTEST :set cino={s,fs :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 25C written:set ff& cpo+=A  /ENDTEST/+-1 ]]=/ foo ENDTEST :so! Xdotest :set cino={s,fs void bar(void) { / foo 30 lines to indent... 31indented  {/^STARTTEST void func(void) { a = 1;{b = 2;} c = 3; d = 4; } /* foo */ STARTTEST :set cino= /while ohere^[ ENDTEST a() { do { a = a +a; } while ( a );/* add text under this line */ :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 25C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino= /while  -- INSERT -- here if ( a ) i /^STARTTEST  a;} STARTTEST :set cino= com= :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 109C written:set ff& cpo+=A  /ENDTEST/+-1commentolabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^Mcmd();^[ ENDTEST :so! Xdotest :set cino= com= /comment a() { label1:/* hmm */// comment -- INSERT --label2: b(); label3 /* post */: /* pre */ label4:f(/*com*/);if (/*com*/)cmd(); } /^STARTTEST STARTTEST :set comments& comments^=s:/*,m:**,ex:*/ :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 53C written:set ff& cpo+=A  /ENDTEST/+-1simple=5j ENDTEST :so! Xdotest :set comments& comments^=s:/*,m:**,ex:*/ /simple /* * A simple comment 5 lines to indent... 6indented * A simple comment  */ /^STARTTEST /* ** A different comment */ STARTTEST :set cino=c0 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 70C written:set ff& cpo+=A  /ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/* 2kdd]]=][ ENDTEST :so! Xdotest :set cino=c0 :set comments& comments-=s1:/* comments^=s0:/* 2kdd]]=][ENDTESTvoid f(){ 4 lines to indent... 5indented   /^STARTTEST  /*********A comment. *********/ } STARTTEST :set cino=c0,C1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 73C written:set ff& cpo+=A  /ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/* 2kdd]]=][ ENDTEST :so! Xdotest :set cino=c0,C1 :set comments& comments-=s1:/* comments^=s0:/* 2kdd]]=][ENDTESTvoid f(){ 4 lines to indent... 5indented   /^STARTTEST  /********* A comment. *********/ } STARTTEST :set cino= :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 17C written:set ff& cpo+=A  /ENDTEST/+-1 ]]=][ ENDTEST :so! Xdotest :set cino= void f() { 5 lines to indent... 6indented   c = c1 && /^STARTTEST  (c2 ||c3) && c4; } STARTTEST :set cino=(s :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(s 2kdd]]=][ENDTESTvoid f(){ 5 lines to indent... 6indented   c = c1 && /^STARTTEST  (c2 ||c3) && c4; } STARTTEST :set cino=(s,U1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 28C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(s,U1 2kdd]]=][ENDTESTvoid f(){ 5 lines to indent... 6indented   c = c1 && /^STARTTEST  (c2 ||c3) && c4; } STARTTEST :set cino=(0 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(0 2kdd]]=][ENDTESTvoid f(){ 4 lines to indent... 5indented   if ( c1 /^STARTTEST  && ( c2|| c3))foo; } STARTTEST :set cino=(0,w1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 28C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(0,w1 2kdd]]=][ENDTESTvoid f(){ 4 lines to indent... 5indented   if ( c1 /^STARTTEST  && ( c2|| c3))foo; } STARTTEST :set cino=(s :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(s 2kdd]]=][ENDTESTvoid f(){ 8 lines to indent... 9indented   c = c1 && ( /^STARTTEST  c2 ||c3) && c4; if (c1 && c2)foo; } STARTTEST :set cino=(s,m1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 28C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(s,m1 2kdd]]=][ENDTESTvoid f(){ 8 lines to indent... 9indented   c = c1 && ( /^STARTTEST  c2 ||c3 ) && c4; if (c1 && c2 )foo; } STARTTEST :set cino=b1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=b1 2kdd]]=][ENDTESTvoid f(){ 9 lines to indent... 10 lines indented   switch (x) /^STARTTEST  {case 1:a = b;break;default:a = 0;break; } } STARTTEST :set cino=(0,W5 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 26C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(0,W5 2kdd]]=][ENDTESTvoid f(){ 10 lines to indent... 11indented   invokeme( /^STARTTEST  argu,ment); invokeme(argu,ment); invokeme(argu,ment); } STARTTEST :set cino=/6 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=/6 2kdd]]=][ENDTESTvoid f(){ 3 lines to indent... 4indented   statement; /^STARTTEST  // comment 1// comment 2 } STARTTEST :set cino= :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 34C written:set ff& cpo+=A  /ENDTEST/+-12kdd]]/comment 1/+1 == ENDTEST :so! Xdotest :set cino= ==ENDTESTvoid f(){ /comment 1/+1  statement;// comment 1 // comment 2 // comment 2 } /^STARTTEST STARTTEST :set cino=g0 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=g0 2kdd]]=][ENDTESTclass CAbc{ 6 lines to indent... 7indented   int Test() { return FALSE; } /^STARTTEST public: // comment void testfall(); protected: void testfall(); }; STARTTEST :set cino=(0,gs,hs :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 29C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(0,gs,hs 2kdd]]=][ENDTESTclass Foo : public Bar { 5 lines to indent... 6indented   public: /^STARTTEST  virtual void method1(void) = 0;virtual void method2(int arg1,int arg2,int arg3) = 0; }; STARTTEST :set cino=+20 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 24C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=+20 2kdd]]=][ENDTEST voidfoo() { 4 lines to indent... 5indented   if (a) /^STARTTEST  {} elseasdf; } STARTTEST :set cino=(0,W2s :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 27C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(0,W2s 2kdd]]=][ENDTEST { 34 lines to indent... 35indented   averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd( /^STARTTEST dec)->asdfasdfasdf(asdfadsf,asdfasdf,asdfasdf,),func(asdfadf,asdfasdf),asdasdf); } STARTTEST :set cino=M1 2kdd]]=][ ENDTEST int main () { if (cond1 &&cond2)foo; } :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino=M1 4 lines to indent... 5indented  /^STARTTEST STARTTEST :set cino=(0,ts :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 24C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd=][ ENDTEST :so! Xdotest :set cino=(0,ts 2kdd=][ENDTEST 9 lines to indent... 10 lines indented  /^STARTTEST void func(int a #if defined(FOO), int b, int c #endif) { } STARTTEST :set cino=(0 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 21C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd=][ ENDTEST :so! Xdotest :set cino=(0 2kdd=][ENDTEST 10 lines to indent... 11indented  /^STARTTEST  voidfunc(int a #if defined(FOO), int b, int c #endif ) { } STARTTEST :set cino& :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 20C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd=7][ ENDTEST :so! Xdotest :set cino& 2kdd=7][ENDTEST 71 lines to indent... 50 72indented  /^STARTTEST int a,int b) { }void func6(int a) { } STARTTEST :set cino& :set cino+=l1 2kdd=][ ENDTEST void func(void) { int tab[] = {1, 2, 3,4, 5, 6}; :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 33C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino& :set cino+=l1 24 lines to indent... 25indented  /^STARTTEST break;case baz: {printf("baz");break;}case quux:printf("But don't break the indentation of this instruction\n");break; } } STARTTEST :set cino& 2kdd=][ ENDTEST void func(void) { cout << "a" << "b" << ") :" << "c"; } :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 19C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino& 8 lines to indent... 9indented  << "b" << ") :" << "c"; /^STARTTEST STARTTEST :set com=s1:/*,m:*,ex:*/ :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 38C written:set ff& cpo+=A  /ENDTEST/+-1 ]]3jofoo();^[  ENDTEST :so! Xdotest :set com=s1:/*,m:*,ex:*/ void func(void) {/** This is a comment.*/ -- INSERT -- foo(); } /^STARTTEST STARTTEST :set cino& :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 19C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd=][ ENDTEST :so! Xdotest :set cino& 2kdd=][ENDTEST 10 lines to indent... 11indented  /^STARTTEST void func(void) { for (int i = 0; i < 10; ++i)if (i & 1) {foo(1);} elsefoo(0); baz(); } STARTTEST :set cino=k2s,(0 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 27C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd3j=][ ENDTEST :so! Xdotest :set cino=k2s,(0 2kdd3j=][ENDTEST void func(void) 23 lines to indent... 24indented  { /^STARTTEST if ( c1&& ( c2|| c3))foo; func( c1&& ( c2|| c3))foo; } STARTTEST :set cino=k2s,(s 2kdd3j=][ ENDTEST void func(void) { if (condition1 && condition2) action(); function(argument1 && argument2); :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 27C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino=k2s,(s  23 lines to indent... 24indented  && condition2) action(); && argument2); /^STARTTEST if ( c1&& ( c2|| c3))foo; func( c1&& ( c2|| c3))foo; } STARTTEST :set cino=k2s,(s,U1 2kdd3j=][ ENDTEST void func(void) { if (condition1 && condition2) action(); function(argument1 && argument2); :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 30C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino=k2s,(s,U1  24 lines to indent... 25indented  && condition2) action(); && argument2); /^STARTTEST && (c22345|| c3))printf("foo\n");c = c1 &&(c2 ||c3) && c4; } STARTTEST :set cino=k2s,(0,W4 2kdd3j=][ ENDTEST void func(void) { if (condition1 && condition2) action(); function(argument1 && argument2); :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 30C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino=k2s,(0,W4  29 lines to indent... 30indented  && condition2) action(); && argument2); /^STARTTEST && ( c2|| c3))foo;a_long_line(argument,argument); a_short_line(argument,argument); } STARTTEST :set cino=k2s,u2 2kdd3j=][ ENDTEST void func(void) { if (condition1 && condition2) action(); function(argument1 && argument2); :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 27C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino=k2s,u2  18 lines to indent... 19indented  && condition2) action(); && argument2); /^STARTTEST foo; if (c1 &&(c2 || c3)) { } if (c123456789&& (c22345|| c3))printf("foo\n"); } STARTTEST :set cino=k2s,(0,w1 2kdd3j=][ ENDTEST void func(void) { if (condition1 && condition2) action(); function(argument1 && argument2); :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 30C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino=k2s,(0,w1  27 lines to indent... 28indented  && condition2) action(); && argument2); /^STARTTEST if ( c1&& ( c2|| c3))foo; func( c1&& ( c2|| c3))foo; } STARTTEST :set cino=k2,(s 2kdd3j=][ ENDTEST void func(void) { if (condition1&& condition2)action(); function(argument1&& argument2); :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 26C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino=k2,(s  14 lines to indent... 15indented  /^STARTTEST  if (c1 && (c2 ||c3))foo; if (c1 &&(c2 || c3)) { } } STARTTEST :set cino=N-s :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 47C written:set ff& cpo+=A  /ENDTEST/+-1^NAMESPACESTART =/^NAMESPACEEND ENDTEST :so! Xdotest :set cino=N-s /^NAMESPACESTART NAMESPACESTART /^NAMESPACEEND 61 lines to indent... 50 62indented /^STARTTEST namespace test test2 { 1111111111111111111; } namespace111111111 { 111111111111111111; } NAMESPACEEND STARTTEST :set cino=j1,J1 /^JSSTART =/^JSEND ENDTEST JSSTART var bar = { foo: { that: this, some: ok, }, :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 35C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino=j1,J1 /^JSSTART /^JSEND 12 lines to indent... 13indented  foo: { that: this, some: ok, },/^STARTTEST  "bar":{a : 2,b: "123abc",x: 4,"y": 5 } } JSEND STARTTEST :set cino=j1,J1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 35C written:set ff& cpo+=A  /ENDTEST/+-1^JSSTART=/^JSEND ENDTEST :so! Xdotest :set cino=j1,J1 /^JSSTART JSSTART /^JSEND 5 lines to indent... 6indented /^STARTTEST var foo = [ 1, // indent 8 more 2, 3 ]; // indent 8 less JSEND STARTTEST :set cino=j1,J1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 35C written:set ff& cpo+=A  /ENDTEST/+-1^JSSTART=/^JSEND ENDTEST :so! Xdotest :set cino=j1,J1 /^JSSTART JSSTART /^JSEND 7 lines to indent... 8indented /^STARTTEST function bar() { var foo = [1,2,3]; // indent 16 less } JSEND STARTTEST :set cino=j1,J1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 35C written:set ff& cpo+=A  /ENDTEST/+-1^JSSTART=/^JSEND ENDTEST :so! Xdotest :set cino=j1,J1 /^JSSTART JSSTART /^JSEND 52 lines to indent... 503indented /^STARTTEST return false;}_arguments[0]=options;method.apply(this,_arguments);}}); } })(jQuery); JSEND STARTTEST :set cino=j1,J1 /^JSSTART =/^JSEND ENDTEST JSSTART function init(options) { $(this).data(class_name+'_public',$.extend({},{ foo: 'bar', bar: 2, foobar: [ :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 35C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino=j1,J1 /^JSSTART /^JSEND 14 lines to indent... 15indented  $(this).data(class_name+'_public',$.extend({},{ foo: 'bar', bar: 2, foobar: [/^STARTTEST  1, // indent 8 more2, // indent 8 more3 // indent 8 more],callback: function(){return true;} }, options||{})); } JSEND STARTTEST :set cino=j1,J1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 35C written:set ff& cpo+=A  /ENDTEST/+-1^JSSTART=/^JSEND ENDTEST :so! Xdotest :set cino=j1,J1 /^JSSTART JSSTART /^JSEND 16 lines to indent... 17indented /^STARTTEST (function($){ function init(options) {$(this).data(class_name+'_public',$.extend({},{foo: 'bar',bar: 2, // indent 8 morefoobar: [ // indent 8 more1, // indent 8 more2, // indent 16 more3 // indent 16 more],callback: function(){ // indent 8 morereturn true; // indent 8 more} // indent 8 more}, options||{})); } })(jQuery); JSEND STARTTEST :g/^STARTTEST/.,/^ENDTEST/d :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 61C written:set ff& cpo+=A  /ENDTEST/+-1 :so! Xdotest :g/^STARTTEST/.,/^ENDTEST/d 216 fewer lines}JSENDJSSTART(function($){function init(options) {$(this).data(class_name+'_public',$.extend({},{ foo: 'bar',bar: 2, // indent 8 morefoobar: [ // indent 8 more 1, // indent 8 more2, // indent 16 more3 // indent 16 more],callback: function(){ // indent 8 more return true; // indent 8 more } // indent 8 more }, options||{})); } })(jQuery); JSEND:1;/start of AUTO/,$wq! test.out "test.out" [New] 1820L, 18429C written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test4.failed test.ok test.out X* viminfo cp test4.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test4.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test4.in" 31 lines, 839 charactersTest for autocommand that changes current buffer on BufEnter event. Check if modelines are interpreted for the correct buffer. STARTTEST :so small.vim :set nocompatible viminfo+=nviminfo :au BufEnter Xxx brew /start of :.,/end of/w! Xxx " write test file Xxx :set ai modeline modelines=3 :sp Xxx" split to Xxx, autocmd will do :brew G?this is a othis should be auto-indented^[ :" Append text with autoindent to this file :au! BufEnter Xxx :buf Xxx" go to Xxx, no autocmd anymore G?this is a othis should be in column 1^[:wq " append text without autoindent to Xxx G:r Xxx" include Xxx in the current file :?startstart?,$w! test.out :qa! ENDTEST:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for autocommand that changes current buffer on BufEnter event./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 17 lines, 557 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :set nocompatible viminfo+=nviminfo :au BufEnter Xxx brew /start of startstart start of test file Xxx :.,/end of/w! Xxx " write test file Xxx "Xxx" [New] 7L, 124C written:set ai modeline modelines=3 :sp Xxx " split to Xxx, autocmd will do :brew "Xxx" 7L, 124CTest for autocommand that changes current buffer on BufEnter event. Check if modelines are interpreted for the correct buffer.STARTTESTso small.vim:set nocompatible viminfo+=nviminfo :au BufEnter Xxx brew/start of.,/end of/w! Xxx " write test file Xxx:set ai modeline modelines=3 :sp Xxx " split to Xxx, autocmd will do :brew test4.in qaENDTESTstartstartstart of test file Xxxvim: set noai : this is a test this is a testthis is a test this is a test test4.in test4.in" line 1 of 31 --3%-- col 1:qa!ENDTESTstartstart start of test file Xxx vim: set noai : this is a test this is a test this is a test this is a testend of test file Xxx?this is a -- INSERT -- this should be auto-indented[+][+] end of test file Xxx: " Append text with autoindent to this file :au! BufEnter Xxx :buf Xxx " go to Xxx, no autocmd anymore "Xxx" 7L, 124Cstart of test file Xxx vim: set noai : this is a test this is a test this is a test end of test file Xxx~~~~ Xxx ?this is a -- INSERT --this should be in column 1[+]:wq " append text without autoindent to Xxx "Xxx8L, 151C writtenSTARTTEST:so small.vim:set nocompatible viminfo+=nviminfo :au BufEnter Xxx brew/start of:.,/end of/w! Xxx " write test file Xxx :set ai modeline modelines=3 :sp Xxx" split to Xxx, autocmd will do :brew G?this is a othis should be auto-indented^[ : " Append text with autoindent to this fileau! BufEnter Xxx :buf Xxx" go to Xxx, no autocmd anymore G?this is a othis should be in column 1^[:wq " append text without autoindent to Xxx G:r Xxx " include Xxx in the current file :?startstart?,$w! test.out :qa!ENDTESTstartstartstart of test file Xxxvim: set noai :this is a testthis is a testthis is a testthis is a testthis should be auto-indented end of test file Xxx :r Xxx " include Xxx in the current file "Xxx" 8L, 151C start of test file Xxx :?startstart?,$w! test.out "test.out" [New] 17L, 316C written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test5.failed test.ok test.out X* viminfo cp test5.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test5.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test5.in" 29 lines, 949 charactersTest for autocommand that deletes the current buffer on BufLeave event. Also test deleting the last buffer, should give a new, empty buffer. STARTTEST :so small.vim :au BufLeave Xxx bwipe /start of :.,/end of/w! Xxx" write test file Xxx :sp Xxx" split to Xxx :bwipe" delete buffer Xxx, now we're back here G?this is a othis is some more text^[ :" Append some text to this file :?start?,$w! test.out" Write current file contents :bwipe test.out" delete alternate buffer :au bufleave test5.in bwipe :bwipe!" delete current buffer, get an empty one ithis is another test line^[:w >>test.out :" append an extra line to the output file :qa! ENDTEST start of test file Xxx:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for autocommand that deletes the current buffer on BufLeave event./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 16 lines, 664 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :au BufLeave Xxx bwipe /start of :.,/end of/w! Xxx " write test file Xxx "Xxx" [New File] 7 lines, 124 characters written:sp Xxx " split to Xxx "Xxx" 7 lines, 124 charactersstart of test file Xxxvim: set noai :this is a test this is a test this is a test this is a test end of test file Xxx~~~~ Xxx Test for autocommand that deletes the current buffer on BufLeave event. Also test deleting the last buffer, should give a new, empty buffer.STARTTESTso small.vim:au BufLeave Xxx bwipe/start of.,/end of/w! Xxx" write test file Xxx :sp Xxx" split to Xxx :bwipe" delete buffer Xxx, now we're back here test5.in :bwipe " delete buffer Xxx, now we're back here Test for autocommand that deletes the current buffer on BufLeave event. Also test deleting the last buffer, should give a new, empty buffer.STARTTEST:so small.vim:au BufLeave Xxx bwipe /start of:.,/end of/w! Xxx" write test file Xxx :sp Xxx" split to Xxx :bwipe" delete buffer Xxx, now we're back here G?this is a othis is some more text^[: " Append some text to this file:?start?,$w! test.out " Write current file contents:bwipe test.out" delete alternate buffer :au bufleave test5.in bwipe :bwipe! " delete current buffer, get an empty one ithis is another test line^[:w >>test.out : " append an extra line to the output file :qa!ENDTESTstart of test file Xxx"test5.in" line 23 of 29 --79%-- col 1vim: set noai :this is a testthis is a testthis is a testthis is a test end of test file Xxx ?this is a  this is some more text end of test file Xxx : " Append some text to this file :?start?,$w! test.out " Write current file contents "test.out" [New File] 8 lines, 147 characters written:bwipe test.out " delete alternate buffer :au bufleave test5.in bwipe :bwipe! " delete current buffer, get an empty one Error detected while processing BufLeave Auto commands for "test5.in": E89: No write since last change for buffer 1 (add ! to override) Press ENTER or type command to continue~~~~~~~~~~~~~ ~~~~~~~~~this is another test line:w >>test.out "test.out" 1 line, 26 characters appended: " append an extra line to the output file :qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test6.failed test.ok test.out X* viminfo cp test6.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test6.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test6.in" 24 lines, 739 charactersTest for autocommand that redefines the argument list, when doing ":all". STARTTEST :so small.vim :au BufReadPost Xxx2 next Xxx2 Xxx1 /^start of A1^[:.,/end of/w! Xxx1 " write test file Xxx1 $r2:.,/end of/w! Xxx2 " write test file Xxx2 $r3:.,/end of/w! Xxx3 " write test file Xxx3 :next! Xxx1 Xxx2 Xxx3 " redefine arglist; go to Xxx1 :all" open window for all args :w! test.out" Write contents of Xxx1 ^W^W^W^W:w >>test.out " Append contents of last window (Xxx1) :rew" should now be in Xxx2 :w >>test.out" Append contents of Xxx2 :qa! ENDTEST start of test file Xxxthis is a testthis is a testthis is a testthis is a test:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for autocommand that redefines the argument list, when doing ":all"./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 13 lines, 537 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :au BufReadPost Xxx2 next Xxx2 Xxx1 /^start of 1:.,/end of/w! Xxx1 " write test file Xxx1 "Xxx1" [New File] 6 lines, 109 characters written2:.,/end of/w! Xxx2 " write test file Xxx2 "Xxx2" [New File] 6 lines, 109 characters written3:.,/end of/w! Xxx3 " write test file Xxx3 "Xxx3" [New File] 6 lines, 109 characters written:next! Xxx1 Xxx2 Xxx3 " redefine arglist; go to Xxx1 "Xxx1"6 lines, 109 charactersstart of test file Xxx1this is a test this is a test this is a test this is a testend of test file Xxx~~~~~~~~~~~ ~~~~~~:all " open window for all args "Xxx2"6 lines, 109 characters "Xxx2" 6 lines, 109 characters "Xxx1" line 1 of 6 --16%-- col 1 (file (3) of 2) Press ENTER or type command to continue:w! test.out " Write contents of Xxx1 "test.out" [New File] 6 lines, 109 characters written Press ENTER or type command to continuestart of test file Xxx1this is a testthis is a testthis is a testthis is a test end of test file Xxx ~ Xxx1 start of test file Xxx2this is a testthis is a testthis is a testthis is a test end of test file Xxx Xxx2 start of test file Xxx1this is a testthis is a testthis is a testthis is a test end of test file Xxx ~ Xxx1 Xxx1 Xxx2 Xxx2 Xxx1 :w >>test.out " Append contents of last window (Xxx1) "test.out" 6 lines, 109 characters appended:rew " should now be in Xxx2 "Xxx2" line 1 of 6 --16%-- col 1 (file 1 of 2)22:w >>test.out " Append contents of Xxx2 "test.out" 6 lines, 109 characters appended:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test7.failed test.ok test.out X* viminfo cp test7.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test7.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test7.in" 26 lines, 675 charactersTest for autocommand that changes the buffer list, when doing ":ball". STARTTEST :so small.vim /^start of A1^[:.,/end of/w! Xxx1 " write test file Xxx1 :sp Xxx1 :close $r2:.,/end of/w! Xxx2 " write test file Xxx2 :sp Xxx2 :close $r3:.,/end of/w! Xxx3 " write test file Xxx3 :sp Xxx3 :close :au BufReadPost Xxx2 bwipe $r4:ball" open window for all args, close Xxx2 :.,$w! test.out" Write contents of this file ^W^W:w >>test.out" Append contents of second window (Xxx1) ^W^W:/^start of/,$w >>test.out " Append contents of last window (this file) :qa! ENDTEST start of test file Xxx:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for autocommand that changes the buffer list, when doing ":ball"./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 17 lines, 508 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim /^start of 1:.,/end of/w! Xxx1 " write test file Xxx1 "Xxx1" [New File] 4 lines, 77 characters written:sp Xxx1 "Xxx1" 4 lines, 77 charactersstart of test file Xxx1this is a test this is a test end of test file Xxx~~~~~~~ Xxx1 Test for autocommand that changes the buffer list, when doing ":ball".STARTTEST:so small.vim/^start ofA1[:.,/end of/w! Xxx1 " write test file Xxx1:sp Xxx1close $r2:.,/end of/w! Xxx2 " write test file Xxx2 :sp Xxx2 test7.in [+] :close Test for autocommand that changes the buffer list, when doing ":ball".STARTTEST:so small.vim/^start of A1^[:.,/end of/w! Xxx1 " write test file Xxx1 :sp Xxx1 :close $r2:.,/end of/w! Xxx2 " write test file Xxx2 :sp Xxx2 :close $r3:.,/end of/w! Xxx3 " write test file Xxx3:sp Xxx3:close :au BufReadPost Xxx2 bwipe $r4:ball " open window for all args, close Xxx2 :.,$w! test.out" Write contents of this file ^W^W:w >>test.out " Append contents of second window (Xxx1) ^W^W:/^start of/,$w >>test.out " Append contents of last window (this file) :qa!ENDTESTstart of test file Xxx12:.,/end of/w! Xxx2 " write test file Xxx2 "Xxx2" [New File] 4 lines, 77 characters written:sp Xxx2 "Xxx2" 4 lines, 77 charactersstart of test file Xxx2this is a test this is a test end of test file Xxx~~~~~~~ Xxx2 Test for autocommand that changes the buffer list, when doing ":ball".STARTTEST:so small.vim/^start ofA1[:.,/end of/w! Xxx1 " write test file Xxx1:sp Xxx1close $r2:.,/end of/w! Xxx2 " write test file Xxx2 :sp Xxx2 test7.in [+] :close Test for autocommand that changes the buffer list, when doing ":ball".STARTTEST:so small.vim/^start of A1^[:.,/end of/w! Xxx1 " write test file Xxx1 :sp Xxx1 :close $r2:.,/end of/w! Xxx2 " write test file Xxx2 :sp Xxx2 :close $r3:.,/end of/w! Xxx3 " write test file Xxx3:sp Xxx3:close :au BufReadPost Xxx2 bwipe $r4:ball " open window for all args, close Xxx2 :.,$w! test.out" Write contents of this file ^W^W:w >>test.out " Append contents of second window (Xxx1) ^W^W:/^start of/,$w >>test.out " Append contents of last window (this file) :qa!ENDTESTstart of test file Xxx23:.,/end of/w! Xxx3 " write test file Xxx3 "Xxx3" [New File] 4 lines, 77 characters written:sp Xxx3 "Xxx3" 4 lines, 77 charactersstart of test file Xxx3this is a test this is a test end of test file Xxx~~~~~~~ Xxx3 Test for autocommand that changes the buffer list, when doing ":ball".STARTTEST:so small.vim/^start ofA1[:.,/end of/w! Xxx1 " write test file Xxx1:sp Xxx1close $r2:.,/end of/w! Xxx2 " write test file Xxx2 :sp Xxx2 test7.in [+] :close Test for autocommand that changes the buffer list, when doing ":ball".STARTTEST:so small.vim/^start of A1^[:.,/end of/w! Xxx1 " write test file Xxx1 :sp Xxx1 :close $r2:.,/end of/w! Xxx2 " write test file Xxx2 :sp Xxx2 :close $r3:.,/end of/w! Xxx3 " write test file Xxx3:sp Xxx3:close :au BufReadPost Xxx2 bwipe $r4:ball " open window for all args, close Xxx2 :.,$w! test.out" Write contents of this file ^W^W:w >>test.out " Append contents of second window (Xxx1) ^W^W:/^start of/,$w >>test.out " Append contents of last window (this file) :qa!ENDTESTstart of test file Xxx3:au BufReadPost Xxx2 bwipe 4:ball " open window for all args, close Xxx2 "Xxx1"4 lines, 77 characters "Xxx2" 4 lines, 77 characters Press ENTER or type command to continue:.,$w! test.out " Write contents of this file "test.out" [New File] 4 lines, 77 characters written Press ENTER or type command to continue:.,$w! test.out" Write contents of this file ^W^W:w >>test.out" Append contents of second window (Xxx1) ^W^W:/^start of/,$w >>test.out " Append contents of last window (this file) :qa! ENDTEST start of test file Xxx4this is a testthis is a test end of test file Xxx test7.in [+] start of test file Xxx1this is a testthis is a test end of test file Xxx ~ ~ ~ ~ ~ ~ ~ Xxx1 test7.in [+] Xxx1 :w >>test.out " Append contents of second window (Xxx1) "test.out" 4 lines, 77 characters appendedtest7.in [+] Xxx1 :/^start of/,$w >>test.out " Append contents of last window (this file) search hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test8.failed test.ok test.out X* viminfo cp test8.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test8.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test8.in" 46 lines, 1236 charactersTest for BufWritePre autocommand that deletes or unloads the buffer. Test for BufUnload autocommand that unloads all other buffers. STARTTEST :so small.vim :au BufWritePre Xxx1 bunload :au BufWritePre Xxx2 bwipe /^start of A1^[:.,/end of/w! Xxx1 " write test file Xxx1 $r2:.,/end of/w! Xxx2 " write test file Xxx2 :e! Xxx2" edit Xxx2 :bdel test8.in" delete this file from the buffer list :e Xxx1" edit Xxx1 :w" write it, will unload it and give an error msg :w! test.out" Write contents of this file :e! Xxx2" start editing Xxx2 :bwipe test.out" remove test.out from the buffer list :w" write it, will delete the buffer and give an error msg:w >>test.out" Append contents of this file :au! BufWritePre :func CloseAll() let i = 0 while i <= bufnr('$'):set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for BufWritePre autocommand that deletes or unloads the buffer./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 37 lines, 1054 characters written:set ff& cpo+=A /ENDTEST if i != bufnr('%') && bufloaded(i)exe i . "bunload" endif let i += 1 endwhile endfunc :func WriteToOut() edit! test.out $put ='VimLeave done' write endfunc :set viminfo='100,nviminfo :au BufUnload * call CloseAll() :au VimLeave * call WriteToOut() :e small.vim :sp mbyte.vim :q :qa! ENDTEST  :so! Xdotest :so small.vim :au BufWritePre Xxx1 bunload :au BufWritePre Xxx2 bwipe /^start of start of Xxx 1 :.,/end of/w! Xxx1 " write test file Xxx1 "Xxx1" [New File] 3 lines, 31 characters written2:.,/end of/w! Xxx2 " write test file Xxx2 "Xxx2" [New File] 3 lines, 31 characters written:e! Xxx2 " edit Xxx2 "Xxx2" 3 lines, 31 charactersstart of Xxx2 testend of Xxx~~~~~~~~~~~~~~~~~~ ~~:bdel test8.in^I^I" delete this file from the buffer list :e Xxx1 " edit Xxx1 "Xxx1" 3 lines, 31 characters1 :w " write it, will unload it and give an error msg "Xxx2"3 lines, 31 characters E203: Autocommands deleted or unloaded buffer to be written Press ENTER or type command to continue:w! test.out " Write contents of this file "test.out" [New File] 3 lines, 31 characters written Press ENTER or type command to continue:e! Xxx2 " start editing Xxx2 "Xxx2" 3 lines, 31 charactersstart of Xxx2test end of Xxx"Xxx2" 3 lines, 31 characters:bwipe test.out " remove test.out from the buffer list :w " write it, will delete the buffer and give an error ms g"Xxx1"3 lines, 31 characters E203: Autocommands deleted or unloaded buffer to be written Press ENTER or type command to continue:w >>test.out " Append contents of this file "test.out" 3 lines, 31 characters appended Press ENTER or type command to continue:au! BufWritePre start of Xxx1test end of Xxx:func CloseAll() : let i = 0 : while i <= bufnr('$') : if i != bufnr('%') && bufloaded(i) : exe i . "bunload" : endif : let i += 1 : endwhile : endfunc start of Xxx1test end of Xxx ~ ~ ~ ~ ~:func WriteToOut() : edit! test.out : $put ='VimLeave done' : write : endfunc start of Xxx1test end of Xxx ~:set viminfo='100,nviminfo :au BufUnload * call CloseAll() :au VimLeave * call WriteToOut() :e small.vim Error detected while processing function CloseAll: line 4: E515: No buffers were unloaded: 0bunload "small.vim" 1 line, 1 character Press ENTER or type command to continue:sp mbyte.vim "mbyte.vim" 0 lines, 0 characters~ ~ ~mbyte.vim small.vim "mbyte.vim" 0 lines, 0 characters:q Error detected while processing function CloseAll: line 4: E515: No buffers were unloaded: 0bunload  "test.out" 6 lines, 62 characters "test.out" 7 lines, 76 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test9.failed test.ok test.out X* viminfo cp test9.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test9.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test9.in" 12 lines, 255 charactersTest for Bufleave autocommand that deletes the buffer we are about to edit. STARTTEST :so small.vim :au BufLeave test9.in bwipe yy :e yy :/^start of/,$w! test.out " Write contents of this file :qa! ENDTEST start of test file xx end of test file xx ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for Bufleave autocommand that deletes the buffer we are about to edit./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 5 lines, 117 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :au BufLeave test9.in bwipe yy :e yy E143: Autocommands unexpectedly deleted new buffer yy:/^start of/,$w! test.out " Write contents of this file "test.out" [New File] 2 lines, 42 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test10.failed test.ok test.out X* viminfo cp test10.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test10.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test10.in" 114 lines, 3080 charactersTest for 'errorformat'. This will fail if the quickfix feature was disabled. STARTTEST :so small.vim :" Also test a BOM is ignored. :so mbyte.vim :set encoding=utf-8 :7/start of errorfile/,/end of errorfile/w! Xerrorfile1 :7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2 :/start of testfile/,/end of testfile/w! Xtestfile :set efm+==%f=\\,\ line\ %l%*\\D%v%*[^\ ]\ %m :set efm^=%AError\ in\ \"%f\"\ at\ line\ %l:,%Z%p^,%C%m :cf Xerrorfile2 :clast :copen :let a=w:quickfix_title :wincmd p lgR^R=a^M^[ :cf Xerrorfile1 grA :cn gRLINE 6, COL 19^[ :cn:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for 'errorformat'. This will fail if the quickfix feature was disabled./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 50 lines, 801 characters written:set ff& cpo+=A /ENDTEST:cn gR. TAB-SPACE POINTER^[ :clast :cprev :cprev :wincmd w :let a=w:quickfix_title :wincmd p lgR^R=a^M^[ :w! test.out" Write contents of this file :qa! ENDTEST start of errorfile "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set. "Xtestfile", line 6 col 19; this is an error gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c Xtestfile:9: parse error before `asd' make: *** [vim] Error 1 in file "Xtestfile" linenr 10: there is an error 2 returned "Xtestfile", line 11 col 1; this is an error :so! Xdotest :so small.vim :" Also test a BOM is ignored. :so mbyte.vim :set encoding=utf-8 :cn gR. TAB-SPACE POINTER^[ :clast :cprev :cprev :wincmd w :let a=w:quickfix_title :wincmd p lgR^R=a^M^[ :w! test.out" Write contents of this file :qa! ENDTEST start of errorfile "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set. "Xtestfile", line 6 col 19; this is an error gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c Xtestfile:9: parse error before `asd' make: *** [vim] Error 1 in file "Xtestfile" linenr 10: there is an error 2 returned "Xtestfile", line 11 col 1; this is an error:7/start of errorfile/,/end of errorfile/w! Xerrorfile1 "Xerrorfile1" [New File] 83 lines, 1974 characters written:7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2 "Xerrorfile2" [New File] 82 lines, 1957 characters written:/start of testfile/,/end of testfile/w! Xtestfile "Xtestfile" [New File] 23 lines, 937 characters written:set efm+==%f=\\,\ line\ %l%*\\D%v%*[^\ ]\ %m :set efm^=%AError\ in\ \"%f\"\ at\ line\ %l:,%Z%p^,%C%m :cf Xerrorfile2 "Xtestfile" 23 lines, 937 characters (50 of 70): 1506-045 (S) Undeclared identifier fd_set. Press ENTER or type command to continue:clast (70 of 70): What is the title of the quickfix window? Press ENTER or type command to continue:copen start of testfilexxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 6 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 11 Xtestfile Xtestfile|18 col 14| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18Xtestfile|19 col 15| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19Xtestfile|20 col 16| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20|| || Does anyone know what is the problem and how to correction it? Xtestfile|21 col 9| What is the title of the quickfix window? Xtestfile|22 col 9| What is the title of the quickfix window? [Quickfix List]  :let a=w:quickfix_title :wincmd p  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 13141516171819202122 end of testfileXtestfile [Quickfix List] x=a :cf Xerrorfile2[+]:cf Xerrorfile1 start of testfile 2 3 4 5 6 7 8 9xxxxxxxxxxxxxxx10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 11 || :qa!|| ENDTEST || || start of errorfile Xtestfile|4 col 12| 1506-045 (S) Undeclared identifier fd_set. Xtestfile|6 col 19| this is an error || gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c Xtestfile|9| parse error before `asd'|| make: *** [vim] Error 1Xtestfile|10| there is an errorA:cn Xtestfile|4 col 12| 1506-045 (S) Undeclared identifier fd_set.Xtestfile|6 col 19| this is an error LINE 6, COL 19:cn Xtestfile|6 col 19| this is an errorXtestfile|9| parse error before `asd' NO COLUMN SPECIFIED:cn Xtestfile|9| parse error before `asd'Xtestfile|10| there is an error AGAIN NO COLUMN:cn Xtestfile|10| there is an error|| || 2 returned Xtestfile|11 col 1| this is an error  COL 1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 12:cn Xtestfile|11 col 1| this is an errorXtestfile|12 col 2| this is another error COL 2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 13:cn xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 14 Xtestfile|12 col 2| this is another errorXtestfile|14 col 10| this is an error in column 10 COL 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 15:cn Xtestfile|14 col 10| this is an error in column 10Xtestfile|15 col 10| this is another error, but in vcol 10 this time VCOL 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 16:cn Xtestfile|15 col 10| this is another error, but in vcol 10 this timeXtestfile|16| yet another problem I xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17:cn Xtestfile|16| yet another problemXtestfile|17 col 13| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17 . SPACE POINTER xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18:cn Xtestfile|17 col 13| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17Xtestfile|18 col 14| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18 . DOT POINTER xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19:cn Xtestfile|18 col 14| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18Xtestfile|19 col 15| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19 . DASH POINTER xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20:cn Xtestfile|19 col 15| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19Xtestfile|20 col 16| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20 . TAB-SPACE POINTER xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 21:clast Xtestfile|20 col 16| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20|| || Does anyone know what is the problem and how to correction it? Xtestfile|21 col 9| What is the title of the quickfix window? Xtestfile|22 col 9| What is the title of the quickfix window? || end of errorfile ~:cprev xxxxxxxx:cf Xerrorfile2xxxxxxx line 22Xtestfile|22 col 9| What is the title of the quickfix window? || end of errorfile:cprev Xtestfile|21 col 9| What is the title of the quickfix window? Xtestfile|22 col 9| What is the title of the quickfix window?:wincmd w Xtestfile [+] [Quickfix List] :let a=w:quickfix_title :wincmd p Xtestfile [+] [Quickfix List] x=a :cf Xerrorfile1:w! test.out " Write contents of this file "test.out" [New File] 23 lines, 942 characters written :qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test11.failed test.ok test.out X* viminfo cp test11.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test11.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test11.in" 84 lines, 3345 charactersTests for autocommands: - FileWritePrewriting a compressed file - FileReadPostreading a compressed file - BufNewFilereading a file template - BufReadPredecompressing the file to be read - FilterReadPresubstituting characters in the temp file - FilterReadPostsubstituting characters after filtering - FileReadPreset options for decompression - FileReadPostdecompress the file Note: This test is skipped if "gzip" is not available. $GZIP is made empty, "-v" would cause trouble. Use a FileChangedShell autocommand to avoid a prompt for "Xtestfile.gz" being modified outside of Vim (noticed on Solaris). STARTTEST :so small.vim :" drop out when there is no gzip program :if !executable("gzip") : e! test.ok : w! test.out : qa! :endif:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for autocommands:/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 48 lines, 2277 characters written:set ff& cpo+=A /ENDTEST:23,$s/\r$//" remove CR for when sed adds them :au! FileReadPre *.gz exe '!gzip -d ' . shellescape(expand("")) :au FileReadPre *.gz call rename(expand(":r"), expand("")) :au! FileReadPost *.gz '[,']s/l/L/ :$r Xtestfile.gz" Read compressed file :w" write it, after filtering :au!" remove all autocommands :e" Edit test.out again :set nobin ff& " use the default fileformat for writing :w :qa! ENDTEST startstart start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 6 Abcdefghijklmnopqrstuvwxyz line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8 Abcdefghijklmnopqrstuvwxyz line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx :so! Xdotest :so small.vim :" drop out when there is no gzip program :if !executable("gzip") : : e! test.ok : : w! test.out : : qa! : :endif :23,$s/\r$//" remove CR for when sed adds them :au! FileReadPre *.gz exe '!gzip -d ' . shellescape(expand("")) :au FileReadPre *.gz call rename(expand(":r"), expand("")) :au! FileReadPost *.gz '[,']s/l/L/:let $GZIP = "" :au FileChangedShell * echo "caught FileChangedShell" :set bin :au FileWritePre *.gz '[,']!gzip :au FileWritePost *.gz undo :/^start of testfile/,/^end of testfile/w! Xtestfile.gz 11 lines filtered "Xtestfile.gz" [New File][Incomplete last line] 1 line, 111 characters written 10 more lines; before #1 0 seconds ago Press ENTER or type command to continue:au FileReadPost *.gz '[,']!gzip -d :au FileReadPre *.gz call rename(expand(":r"), expand("")) :au! FileReadPost *.gz '[,']s/l/L/ :$r Xtestfile.gz" Read compressed file :w " write it, after filtering :au! " remove all autocommandse" Edit test.out againset nobin ff& " use the default fileformat for writing :wqa!ENDTESTstartstart start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx45678910 end of testfile :$r Xtestfile.gz " Read and decompress the testfile "Xtestfile.gz" [Incomplete last line] 1 line, 111 characters start of test.c /* * Here is a new .c file */ end of test.c start of testfile :?startstart?,$w! test.out " Write contents of this file "test.out" [New File] 29 lines, 788 characters written:au BufNewFile *.c read Xtest.c :/^start of test.c/+1,/^end of test.c/-1w! Xtest.c search hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written:e! foo.c " Will load Xtest.c "foo.c" [New File] "Xtest.c" 3 lines, 32 characters Press ENTER or type command to continue:au FileAppendPre *.out '[,']s/new/NEW/ /* * Here is a new .c file */~~~~~~~~~~~~ ~~~~~~~:au FileAppendPost *.out !cat Xtest.c >>test.out :w>>test.out " Append it to the output file "test.out" 4 lines, 33 characters appended :!cat Xtest.c >>test.out  Press ENTER or type command to continue:au! FileAppendPre /* * Here is a NEW .c file */ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:" setup autocommands to decompress before reading and re-compress afterwards :au BufReadPre *.gz exe '!gzip -d ' . shellescape(expand("")) :au BufReadPre *.gz call rename(expand(":r"), expand("")) :au BufReadPost *.gz call rename(expand(""), expand(":r")) :au BufReadPost *.gz exe '!gzip ' . shellescape(expand(":r")) :e! Xtestfile.gz " Edit compressed file :!gzip -d 'Xtestfile.gz' "Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'  Press ENTER or type command to continue:w>>test.out " Append it to the output file "test.out" 11 lines, 357 characters appended :!cat Xtest.c >>test.out  Press ENTER or type command to continue:set shelltemp " need temp files here start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 6 Abcdefghijklmnopqrstuvwxyz line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8 Abcdefghijklmnopqrstuvwxyz line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10 Abcdefghijklmnopqrstuvwxyz end of testfile ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:au FilterReadPre *.out call rename(expand(""), expand("") . " .t") start of testfile:au FilterReadPre *.out exe '!sed s/e/E/ ' . shellescape(expand("")) . ".t >" . shellescape(expand("")) start of testfile:au FilterReadPre *.out exe '!rm ' . shellescape(expand("")) . '.t' :au FilterReadPost *.out '[,']s/x/X/g :e! test.out " Edit the output file "test.out" 50 lines, 1242 charactersstarstart of testfile2 Abcdefghijklmnopqrstuvwxyz3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4 Abcdefghijklmnopqrstuvwxyz5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx6 Abcdefghijklmnopqrstuvwxyz7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8 Abcdefghijklmnopqrstuvwxyz9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10 Abcdefghijklmnopqrstuvwxyz end of testfilestart of test.c /* * Here is a new .c file */ end of test.c start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:23,$!cat :!sed s/e/E/ '/tmp/nvimGKKDuM/2'.t >'/tmp/nvimGKKDuM/2' :!rm '/tmp/nvimGKKDuM/2'.t 218 substitutions on 15 lines 28 lines filtered Press ENTER or type command to continue:23,$s/\r$// " remove CR for when sed adds them E486: Pattern not found: \r$ Press ENTER or type command to continue:au! FileReadPre *.gz exe '!gzip -d ' . shellescape(expand("")) startstart start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 6 Abcdefghijklmnopqrstuvwxyz line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8 Abcdefghijklmnopqrstuvwxyz line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10 Abcdefghijklmnopqrstuvwxyz end of testfile start of test.c /* * Here is a new .c file */ end of test.c start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz linE 5 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX :au FileReadPre *.gz call rename(expand(":r"), expand("")) :au! FileReadPost *.gz '[,']s/l/L/ :$r Xtestfile.gz " Read compressed file :!gzip -d 'Xtestfile.gz' "Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters11 substitutions on 11 lines Press ENTER or type command to continue:w " write it, after filtering "test.out"61 lines, 1599 characters written Press ENTER or type command to continue:au! " remove all autocommands E216: No such group or event: " remove all autocommands Press ENTER or type command to continue:e " Edit test.out again "test.out"61 lines, 1599 charactersstartstart start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 6 Abcdefghijklmnopqrstuvwxyz line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8 Abcdefghijklmnopqrstuvwxyz line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10 Abcdefghijklmnopqrstuvwxyz end of testfile start of test.c /* * Here is a new .c file */ end of test.c start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz linE 5 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX "test.out" 61 lines, 1599 characters:set nobin ff& " use the default fileformat for writing :w "test.out" 61 lines, 1599 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test12.failed test.ok test.out X* viminfo cp test12.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test12.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test12.in" 52 lines, 1199 charactersTests for 'directory' option. - ".", in same dir as file - "./dir", in directory relative to file - "dir", in directory relative to current dir STARTTEST :so small.vim :set nocompatible viminfo+=nviminfo :set dir=.,~ :/start of testfile/,/end of testfile/w! Xtest1 :" do an ls of the current dir to find the swap file (should not be there) :if has("unix") : !ls .X*.swp >test.out :else : r !ls X*.swp >test.out :endif :!echo first line >>test.out :e Xtest1 :if has("unix") :" Do an ls of the current dir to find the swap file, remove the leading dot :" to make the result the same for all systems. : r!ls .X*.swp : s/\.*X/X/:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for 'directory' option./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 40 lines, 965 characters written:set ff& cpo+=A /ENDTEST:!mkdir Xtest2 :set dir=./Xtest2,.,~ :e Xtest1 :!ls X*.swp >>test.out :!echo under under >>test.out :!ls Xtest2 >>test.out :!echo under Xtest1.swp >>test.out :!mkdir Xtest.je :/start of testfile/,/end of testfile/w! Xtest2/Xtest3 :set dir=Xtest.je,~ :e Xtest2/Xtest3 :swap :!ls Xtest2 >>test.out :!echo under Xtest3 >>test.out :!ls Xtest.je >>test.out :!echo under Xtest3.swp >>test.out :qa! ENDTEST start of testfile line 2 Abcdefghij line 3 Abcdefghij end of testfile :so! Xdotest :so small.vim :set nocompatible viminfo+=nviminfo :set dir=.,~ :/start of testfile/,/end of testfile/w! Xtest1 "Xtest1" [New] 4L, 70C written:" do an ls of the current dir to find the swap file (should not be there) :if has("unix") : : !ls .X*.swp >test.out :!ls .X*.swp >test.out ls: cannot access .X*.swp: No such file or directory shell returned 2 : :else : : r !ls X*.swp >test.out : :endif :!mkdir Xtest2 :set dir=./Xtest2,.,~ :e Xtest1 :!ls X*.swp >>test.out :!echo under under >>test.out :!ls Xtest2 >>test.out :!echo under Xtest1.swp >>test.out :!mkdir Xtest.je :/start of testfile/,/end of testfile/w! Xtest2/Xtest3 :set dir=Xtest.je,~ :e Xtest2/Xtest3 :swap :!ls Xtest2 >>test.out :!echo under Xtest3 >>test.out :!ls Xtest.je >>test.out :!echo under Xtest3.swp >>test.out :qa! ENDTEST start of testfile line 2 Abcdefghij line 3 Abcdefghij end of testfile:!echo first line >>test.out   Press ENTER or type command to continue:e Xtest1 "Xtest1" 4L, 70Cstart of testfile line 2 Abcdefghij line 3 Abcdefghij end of testfile ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "Xtest1" 4L, 70C:if has("unix") : :" Do an ls of the current dir to find the swap file, remove the leading dot : :" to make the result the same for all systems. : : r!ls .X*.swp  : : s/\.*X/X/ : : .w >>test.out "test.out" 1L, 11C appended : : undo 1 line less; before #1 1 seconds ago : :else : : !ls X*.swp >>test.out : :endif start of testfile line 2 Abcdefghij line 3 Abcdefghij end of testfile ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:!echo under Xtest1.swp >>test.out   Press ENTER or type command to continue:!mkdir Xtest2   Press ENTER or type command to continue:set dir=./Xtest2,.,~ start of testfile line 2 Abcdefghij line 3 Abcdefghij end of testfile ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:e Xtest1 "Xtest1" 4L, 70C:!ls X*.swp >>test.out  ls: cannot access X*.swp: No such file or directory shell returned 2  Press ENTER or type command to continue:!echo under under >>test.out   Press ENTER or type command to continue:!ls Xtest2 >>test.out   Press ENTER or type command to continue:!echo under Xtest1.swp >>test.out   Press ENTER or type command to continue:!mkdir Xtest.je   Press ENTER or type command to continue:/start of testfile/,/end of testfile/w! Xtest2/Xtest3 search hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C written Press ENTER or type command to continue:set dir=Xtest.je,~ start of testfile line 2 Abcdefghij line 3 Abcdefghij end of testfile ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:e Xtest2/Xtest3 "Xtest2/Xtest3" 4L, 70C:swap Xtest.je/Xtest3.swp:!ls Xtest2 >>test.out   Press ENTER or type command to continue:!echo under Xtest3 >>test.out   Press ENTER or type command to continue:!ls Xtest.je >>test.out   Press ENTER or type command to continue:!echo under Xtest3.swp >>test.out   Press ENTER or type command to continue:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test13.failed test.ok test.out X* viminfo cp test13.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test13.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test13.in" 58 lines, 1133 charactersTests for autocommands on :close command Write three files and open them, each in a window. Then go to next window, with autocommand that deletes the previous one. Do this twice, writing the file. Also test deleting the buffer on a Unload event. If this goes wrong there will be the ATTENTION prompt. Also test changing buffers in a BufDel autocommand. If this goes wrong there are ml_line errors and/or a Crash. STARTTEST :so small.vim :/^start of testfile/,/^end of testfile/w! Xtestje1 :/^start of testfile/,/^end of testfile/w! Xtestje2 :/^start of testfile/,/^end of testfile/w! Xtestje3 :e Xtestje1 otestje1^[ :w :sp Xtestje2 otestje2^[ :w:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for autocommands on :close command/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 38 lines, 631 characters written:set ff& cpo+=A /ENDTEST:au! :au! BufUnload Xtestje1 bwipe :e Xtestje3 :w >>test.out :e Xtestje2 :sp Xtestje1 :e :w >>test.out :au! :only :e Xtestje1 :bwipe Xtestje2 Xtestje3 test.out test13.in :au BufWipeout Xtestje1 buf Xtestje1 :bwipe :w >>test.out :qa! ENDTEST start of testfilecontentscontentscontents end of testfile :so! Xdotest :so small.vim :/^start of testfile/,/^end of testfile/w! Xtestje1 "Xtestje1" [New File] 5 lines, 64 characters written:/^start of testfile/,/^end of testfile/w! Xtestje2 "Xtestje2" [New File] 5 lines, 64 characters written:/^start of testfile/,/^end of testfile/w! Xtestje3 "Xtestje3" [New File] 5 lines, 64 characters written:e Xtestje1 "Xtestje1" 5 lines, 64 charactersstart of testfile contents contents contents end of testfile~~~~~~~~~~~~ ~~~~~~testje1:w "Xtestje1" 6 lines, 72 characters written:sp Xtestje2 "Xtestje2" 5 lines, 64 characters contents end of testfile~Xtestje2 start of testfile testje1 contents contents contents end of testfileXtestje1 testje2[+]:w "Xtestje2" 6 lines, 72 characters written :sp Xtestje3 "Xtestje3" 5 lines, 64 charactersstart of testfilecontentscontentscontents end of testfile ~ ~ Xtestje3 start of testfile testje2contentscontentscontents end of testfile ~ Xtestje2 start of testfile testje1contentscontentscontents end of testfile Xtestje1 testje3[+]:w "Xtestje3" 6 lines, 72 characters written Xtestje3 Xtestje2 :au WinLeave Xtestje2 bwipe start of testfile testje3contentscontentscontents end of testfile ~ ~ ~ ~ Xtestje3 start of testfile testje1contentscontentscontents end of testfile ~ ~ ~ ~ ~ Xtestje1 :w! test.out "test.out" [New File] 6 lines, 72 characters written:au WinLeave Xtestje1 bwipe Xtestje3 :close 1~~~~~~~~:w >>test.out "test.out" 6 lines, 72 characters appended:e Xtestje1 "Xtestje1" 6 lines, 72 characters:bwipe Xtestje2 Xtestje3 test.out E94: No matching buffer for Xtestje2 Xtestje3 test.out:au! :au! BufUnload Xtestje1 bwipe :e Xtestje3 "Xtestje3" 6 lines, 72 characters3:w >>test.out "test.out" 6 lines, 72 characters appended:e Xtestje2 "Xtestje2" 6 lines, 72 characters2:sp Xtestje1 "Xtestje1" 6 lines, 72 characters1Xtestje1 start of testfile testje2 contents contents contents end of testfileXtestje2 :e E143: Autocommands unexpectedly deleted new buffer Xtestje122"Xtestje2" line 1 of 6 --16%-- col 1:w >>test.out "test.out" 6 lines, 72 characters appended:au! :only ~~~~~~~~:e Xtestje1 "Xtestje1" 6 lines, 72 characters1:bwipe Xtestje2 Xtestje3 test.out test13.in 4 buffers wiped out:au BufWipeout Xtestje1 buf Xtestje1 :bwipe "Xtestje1" 6 lines, 72 characters:w >>test.out "test.out" 6 lines, 72 characters appended:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test14.failed test.ok test.out X* viminfo cp test14.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test14.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test14.in" 99 lines, 1606 charactersTests for "vaBiB", end could be wrong. Also test ":s/pat/sub/" with different ~s in sub. Also test for ^Vxff and ^Vo123 in Insert mode. Also test "[m", "]m", "[M" and "]M" Also test search() STARTTEST :so small.vim /Start cursor here vaBiBD:?Bug?,/Piece/-2w! test.out /^- Bug :s/u/~u~/ :s/i/~u~/ :s/o/~~~/ :.w >>test.out :if has("ebcdic") : let tt = "o\193\xc2\o303 \90a\xfg\o578\" :else : let tt = "o\65\x42\o103 \33a\xfg\o78\" :endif :exe "normal " . tt :unlet tt :.w >>test.out:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for "vaBiB", end could be wrong./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 56 lines, 1141 characters written:set ff& cpo+=A /ENDTEST:$put =@/ /^substitute :keeppatterns s/asdf/xyz/ :$put =@/ /^substitute Y:$put =@0 /bar /e :$put =@0 -:keeppatterns /xyz 0dn:/^search()/,$w >>test.out :qa! ENDTEST - Bug in "vPPPP" on this text (Webb):{cmd;{cmd; /* <-- Start cursor here */{}}} :so! Xdotest :so small.vim /Start cursor here { cmd; /* <-- Start cursor here */ { }  cmd; } 6 fewer lines }Piece of Java{ tt m1 { t1;e1:?Bug?,/Piece/-2w! test.out "test.out" [New File] 3 lines, 44 characters written/^- Bug search hit BOTTOM, continuing at TOP:s/u/~u~/ :s/i/~u~/ uuun "vPPPP" on this text (Webb): :s/o/~~~/ uuuuuuuuun this text (Webb): :.w >>test.out "test.out" 1 line, 48 characters appended:if has("ebcdic") : : let tt = "o\193\xc2\o303 \90a\xfg\o578\ " : :else : : let tt = "o\65\x42\o103 \33a\xfg\o78\" : :endif :$put =@/ /^substitute :keeppatterns s/asdf/xyz/ :$put =@/ /^substitute:exe "normal " . tt ABC !a^Og^G8:unlet tt :.w >>test.out "test.out" 1 line, 11 characters appended:set vb /^Piece {A:.w >>test.out "test.out" 1 line, 10 characters appendedtt m2 {{B :.w >>test.out "test.out" 1 line, 10 characters appended t2;} e2tt m3 {{C :.w >>test.out "test.out" 1 line, 10 characters appended{DC:.w >>test.out "test.out" 1 line, 11 characters appended{EA:.w >>test.out "test.out" 1 line, 11 characters appended{F:.w >>test.out "test.out" 1 line, 3 characters appended}G e1:.w >>test.out "test.out" 1 line, 7 characters appended  if (x){t3;}} e3}H e3 :.w >>test.out "test.out" 1 line, 7 characters appended }}I :.w >>test.out "test.out" 1 line, 3 characters appended}JH e3:.w >>test.out "test.out" 1 line, 8 characters appended}K e2:.w >>test.out "test.out" 1 line, 7 characters appended{LF:.w >>test.out "test.out" 1 line, 4 characters appended:" /^foobar foobar :let startline = line('.') :call search('foobar', 'c') :call append(line('$'), line('.') - startline)   :call search('^$', 'c') :call append(line('$'), line('.') - startline) :call search('^$', 'bc') :call append(line('$'), line('.') - startline) /two substitute foo asdf one two :call search('.', 'c') :call append(line('$'), getline('.')[col('.') - 1:]) :" /^substitute search hit BOTTOM, continuing at TOP:s/foo/bar/ bar :$put =@/ search()0 1 1 two foo /^substitute search hit BOTTOM, continuing at TOP:keeppatterns s/asdf/xyz/ xyz:$put =@/ ^substitute /^substitute search hit BOTTOM, continuing at TOP:$put =@0 substitute bar xyz /bar /e :$put =@0 substitute bar xyz  :keeppatterns /xyz  /bar /exyz:/^search()/,$w >>test.out search hit BOTTOM, continuing at TOP "test.out" 9 lines, 58 characters appended:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test15.failed test.ok test.out X* viminfo cp test15.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test15.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test15.in" 136 lines, 2246 charactersTests for :right on text with embedded TAB. Also test formatting a paragraph. Also test undo after ":%s" and formatting. STARTTEST :so small.vim :set tw=65 :/^\s*test for :left/,/^\s*test for :center/ left :/^\s*test for :center/,/^\s*test for :right/ center :/^\s*test for :right/,/^xxx/-1 right :set fo+=tcroql tw=72 /xxxxxxxx$ 0gq6kk :set nocp viminfo+=nviminfo :" undo/redo here to make the next undo only work on the following changes u^R :map gg :.,.+2s/^/x/kk:set tw=3gqq /^aa ggu :?test for :left?,$w! test.out :qa! ENDTEST:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for :right on text with embedded TAB./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 17 lines, 401 characters written:set ff& cpo+=A /ENDTEST  :so! Xdotest :so small.vim :set tw=65   test for :left :/^\s*test for :left/,/^\s*test for :center/ left search hit BOTTOM, continuing at TOPtest for :left:/^\s*test for :center/,/^\s*test for :right/ center :/^\s*test for :right/,/^xxx/-1 right :set fo+=tcroql tw=72 /xxxxxxxx$ asxa;ofaaxxxoikeasdfaqweraxxxoikeaaxxxoikeyfaaxxxoikeydfaaxxxoikeysdfaaxxxoikeyasdfaaxxxoikeyxasdfaaxxxoikeyasxxdfaaxxxoikeyasxa;ofaaxxxoikeyasdfaqweraxxxoikey xxxxx xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xx xxxxxxxxxxxxxxxxxx xxxxx xxxx, xxxx xxxx xxxx xxxx xxx xx xx xx xxxxxxx. xxxx xxxx. > xx xx, xxxx xxxx xxx xxxx xxx xxxxx xxx xxx xxxxxxx xxx xxxxx > xxxxxx xxxxxxx: xxxx xxxxxxx, xx xxxxxx xxxx xxxxxxxxxx aa aa aa aa bb bb bb bb cc cc cc cc  xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xxxx xxxxxxx. xxxx xxxx.xxxxxxx: xxxx xxxxxxx, xx xxxx xxxxxxx~ :set nocp viminfo+=nviminfo :" undo/redo here to make the next undo only work on the following changes 1 more line; before #1 0 seconds ago0gq6kk :set nocp viminfo+=nviminfo :" undo/redo here to make the next undo only work on the following changes u^R :map gg :.,.+2s/^/x/kk:set tw=3gqq /^aa ggu :?test for :left?,$w! test.out :qa! ENDTESTtest for :leftaafaadfaasdfaaasdfaaxasdfaa asxxdfaatest for :centeraafaafd asdf1 line less; after #1 0 seconds agotest for :lefta afa adfa asdfaaasdfa axasdfaa test for :center  aa fa afd asdf :map gg :.,.+2s/^/x/kk:set tw=3gqq /^aa asxxdfaaxxxoikeasxa;ofaaxxxoikeasdfaqweraxxxoikeaaxxxoikeyfaaxxxoikeydfaaxxxoikeysdfaaxxxoikeyasdfaaxxxoikeyxasdfaaxxxoikeyasxxdfaaxxxoikeyasxa;ofaaxxxoikeyasdfaqweraxxxoikey xxxxx xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xx xxxxxxxxxxxxxxxxxx xxxxx xxxx, xxxx xxxx xxxx xxxx xxx xx xx xx xxxxxxx. xxxx xxxx. > xx xx, xxxx xxxx xxx xxxx xxx xxxxx xxx xxx xxxxxxx xxx xxxxx xxxxxx > xxxxxxx: xxxx xxxxxxx, xx xxxxxx xxxx xxxxxxxxxx aa aa aa aa bb bb bb bb cc cc cc cc :.,.+2s/^/x/ 3 substitutions on 3 linesxaa aa aa aa xbb bb bb bb xcc cc cc cc :set tw=3  3 more lines aaaaaa3 more lines 3 fewer lines; before #2 0 seconds agoaa aa aa aa bb bb bb bb cc cc cc cc~ :?test for :left?,$w! test.out "test.out"[New] 111L, 2304C written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test17.failed test.ok test.out X* viminfo cp test17.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test17.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test17.in" 141 lines, 2634 charactersTests for: - "gf" on ${VAR}, - ":checkpath!" with various 'include' settings. STARTTEST :so small.vim :if has("ebcdic") : set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,} :else : set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,} :endif :function! DeleteDirectory(dir) : if has("win16") || has("win32") || has("win64") || has("dos16") || has("dos32") : exec "silent !rmdir /Q /S " . a:dir : else : exec "silent !rm -rf " . a:dir : endif :endfun :if has("unix") :let $CDIR = "." /CDIR :else:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for:/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 33 lines, 771 characters written:set ff& cpo+=A /ENDTEST/TDIR :endif :" Dummy writing for making that sure gf doesn't fail even if the current :" file is modified. It can be occurred when executing the following command :" directly on Windows without fixing the 'fileformat': :" > nmake -f Make_dos.mak test17.out :w! test.out gf :set ff=unix :w! test.out :brewind ENDTEST${CDIR}/test17a.in$TDIR/test17a.in STARTTEST :" check for 'include' without \zs or \ze :lang C :call delete("./Xbase.a") :call DeleteDirectory("Xdir1") :!mkdir Xdir1 :!mkdir "Xdir1/dir2" :so! Xdotest :so small.vim :if has("ebcdic") : : set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,} : :else : : set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,} : :endif /TDIR :endif :" Dummy writing for making that sure gf doesn't fail even if the current :" file is modified. It can be occurred when executing the following command:function! DeleteDirectory(dir) : : if has("win16") || has("win32") || has("win64") || has("dos16") || has("do s32") : : exec "silent !rmdir /Q /S " . a:dir : : else : : exec "silent !rm -rf " . a:dir : : endif : :endfun /TDIR :endif :" Dummy writing for making that sure gf doesn't fail even if the current :" file is modified. It can be occurred when executing the following command :" directly on Windows without fixing the 'fileformat': :" > nmake -f Make_dos.mak test17.out :w! test.out:if has("unix") : :let $CDIR = "." : /CDIR : :else : :if has("amiga") : :let $TDIR = "/testdir" : :else : :let $TDIR = "." : :endif : /TDIR : :endif /TDIR :endif :" Dummy writing for making that sure gf doesn't fail even if the current :" file is modified. It can be occurred when executing the following command :" directly on Windows without fixing the 'fileformat': :" > nmake -f Make_dos.mak test17.out :w! test.out gf :set ff=unix :w! test.out:" Dummy writing for making that sure gf doesn't fail even if the current :" file is modified. It can be occurred when executing the following command :" directly on Windows without fixing the 'fileformat': :" > nmake -f Make_dos.mak test17.out :w! test.out "test.out" [New File] 141 lines, 2634 characters written/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/testdir/./t est17a.in" 3 lines, 88 characters Press ENTER or type command to continueThis file is just to test "gf" in test 17. The contents is not important. Just testing!~~~~~~~~~ ~~~ ~~~~~~~~:set ff=unix :w! test.out "test.out" 3 lines, 88 characters written:brewind "test17.in" 141 lines, 2634 characters:" Dummy writing for making that sure gf doesn't fail even if the current :" file is modified. It can be occurred when executing the following command :" directly on Windows without fixing the 'fileformat': :" > nmake -f Make_dos.mak test17.out :w! test.out gf :set ff=unix :w! test.out :brewind ENDTEST ${CDIR}/test17a.in $TDIR/test17a.inSTARTTEST :" check for 'include' without \zs or \ze :lang C :call delete("./Xbase.a") :call DeleteDirectory("Xdir1") :!mkdir Xdir1 :!mkdir "Xdir1/dir2" :e! Xdir1/dir2/foo.a i#include "bar.a"^[/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 23 lines, 395 characters written:set ff& cpo+=A /ENDTEST:e Xdir1/dir2/baz.a i#include"foo.a"^[ :w :e Xbase.a :set path=Xdir1/dir2 i#include ^[ :w :redir! >>test.out :checkpath! :redir END :brewind ENDTEST STARTTEST :" check for 'include' with \zs and \ze :call delete("./Xbase.b") :call DeleteDirectory("Xdir1") :!mkdir Xdir1 :!mkdir "Xdir1/dir2" :let &include='^\s*%inc\s*/\zs[^/]\+\ze' :function! DotsToSlashes() : return substitute(v:fname, '\.', '/', 'g') . '.b' :endfunction :so! Xdotest :" check for 'include' without \zs or \ze :lang C :call delete("./Xbase.a") :call DeleteDirectory("Xdir1") :!mkdir Xdir1   Press ENTER or type command to continue:!mkdir "Xdir1/dir2"   Press ENTER or type command to continue:e! Xdir1/dir2/foo.a "Xdir1/dir2/foo.a" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~#include "bar.a":w "Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written:e Xdir1/dir2/bar.a "Xdir1/dir2/bar.a" [New File]#include "baz.a":w "Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written:e Xdir1/dir2/baz.a "Xdir1/dir2/baz.a" [New File]#include"foo.a":w "Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written:e Xbase.a "Xbase.a" [New File]:set path=Xdir1/dir2 #include :w "Xbase.a" [New File] 1 line, 20 characters written:redir! >>test.out :checkpath! --- Included files in path --- Xdir1/dir2/foo.a Xdir1/dir2/foo.a --> Xdir1/dir2/bar.a Xdir1/dir2/bar.a --> Xdir1/dir2/baz.a Xdir1/dir2/baz.a --> "foo.a" (Already listed) Press ENTER or type command to continue:redir END #include ~ ~ ~ ~ ~ ~ ~:brewind "test17.in" 141 lines, 2634 charactersi#include "foo.a"^[ :w :e Xbase.a :set path=Xdir1/dir2 i#include ^[ :w :redir! >>test.out :checkpath! :redir END :brewind ENDTESTSTARTTEST :" check for 'include' with \zs and \ze :call delete("./Xbase.b") :call DeleteDirectory("Xdir1") :!mkdir Xdir1 :!mkdir "Xdir1/dir2" :let &include='^\s*%inc\s*/\zs[^/]\+\ze' :function! DotsToSlashes() : return substitute(v:fname, '\.', '/', 'g') . '.b' :endfunction :let &includeexpr='DotsToSlashes()'/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 27 lines, 531 characters written:set ff& cpo+=A /ENDTEST:e Xdir1/dir2/baz.b i%inc/foo/^[ :w :e Xbase.b :set path=Xdir1/dir2 i%inc /foo/^[ :w :redir! >>test.out :checkpath! :redir END :brewind ENDTEST STARTTEST :" check for 'include' with \zs and no \ze :call delete("./Xbase.c") :call DeleteDirectory("Xdir1") :!mkdir Xdir1 :!mkdir "Xdir1/dir2" :let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze' :function! StripNewlineChar() : if v:fname =~ '\n$' : return v:fname[:-2] :so! Xdotest :" check for 'include' with \zs and \ze :call delete("./Xbase.b") :call DeleteDirectory("Xdir1") :!mkdir Xdir1   Press ENTER or type command to continue:!mkdir "Xdir1/dir2"   Press ENTER or type command to continue:let &include='^\s*%inc\s*/\zs[^/]\+\ze' :e Xdir1/dir2/baz.b i%inc/foo/^[ :w :e Xbase.b :set path=Xdir1/dir2 i%inc /foo/^[ :w :redir! >>test.out :checkpath! :redir END :brewind ENDTEST STARTTEST :" check for 'include' with \zs and no \ze :call delete("./Xbase.c") :call DeleteDirectory("Xdir1") :!mkdir Xdir1 :!mkdir "Xdir1/dir2" :let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze' :function! StripNewlineChar() : if v:fname =~ '\n$' : return v:fname[:-2]:function! DotsToSlashes() : : return substitute(v:fname, '\.', '/', 'g') . '.b' : :endfunction :e Xdir1/dir2/baz.b i%inc/foo/^[:let &includeexpr='DotsToSlashes()' :e! Xdir1/dir2/foo.b "Xdir1/dir2/foo.b" [New File]~~~~~~~~~~~ ~~~~~~~~~~~%inc /bar/:w "Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written:e Xdir1/dir2/bar.b "Xdir1/dir2/bar.b" [New File]%inc /baz/:w "Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written:e Xdir1/dir2/baz.b "Xdir1/dir2/baz.b" [New File]%inc/foo/:w "Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written:e Xbase.b "Xbase.b" [New File]:set path=Xdir1/dir2 %inc /foo/:w "Xbase.b" [New File] 1 line, 14 characters written:redir! >>test.out :checkpath! --- Included files in path --- Xdir1/dir2/foo.b Xdir1/dir2/foo.b --> Xdir1/dir2/bar.b Xdir1/dir2/bar.b --> Xdir1/dir2/baz.b Xdir1/dir2/baz.b --> foo (Already listed) Press ENTER or type command to continue:redir END %inc /foo/ ~ ~ ~ ~ ~ ~ ~:brewind "test17.in" 141 lines, 2634 charactersi%inc /foo/^[ :w :e Xbase.b :set path=Xdir1/dir2 i%inc /foo/^[ :w :redir! >>test.out :checkpath! :redir END :brewind ENDTESTSTARTTEST :" check for 'include' with \zs and no \ze :call delete("./Xbase.c") :call DeleteDirectory("Xdir1") :!mkdir Xdir1 :!mkdir "Xdir1/dir2" :let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze' :function! StripNewlineChar() : if v:fname =~ '\n$' : return v:fname[:-2] : endif/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 39 lines, 743 characters written:set ff& cpo+=A /ENDTEST:w :e Xdir1/dir2/baz.c i%incfoo.c^[ :w :e Xdir1/dir2/FALSE.c i%incfoo.c^[ :w :e Xbase.c :set path=Xdir1/dir2 i%inc FALSE.c foo.c^[ :w :redir! >>test.out :checkpath! :redir END :brewind :" change "\" to "/" for Windows and fix 'fileformat' :e test.out :%s#\\#/#g :set ff& :w :q ENDTEST :so! Xdotest :" check for 'include' with \zs and no \ze :call delete("./Xbase.c") :call DeleteDirectory("Xdir1") :!mkdir Xdir1   Press ENTER or type command to continue:!mkdir "Xdir1/dir2"   Press ENTER or type command to continue:let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze' :w :e Xdir1/dir2/baz.c i%incfoo.c^[ :w :e Xdir1/dir2/FALSE.c i%incfoo.c^[ :w :e Xbase.c :set path=Xdir1/dir2 i%inc FALSE.c foo.c^[ :w :redir! >>test.out :checkpath! :redir END :brewind :" change "\" to "/" for Windows and fix 'fileformat' :e test.out :%s#\\#/#g :set ff& :w :q ENDTEST :function! StripNewlineChar() : : if v:fname =~ '\n$' : : return v:fname[:-2] : : endif : : return v:fname : :endfunction :w :e Xdir1/dir2/baz.c i%incfoo.c^[ :w :e Xdir1/dir2/FALSE.c :let &includeexpr='StripNewlineChar()' :e! Xdir1/dir2/foo.c "Xdir1/dir2/foo.c" [New File]~~~~~~~~~~~~~~~~~~~~~ ~%inc bar.c:w "Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written:e Xdir1/dir2/bar.c "Xdir1/dir2/bar.c" [New File]%inc baz.c:w "Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written:e Xdir1/dir2/baz.c "Xdir1/dir2/baz.c" [New File]%incfoo.c:w "Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written:e Xdir1/dir2/FALSE.c "Xdir1/dir2/FALSE.c" [New File]%incfoo.c:w "Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written:e Xbase.c "Xbase.c" [New File]:set path=Xdir1/dir2 %inc FALSE.c foo.c:w "Xbase.c" [New File] 1 line, 22 characters written:redir! >>test.out :checkpath! --- Included files in path --- Xdir1/dir2/foo.c Xdir1/dir2/foo.c --> Xdir1/dir2/bar.c Xdir1/dir2/bar.c --> Xdir1/dir2/baz.c Xdir1/dir2/baz.c --> foo.c (Already listed) Press ENTER or type command to continue:redir END %inc FALSE.c foo.c ~ ~ ~ ~ ~ ~ ~:brewind "test17.in" 141 lines, 2634 characters:w:e Xdir1/dir2/baz.c i%incfoo.c^[ :w :e Xdir1/dir2/FALSE.c i%incfoo.c^[ :w :e Xbase.c :set path=Xdir1/dir2 i%inc FALSE.c foo.c^[ :w :redir! >>test.out :checkpath! :redir END :brewind :" change "\" to "/" for Windows and fix 'fileformat' :e test.out :%s#\\#/#g :set ff& :w :q ENDTEST:" change "\" to "/" for Windows and fix 'fileformat' :e test.out "test.out" 33 lines, 655 charactersThis file is just to test "gf" in test 17. The contents is not important. Just testing!--- Included files in path --- Xdir1/dir2/foo.a Xdir1/dir2/foo.a --> Xdir1/dir2/bar.a Xdir1/dir2/bar.a --> Xdir1/dir2/baz.a Xdir1/dir2/baz.a --> "foo.a" (Already listed)--- Included files in path ---Xdir1/dir2/foo.b Xdir1/dir2/foo.b --> Xdir1/dir2/bar.b Xdir1/dir2/bar.b --> Xdir1/dir2/baz.b Xdir1/dir2/baz.b -->foo (Already listed):%s#\\#/#g E486: Pattern not found: \\:set ff& :w "test.out" 33 lines, 655 characters written:q # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test18.failed test.ok test.out X* viminfo cp test18.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test18.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test18.in" 16 lines, 213 charactersTests for not doing smart indenting when it isn't set. STARTTEST :so small.vim :set nocin nosi ai /some 2cc#test^[ :?start?,$w! test.out :qa! ENDTEST start textsome test texttest text test texttest text ~ ~ ~ ~ ~ ~ ~:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for not doing smart indenting when it isn't set./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 6 lines, 76 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :set nocin nosi ai /some  #test~:?start?,$w! test.out "test.out" [New File] 4 lines, 41 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test19.failed test.ok test.out X* viminfo cp test19.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test19.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test19.in" 33 lines, 692 charactersTests for "r" with 'smarttab' and 'expandtab' set/not set. Also test that dv_ works correctly STARTTEST :so small.vim :set smarttab expandtab ts=8 sw=4 :" make sure that backspace works, no matter what termcap is used :set t_kD=^Vx7f t_kb=^Vx08 /some r:set noexpandtab /other r :" Test replacing with Tabs and then backspacing to undo it 0wR^H^H^H^[ :" Test replacing with Tabs 0wR^[ :" Test that copyindent works with expandtab set :set expandtab smartindent copyindent ts=8 sw=8 sts=8 o{ x^[:set nosol /Second line/ fwdv_:?^start?,$w! test.out :qa!:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for "r" with 'smarttab' and 'expandtab' set/not set./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 19 lines, 447 characters written:set ff& cpo+=A /ENDTEST ENDTEST  :so! Xdotest :so small.vim :set smarttab expandtab ts=8 sw=4 :" make sure that backspace works, no matter what termcap is used :set t_kD=^^? t_kb=^^H STARTTEST :so small.vim :set smarttab expandtab ts=8 sw=4 :" make sure that backspace works, no matter what termcap is used :set t_kD=^Vx7f t_kb=^Vx08 /some r:set noexpandtab /other r :" Test replacing with Tabs and then backspacing to undo it 0wR^H^H^H^[ :" Test replacing with Tabs 0wR^[ :" Test that copyindent works with expandtab set :set expandtab smartindent copyindent ts=8 sw=8 sts=8 o{ x^[:set nosol /Second line/ fwdv_:?^start?,$w! test.out :qa! ENDTEST /some start textsome test text ome test text :set noexpandtab /other test textother test text ther test text a cde :" Test replacing with Tabs and then backspacing to undo it    f ghi :" Test replacing with Tabs  hi test text :" Test that copyindent works with expandtab set :set expandtab smartindent copyindent ts=8 sw=8 sts=8 {x :set nosol /Second line/   Second line beginning with whitespace  with whitespace :?^start?,$w! test.out "test.out" [New File] 10 lines, 121 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test20.failed test.ok test.out X* viminfo cp test20.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test20.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test20.in" 28 lines, 398 charactersTests Blockwise Visual when there are TABs before the text. First test for undo working properly when executing commands from a register. Also test this in an empty buffer. STARTTEST :so tiny.vim G0"ay$k@au :new @auY:quit! GP /start here$ "by$^Vjjlld /456$ ^Vjj"bP :/56$/,$-1w! test.out :qa! ENDTEST 123456 234567 345678 test text test tex start here:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests Blockwise Visual when there are TABs before the text./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 11 lines, 107 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so tiny.vim  some texttest text test text Ox^[jAy^[kdd x yy Ox^[jAy^[kdd 2 changes; before #1 0 seconds ago :new ~~~~~~~~~~ [No Name] 123456 234567 345678test text test tex start here some texttest test textOx^[jAy^[kdd test20.in x[+] y ~1 line less; before #1 0 seconds ago :quit! :so tiny.vim G0"ay$k@au :new @auY:quit! GP /start here$ "by$^Vjjlld /456$ ^Vjj"bP :/56$/,$-1w! test.out :qa! ENDTEST123456 234567 345678test text test tex start heresome test text test textOx^[jAy^[kdd Ox^[jAy^[kdd /start here$ search hit BOTTOM, continuing at TOPset tat rt hereextex/456$ search hit BOTTOM, continuing at TOP4 2345 345start here56 234start here67 345start here78:/56$/,$-1w! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 10 lines, 106 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test21.failed test.ok test.out X* viminfo cp test21.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test21.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test21.in" 19 lines, 297 charactersTests for [ CTRL-I with a count and CTRL-W CTRL-I with a count STARTTEST :so small.vim /start 6[ :.w! test.out ?start here 6^W :.w >>test.out :qa! ENDTEST #include test21.in /* test text test tex start heresome texttest textstart OK if found this linestart found wrong line test text ~ ~ ~ ~:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for [ CTRL-I with a count and CTRL-W CTRL-I with a count/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 6 lines, 73 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim /start :.w! test.out "test.out" [New File] 1 line, 30 characters written?start here ?start here6^W :.w >>test.out :qa!ENDTEST#include test21.in/* test text test tex start here some text test textstart OK if found this line test21.in Tests for [ CTRL-I with a count and CTRL-W CTRL-I with a countSTARTTEST:so small.vim/start6[ :.w! test.out?start here 6^W :.w >>test.out :qa! ENDTEST test21.in :.w >>test.out "test.out" 1 line, 30 characters appended:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test22.failed test.ok test.out X* viminfo cp test22.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test22.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test22.in" 13 lines, 197 charactersTests for file with some lines ending in CTRL-M, some not^M ^M STARTTEST :set ta tx :e! :$-3,$w! test.out :qa! ENDTEST this lines ends in a^M this one doesn't this one does^M and the last one doesn't ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for file with some lines ending in CTRL-M, some not^M/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 4 lines, 38 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :set ta tx E518: Unknown option: ta :e! "test22.in" 13 lines, 197 characters:$-3,$w! test.out "test.out" [New File] 4 lines, 79 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test23.failed test.ok test.out X* viminfo cp test23.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test23.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test23.in" 15 lines, 282 charactersTests for complicated + argument to :edit command STARTTEST :$-1w! Xfile1 :$w! Xfile2 :edit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w :w! test.out :e Xfile1 :w >> test.out :qa! ENDTEST The result should be in Xfile1: "fooPIPEbar", in Xfile2: "fooSLASHbar" foo|bar foo/bar ~ ~ ~ ~ ~ ~ ~ ~:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for complicated + argument to :edit command/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 7 lines, 125 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :$-1w! Xfile1 "Xfile1" [New File] 1 line, 8 characters written:$w! Xfile2 "Xfile2" [New File] 1 line, 8 characters written:edit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w "Xfile1" 1 line, 8 characters foo|bar "Xfile1" 1 line, 11 characters written "Xfile2" 1 line, 8 characters foo/bar "Xfile2" 1 line, 12 characters written Press ENTER or type command to continue:w! test.out "test.out" [New File] 1 line, 12 characters written Press ENTER or type command to continue:e Xfile1 "Xfile1" 1 line, 11 charactersfooPIPEbar ~ ~ ~ ~ ~ ~~~~~ ~~~~"Xfile1" 1 line, 11 characters:w >> test.out "test.out" 1 line, 11 characters appended:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test24.failed test.ok test.out X* viminfo cp test24.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test24.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test24.in" 89 lines, 1301 charactersTests for regexp with backslash and other special characters inside [] Also test backslash for hex/octal numbered character. STARTTEST :set nocompatible viminfo+=nviminfo /[\x] x/[\t\]] x/[]y] x/[\]] x/[y^] x/[$y] x/[\x61] x/[\x60-\x64] xj0/[\x785] x/[\o143] x/[\o140-\o144] x/[\o417] x/\%x42 x/\%o103 x/[\x00] x :s/[\x00-\x10]//g:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for regexp with backslash and other special characters inside []/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 51 lines, 519 characters written:set ff& cpo+=A /ENDTEST:s/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/ :s/aaa/xyz/ :s/~/bcd/ :s/~\+/BB/ :" :?start?,$w! test.out :qa! ENDTEST start test \text test text test text test text test text ]test text test ]text test text test text te^st text test te$xt test text test taext test text x61 test tbext test text x60-x64 test 5text test text x78 5 :so! Xdotest :set nocompatible viminfo+=nviminfo /[\x] text test text/[\t\]] text test tex/[]y] test text/[\]] text test text/[y^] st text/[$y] xt test text/[\x61] ext test text x61/[\x60-\x64] ext test text x60-x64 /[\x785] text test text x78 5/[\o143] testc text test text o143 test text test text o143 /[\o140-\o144] tesdt text test text o140-o144 test text test text o140-o14 /[\o417] test7 text test text o41 7 test text test text o41 7 /\%x42 test text tBest text \%x42est text \%x42 /\%o103 test text teCst text \%o103st text \%o103 /[\x00] test text ^@test text [\x00]test text [\x00] test te^@xt t^Dest t^Pext [\x00-\x10] :s/[\x00-\x10]//g 3 substitutions on 1 linext test text [\x00-\x10] test \xyztext test text [\x-z] :s/[\x-z]\+// text test text [\x-z] test text tev\uyst text [\u-z] :s/[\u-z]\{2,}// st text [\u-z] xx aaaaa xx a :s/\(a\)\+//  xx  xx aaaaa xx a :s/\(a*\)\+//  xx aaaaa xx a :s/\(a*\)*//  xx aaaaa xx :s/\(a\)\{2,3}/A/ Aaa xx xx aaaaa xx :s/\(a\)\{-2,3}/A/ Aaaa x xx aaa12aa xx :s/\(a\)*\(12\)\@>/A/ Aaa xx xx foobar xbar xx :s/\(foo\)\@\|\.\)\=\)\+=/XX/ XX hh= 77; :s/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/ YY 77;  aaa  :s/aaa/xyz/ xyz  xyz :s/~/bcd/ bcd  bcdbcdbcd :s/~\+/BB/ BB:" :?start?,$w! test.out "test.out" [New] 32L, 586C written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test25.failed test.ok test.out X* viminfo cp test25.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test25.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test25.in" 31 lines, 840 charactersTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag. This only works for Unix, because of the symbolic link. STARTTEST :so small.vim :set hidden :" Create a link from test25.dir to the current directory. :!rm -f test25.dir :!ln -s . test25.dir :" Create tags.text, with the current directory name inserted. /tags line :r !pwd d$/test hP:.w! tags.test :" Try jumping to a tag in the current file, but with a path that contains a :" symbolic link. When wrong, this will give the ATTENTION message. The next :" space will then be eaten by hit-return, instead of moving the cursor to 'd'. :set tags=tags.test G^] x:.w! test.out :!rm -f test25.dir tags.test :qa! ENDTEST:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for jumping to a tag with 'hidden' set, with symbolic link in path of tag./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 17 lines, 540 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :set hidden :" Create a link from test25.dir to the current directory. :!rm -f test25.dir   Press ENTER or type command to continue:!ln -s . test25.dir   Press ENTER or type command to continue:" Create tags.text, with the current directory name inserted. Test for jumping to a tag with 'hidden' set, with symbolic link in path of tag. This only works for Unix, because of the symbolic link. STARTTEST :so small.vim :set hidden :" Create a link from test25.dir to the current directory. :!rm -f test25.dir :!ln -s . test25.dir :" Create tags.text, with the current directory name inserted. /tags line :r !pwd d$/test hP:.w! tags.test :" Try jumping to a tag in the current file, but with a path that contains a :" symbolic link. When wrong, this will give the ATTENTION message. The next :" space will then be eaten by hit-return, instead of moving the cursor to 'd'. :set tags=tags.test G^] x:.w! test.out :!rm -f test25.dir tags.test :qa! ENDTEST /tags line his only works for Unix, because of the symbolic link.STARTTEST :so small.vim :set hidden" Create a link from test25.dir to the current directory. :!rm -f test25.dirln -s . test25.dir :" Create tags.text, with the current directory name inserted. /tags line:r !pwdd$/test hP:.w! tags.test :" Try jumping to a tag in the current file, but with a path that contains a :" symbolic link. When wrong, this will give the ATTENTION message. The next :" space will then be eaten by hit-return, instead of moving the cursor to 'd'. :set tags=tags.testG^] x:.w! test.out:!rm -f test25.dir tags.test :qa!ENDTESTtags line: :r !pwd STARTTEST :so small.vim :set hidden :" Create a link from test25.dir to the current directory. :!rm -f test25.dir :!ln -s . test25.dir :" Create tags.text, with the current directory name inserted. /tags line :r !pwd d$/test hP:.w! tags.test :" Try jumping to a tag in the current file, but with a path that contains a :" symbolic link. When wrong, this will give the ATTENTION message. The next :" space will then be eaten by hit-return, instead of moving the cursor to 'd'. :set tags=tags.test G^] x:.w! test.out :!rm -f test25.dir tags.test :qa! ENDTEST tags line: /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/testdir  /test SECTION_OFF /test25.dir/test25.in /^#define SECTION_OFF 3$//build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nv@ SECTION_OFF /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/testdir/test25.dir/test25.in /^#define SECTION_OFF 3$/ :.w! tags.test "tags.test" [New File] 1 line, 136 characters written:" Try jumping to a tag in the current file, but with a path that contains a :" symbolic link. When wrong, this will give the ATTENTION message. The next :" space will then be eaten by hit-return, instead of moving the cursor to 'd'. :set tags=tags.test /*tx.c*/ #define SECTION_OFF 3 #define NUM_SECTIONS 3 SECTION_OFF #efine SECTION_OFF 3:.w! test.out "test.out" [New File] 1 line, 23 characters written:!rm -f test25.dir tags.test  [No write since last change]  Press ENTER or type command to continue:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test26.failed test.ok test.out X* viminfo cp test26.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test26.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test26.in" 44 lines, 750 charactersTest for :execute, :while and :if STARTTEST :so small.vim mt:let i = 0 :while i < 12 : let i = i + 1 : if has("ebcdic") : execute "normal o" . i . "\047" : else : execute "normal o" . i . "\033" : endif : if i % 2 : normal Ax^V^[ : if i == 9 : break : endif : if i == 5 : continue : else : let j = 9 : while j > 0 :if has("ebcdic"):set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for :execute, :while and :if/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 39 lines, 696 characters written:set ff& cpo+=A /ENDTEST: let j = 9 : while j > 0 :if has("ebcdic") :execute "normal" j . "a" . j . "\x27" :else :execute "normal" j . "a" . j . "\x1b" :endif :let j = j - 1 : endwhile : endif : endif : if i == 9 : if has("ebcdic") : execute "normal Az\047" : else : execute "normal Az\033" : endif : endif :endwhile :unlet i j :'t,$w! test.out :qa! ENDTEST  :so! Xdotest :so small.vim :let i = 0 :while i < 12 : : let i = i + 1 : : if has("ebcdic") : : execute "normal o" . i . "\047" : : else : : execute "normal o" . i . "\033" : : endif : : if i % 2 : : normal Ax^^[  : : if i == 9 : : break : : endif : : if i == 5 : : continue : : else : : let j = 9 : : while j > 0 :: if has("ebcdic") :: execute "normal" j . "a" . j . "\x27" :: else :: execute "normal" j . "a" . j . "\x1b" :: endif :: let j = j - 1 :: endwhile : : endif : : endif : : if i == 9 : : if has("ebcdic") : : execute "normal Az\047" : : else : : execute "normal Az\033" : : endif : : endif : :endwhile : endif : if i == 9 : if has("ebcdic") : execute "normal Az\047" : else : execute "normal Az\033" : endif : endif :endwhile :unlet i j :'t,$w! test.out :qa! ENDTEST 1x999999999888888887777777666666555554444333221 2 3x999999999888888887777777666666555554444333221 4 5x 6 7x999999999888888887777777666666555554444333221 8 9x :unlet i j :'t,$w! test.out "test.out" [New File] 10 lines, 159 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test27.failed test.ok test.out X* viminfo cp test27.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test27.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test27.in" 20 lines, 270 charactersTest for expanding file names STARTTEST :!mkdir Xdir1 :!mkdir Xdir2 :!mkdir Xdir3 :cd Xdir3 :!mkdir Xdir4 :cd .. :w Xdir1/file :w Xdir3/Xdir4/file :n Xdir?/*/file Go^R%^[:.w! test.out :n! Xdir?/*/nofile Go^R%^[:.w >>test.out :e! xx :!rm -rf Xdir1 Xdir2 Xdir3 :qa! ENDTEST ~ ~ ~:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for expanding file names/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 15 lines, 220 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :!mkdir Xdir1   Press ENTER or type command to continue:!mkdir Xdir2   Press ENTER or type command to continue:!mkdir Xdir3   Press ENTER or type command to continue:cd Xdir3 /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/testdir/Xdir 3 Press ENTER or type command to continue:!mkdir Xdir4   Press ENTER or type command to continue:cd .. /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/testdir Press ENTER or type command to continue:w Xdir1/file "Xdir1/file" [New File] 20 lines, 270 characters written Press ENTER or type command to continue:w Xdir3/Xdir4/file "Xdir3/Xdir4/file" [New File] 20 lines, 270 characters written Press ENTER or type command to continue:n Xdir?/*/file "Xdir3/Xdir4/file" 20 lines, 270 charactersTest for expanding file names STARTTEST :!mkdir Xdir1 :!mkdir Xdir2 :!mkdir Xdir3 :cd Xdir3 :!mkdir Xdir4 :cd .. :w Xdir1/file :w Xdir3/Xdir4/file :n Xdir?/*/file Go^R%^[:.w! test.out :n! Xdir?/*/nofile Go^R%^[:.w >>test.out :e! xx :!rm -rf Xdir1 Xdir2 Xdir3 :qa! ENDTEST ~ ~ ~ "Xdir3/Xdir4/file" 20 lines, 270 characters Xdir3/Xdir4/file:.w! test.out "test.out" [New File] 1 line, 17 characters written:n! Xdir?/*/nofile "Xdir?/*/nofile" [New DIRECTORY]~~~~~~~~~~~~~~~~~~ ~~ Xdir?/*/nofile:.w >>test.out "test.out" 1 line, 15 characters appended:e! xx "xx" [New File]~:!rm -rf Xdir1 Xdir2 Xdir3   Press ENTER or type command to continue:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test28.failed test.ok test.out X* viminfo cp test28.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test28.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test28.in" 23 lines, 364 charactersTest for sourcing a file with CTRL-V's at the end of the line STARTTEST :/firstline/+1,/lastline/-1w! Xtestfile :so Xtestfile Gmm__1^[^[__2^[__3^[^[__4^[__5^[:'m,$s/^@/0/g :'m,$w! test.out :qa! ENDTEST firstline map __1 afirst map __2 asecond map __3 athird map __4 afourth map __5 afifth map __1 asd^V map __2 asd^V^V map __3 asd^V^V map __4 asd^V^V^V map __5 asd^V^V^V lastline:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for sourcing a file with CTRL-V's at the end of the line/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 5 lines, 114 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :/firstline/+1,/lastline/-1w! Xtestfile "Xtestfile" [New File] 10 lines, 148 characters written:so Xtestfile  sd map __2 asd^[secondd sd^[^[ sd^@map __5 asd^@fifth :'m,$s/^@/0/g 0map __5 asd0fifth:'m,$w! test.out "test.out" [New File] 2 lines, 45 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test29.failed test.ok test.out X* viminfo cp test29.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test29.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test29.in" 230 lines, 4222 charactersTest for joining lines and marks in them in compatible and nocompatible modes and with 'joinspaces' set or not and with 'cpoptions' flag 'j' set or not STARTTEST :so small.vim :set nocompatible viminfo+=nviminfo :set nojoinspaces :set cpoptions-=j /firstline/ j"td/^STARTTEST/-1 PJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=jj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2 ENDTEST firstline asdfasdf. asdf:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for joining lines and marks in them/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 11 lines, 478 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :set nocompatible viminfo+=nviminfo :set nojoinspaces :set cpoptions-=j /firstline/  /^STARTTEST/-1 +-1 37 fewer linesSTARTTEST /^{/+1more linesasdfasdf. asdfasdf asdfasdf. asdf asdfasdf.  asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdff asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf zx cvn. zx cvas dfg? hjkl iop! ert hjkl i. as dfg? hjkl iop! ert zx cvn. as dfg?hjkl iop! ert er zx cvrnnop:set cpoptions+=j  zx cv hjkl i. as dfg? hjkl iop! ertSTARTTEST ert er zx cvrnnop:set cpoptions-=j joinspaces  37 more linesasdfasdf. asdf asdfasdf.  asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdff asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf zx cvn. zx cvas dfg? hjkl iop! hjkl i. as dfg? hjkl iop! ert zx cvn. as dfg? ert e zx cvennop :set cpoptions+=j  zx cv hjkl iop! hjkl i. as dfg? hjkl iop! ertSTARTTEST ert er zx cvrnnop :set cpoptions-=j nojoinspaces compatible  37 more linesasdfasdf. asdf asdfasdf.  asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdff asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf zx cvn.. as dfg? hjkl iop! ertt a zx cvn. /STARTTEST/-2 +-2 4 fewer lines/^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 12 lines, 147 characters written:set ff& cpo+=A  /ENDTEST:set comments=s1:/*,mb:*,ex:*/,:// :set nojoinspaces fo=j :set backspace=eol,start :.,+3join j4J :.,+2join j3J :.,+2join j3J :.,+2join jj3J ENDTEST  :so! Xdotest /^{/+1 { :set comments=s1:/*,mb:*,ex:*/,:// :set nojoinspaces fo=j :set backspace=eol,start :.,+3join /* Make sure the previous comment leader is not removed. */ /* Make sure the previous comment leader is not removed. */  :.,+2join // Should the next comment leader be left alone? Yes. // Should the next comment leader be left alone? Yes.  :.,+2join /* Here the comment leader should be left intact. */ // And so should this one. /* Here the comment leader should be left intact. */ // And so should this one.  :.,+2join if (condition) // Remove the next comment leader! OK, I will.  action(); if (condition) // Remove the next comment leader! OK, I will. action(); /^STARTTEST }STARTTEST :" Test with backspace set to the non-compatible setting :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 17 lines, 308 characters written:set ff& cpo+=A  /ENDTEST:inoremap Avim3^U^[ :iunmap Avim4^U^U^[ :" Test with backspace set to the compatible setting :set bs= A vim5^[A^U^U^[ A vim6^[Azwei^Gu^U^[ :inoremap A vim7^U^U^[ :set cp ENDTEST 1 this shouldn't be deleted 2 this shouldn't be deleted 3 this shouldn't be deleted 4 this should be deleted 5 this shouldn't be deleted 6 this shouldn't be deleted 7 this shouldn't be deleted 8 this shouldn't be deleted (not touched yet) STARTTEST /^{/+1 :so! Xdotest :" Test with backspace set to the non-compatible setting /^\d\+ this :set cp bs=2 d vim2:set cpo-=< :inoremap d3:iunmap  :" Test with backspace set to the compatible setting :set bs= vim5d vim66 zwei:inoremap vim7 :set cp /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 21 lines, 356 characters written:set ff& cpo+=A  /ENDTESTj3J :.,+2join j3J :.,+2join jj3J j:.,+2join jj3J j:.,+5join j6J oSome code!^M// Make sure backspacing does not remove this comment leader.^[0i^H^[ ENDTEST { /* * Make sure the previous comment leader is not removed. */ /* * Make sure the previous comment leader is not removed. */ :so! Xdotest /^{/+1 :set comments=sO:*\ -,mO:*\ \ ,exO:*/ :set comments+=s1:/*,mb:*,ex:*/,:// :set comments+=s1:>#,mb:#,ex:#<,:< :set cpoptions-=j joinspaces fo=j :set backspace=eol,start :.,+3join /* Make sure the previous comment leader is not removed. *//* List:* - item1 * foo bar baz /* Make sure the previous comment leader is not removed. */* foo bar baz * - item2 * foo bar baz :.,+8join /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz *//* List:- item1 foo bar baz * - item2 /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */// Should the next comment leader be left alone? // Yes.// Should the next comment leader be left alone? :.,+2join Should the next comment leader be left alone? Yes. // Yes. // Should the next comment leader be left alone? Yes.* Here the comment leader should be left intact. */ // And so should this one. :.,+2join /* Here the comment leader should be left intact. */ // And so should this one.* Here the comment leader should be left intact. */ /* Here the comment leader should be left intact. */ // And so should this one. :.,+2join if (condition) // Remove the next comment leader! OK, I will.  action(); if (condition) // Remove the next comment leader! OK, I will. action();  :.,+2join int i = 7 /* foo *// 3 // comment  ; int i = 7 /* foo *// 3 // comment ;  :.,+5join ># Note that the last character of the ending comment leader (left angle bracket@># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader. ># Note that the last character of the ending comment leader (left angle bracket@># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader. Some code! // Make sure backspacing does not remove this comment leader. // Make sure backspacing does not remove this comment leader. } /^STARTTEST STARTTEST :g/^STARTTEST/.,/^ENDTEST/d :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 61 characters written:set ff& cpo+=A  /ENDTEST :?firstline?+1,$w! test.out :so! Xdotest :g/^STARTTEST/.,/^ENDTEST/d 74 fewer lines// Should the next comment leader be left alone? Yes./* Here the comment leader should be left intact. */ // And so should this one. /* Here the comment leader should be left intact. */ // And so should this one. if (condition) // Remove the next comment leader! OK, I will. action();if (condition) // Remove the next comment leader! OK, I will. action();int i = 7 /* foo *// 3 // comment ;int i = 7 /* foo *// 3 // comment ;># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader. Some code!// Make sure backspacing does not remove this comment leader. }:?firstline?+1,$w! test.out "test.out" [New File] 97 lines, 3018 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test30.failed test.ok test.out X* viminfo cp test30.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test30.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' option Note: This test will fail if "cat" is not available. STARTTEST :so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for a lot of variations of the 'fileformats' option/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 195 lines, 3271 characters written:set ff& cpo+=A /ENDTEST:$r XXtt62 :$r XXtt63 Go7^[:$r XXtt71 Go8^[:$r XXtt81 Go9^[:$r XXtt91 :$r XXtt92 :$r XXtt93 Go10^[:$r XXUnix :set nobinary ff& :w :qa! ENDTEST 1 2 3 4 5 6 7 8 9 10 :so! Xdotest :so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 "XX1" [New File] 1 line, 2 characters written:/^2/w! XX2 "XX2" [New File] 1 line, 2 characters written:/^3/w! XX3 "XX3" [New File] 1 line, 2 characters written:/^4/w! XX4 "XX4" [New File] 1 line, 2 characters written:/^5/w! XX5 "XX5" [New File] 1 line, 2 characters written:/^6/w! XX6 "XX6" [New File] 1 line, 2 characters written:/^7/w! XX7 "XX7" [New File] 1 line, 2 characters written:/^8/w! XX8 "XX8" [New File] 1 line, 2 characters written:/^9/w! XX9 "XX9" [New File] 1 line, 2 characters written:/^10/w! XX10 "XX10" [New File] 1 line, 3 characters written:/^unix/;/eof/-1w! XXUnix "XXUnix" [New File] 2 lines, 10 characters writtenunix "XXUnix" [New File] 2 lines, 10 characters written:/^dos/;/eof/-1w! XXDos "XXDos" [New File] 2 lines, 10 characters writtenunixeof dos^M "XXDos" [New File] 2 lines, 10 characters written:set bin noeol :$w! XXMac "XXMac" [New File][Incomplete last line] 1 line, 8 characters written:set nobin eol :bwipe XXUnix XXDos XXMac 3 buffers wiped out:" create mixed format files :if has("vms") : : !copy XXUnix,XXDos XXUxDs. : : !copy XXUnix,XXMac XXUxMac. : : !copy XXDos,XXMac XXDosMac. : : !copy XXUnix,XXDos,XXMac XXUxDsMc. : :elseif has("win32") : : !copy /b XXUnix+XXDos XXUxDs : : !copy /b XXUnix+XXMac XXUxMac : : !copy /b XXDos+XXMac XXDosMac : : !copy /b XXUnix+XXDos+XXMac XXUxDsMc : :else : : !cat XXUnix XXDos >XXUxDs :!cat XXUnix XXDos >XXUxDs : : !cat XXUnix XXMac >XXUxMac :!cat XXUnix XXMac >XXUxMac : : !cat XXDos XXMac >XXDosMac :!cat XXDos XXMac >XXDosMac : : !cat XXUnix XXDos XXMac >XXUxDsMc :!cat XXUnix XXDos XXMac >XXUxDsMc : :endif :$r XXtt93 Go10^[:$r XXUnix :set nobinary ff& :w :qa! ENDTEST 1 2 3 4 5 6 7 8 9 10 unix unix eof dos^M :" :" try reading and writing with 'fileformats' empty :set fileformat=unix :e! XXUnix "XXUnix" 2 lines, 10 charactersunixunix~~~~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~~~~ ~~:w! test.out "test.out" [New File] 2 lines, 10 characters written:e! XXDos "XXDos" 2 lines, 10 charactersdos^M dos^M:w! XXtt01 "XXtt01" [New File] 2 lines, 10 characters written:e! XXMac "XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M~:w! XXtt02 "XXtt02" [New File] 1 line, 9 characters written:bwipe XXUnix XXDos XXMac "test30.in" 222 lines, 3463 characters 3 buffers wiped out Press ENTER or type command to continue:set fileformat=dos :qa! ENDTEST1 2 3 4 5 6 7 8 9 10unix unix eofdos^M dos^M eofmac^Mmac^M:e! XXUnix "XXUnix" [CR missing][dos format] 2 lines, 10 charactersunix unix~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~~~~ ~~~~ ~~:w! XXtt11 "XXtt11" [New File][dos format] 2 lines, 12 characters written:e! XXDos "XXDos" [dos format] 2 lines, 10 charactersdosdos:w! XXtt12 "XXtt12" [New File][dos format] 2 lines, 10 characters written:e! XXMac "XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M~:w! XXtt13 "XXtt13" [New File][dos format] 1 line, 10 characters written:bwipe XXUnix XXDos XXMac "test30.in" [CR missing][dos format] 222 lines, 3463 characters 3 buffers wiped out Press ENTER or type command to continue:set fileformat=mac :qa! ENDTEST1 2 3 4 5 6 7 8 9 10unix unix eofdos dos eofmac^Jmac:e! XXUnix "XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~~~~ ~~~~ ~~:w! XXtt21 "XXtt21" [New File][mac format] 1 line, 11 characters written:e! XXDos "XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos ^J:w! XXtt22 "XXtt22" [New File][mac format] 3 lines, 11 characters written:e! XXMac "XXMac" [mac format] 2 lines, 8 charactersmac mac~:w! XXtt23 "XXtt23" [New File][mac format] 2 lines, 8 characters written:bwipe XXUnix XXDos XXMac "test30.in" [Incomplete last line][mac format] 5 lines, 3463 characters 3 buffers wiped out Press ENTER or type command to continue:" ^Jdos ^Jeof^J^Jmac mac ^J:" try reading and writing with 'fileformats' set to one format :set fileformats=unix :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M dos^M mac^Mmac^M:w! XXtt31 "XXtt31" [New File] 5 lines, 29 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:set fileformats=dos :e! XXUxDsMc "XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character s Press ENTER or type command to continue:w! XXtt32 "XXtt32" [New File][dos format] 5 lines, 32 characters written Press ENTER or type command to continue:bwipe XXUxDsMc "test30.in" [CR missing][dos format] 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' option Note: This test will fail if "cat" is not available."test30.in" [CR missing][dos format] 222 lines, 3463 characters:set fileformats=mac :e! XXUxDsMc "XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos ^Jmacmac~~~~~~~~~~~~~~~~~~~:w! XXtt33 "XXtt33" [New File][mac format] 4 lines, 28 characters written:bwipe XXUxDsMc "test30.in" [Incomplete last line][mac format] 5 lines, 3463 characters^Jdoseof^J^Jmac mac^J:" :" try reading and writing with 'fileformats' set to two formats :set fileformats=unix,dos :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M dos^M mac^Mmac^M:w! XXtt41 "XXtt41" [New File] 5 lines, 29 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:e! XXUxMac "XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix mac^Mmac^M~~~~~~~~~~~~~~~~~~~~:w! XXtt42 "XXtt42" [New File] 3 lines, 19 characters written:bwipe XXUxMac "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST :so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:e! XXDosMac "XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos mac^Mmac^M~~~~~~~~~~~~~~~~~~~~:w! XXtt43 "XXtt43" [New File][dos format] 3 lines, 20 characters written:bwipe XXDosMac "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST :so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:set fileformats=unix,mac :e! XXUxDs "XXUxDs" 4 lines, 20 charactersunixunix dos^Mdos^M~~~~~~~~~~~~~~~~~~~:w! XXtt51 "XXtt51" [New File] 4 lines, 20 characters written:bwipe XXUxDs "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST :so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix dos^Mdos^M mac^Mmac^M~~~~~~~~~~~~~~~~~~:w! XXtt52 "XXtt52" [New File] 5 lines, 29 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:e! XXDosMac "XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos ^Jmacmac~~~~~~~~~~~~~~~~~~~:w! XXtt53 "XXtt53" [New File][mac format] 4 lines, 18 characters written:bwipe XXDosMac "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST :so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:set fileformats=dos,mac :e! XXUxDs "XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix dosdos~~~~~~~~~~~~~~~~~~~:w! XXtt61 "XXtt61" [New File][dos format] 4 lines, 22 characters written:bwipe XXUxDs "test30.in" [CR missing][dos format] 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST :so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:e! XXUxMac "XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix mac^Mmac^M~~~~~~~~~~~~~~~~~~~~:w! XXtt62 "XXtt62" [New File][dos format] 3 lines, 22 characters written:bwipe XXUxMac "test30.in" [CR missing][dos format] 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST :so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:e! XXUxDsMc "XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character s Press ENTER or type command to continue:w! XXtt63 "XXtt63" [New File][dos format] 5 lines, 32 characters written Press ENTER or type command to continue:bwipe XXUxDsMc "test30.in" [CR missing][dos format] 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' option Note: This test will fail if "cat" is not available."test30.in" [CR missing][dos format] 222 lines, 3463 characters:" :" try reading and writing with 'fileformats' set to three formats :set fileformats=unix,dos,mac :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix dos^Mdos^M mac^Mmac^M~~~~~~~~~~~~~~~~~~:w! XXtt71 "XXtt71" [New File] 5 lines, 29 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:set fileformats=mac,dos,unix :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix dos^Mdos^M mac^Mmac^M~~~~~~~~~~~~~~~~~~:w! XXtt81 "XXtt81" [New File] 5 lines, 29 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:" try with 'binary' set :set fileformats=mac,unix,dos :set binary :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix dos^Mdos^M mac^Mmac^M~~~~~~~~~~~~~~~~~~:w! XXtt91 "XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:set fileformats=mac :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix dos^Mdos^M mac^Mmac^M~~~~~~~~~~~~~~~~~~:w! XXtt92 "XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac:set fileformats=dos :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix dos^Mdos^M mac^Mmac^M~~~~~~~~~~~~~~~~~~:w! XXtt93 "XXtt93" [New File][Incomplete last line] 5 lines, 28 characters written:" :" Append "END" to each file so that we can see what the last written char was. :set fileformat=unix nobin ~~~~--No lines in buffer--END:w >>XXtt01 "XXtt01" 1 line, 4 characters appended:w >>XXtt02 "XXtt02" 1 line, 4 characters appended:w >>XXtt11 "XXtt11" 1 line, 4 characters appended:w >>XXtt12 "XXtt12" 1 line, 4 characters appended:w >>XXtt13 "XXtt13" 1 line, 4 characters appended:w >>XXtt21 "XXtt21" 1 line, 4 characters appended:w >>XXtt22 "XXtt22" 1 line, 4 characters appended:w >>XXtt23 "XXtt23" 1 line, 4 characters appended:w >>XXtt31 "XXtt31" 1 line, 4 characters appended:w >>XXtt32 "XXtt32" 1 line, 4 characters appended:w >>XXtt33 "XXtt33" 1 line, 4 characters appended:w >>XXtt41 "XXtt41" 1 line, 4 characters appended:w >>XXtt42 "XXtt42" 1 line, 4 characters appended:w >>XXtt43 "XXtt43" 1 line, 4 characters appended:w >>XXtt51 "XXtt51" 1 line, 4 characters appended:w >>XXtt52 "XXtt52" 1 line, 4 characters appended:w >>XXtt53 "XXtt53" 1 line, 4 characters appended:w >>XXtt61 "XXtt61" 1 line, 4 characters appended:w >>XXtt62 "XXtt62" 1 line, 4 characters appended:w >>XXtt63 "XXtt63" 1 line, 4 characters appended:w >>XXtt71 "XXtt71" 1 line, 4 characters appended:w >>XXtt81 "XXtt81" 1 line, 4 characters appended:w >>XXtt91 "XXtt91" 1 line, 4 characters appended:w >>XXtt92 "XXtt92" 1 line, 4 characters appended:w >>XXtt93 "XXtt93" 1 line, 4 characters appended:" :" Concatenate the results. :" Make fileformat of test.out the native fileformat. :" Add a newline at the end. :set binary :e! test.out "test.out" 2 lines, 10 charactersunix unix:$r XXtt01 "XXtt01" 3 lines, 14 charactersdos^M dos^M END:$r XXtt02 "XXtt02" 2 lines, 13 charactersmac^Mmac^M END 1:$r XXtt11 "XXtt11" 3 lines, 16 charactersunix^M unix^M END:$r XXtt12 "XXtt12" 3 lines, 14 charactersdos^M dos^M END:$r XXtt13 "XXtt13" 2 lines, 14 charactersmac^Mmac^M^M END 2:$r XXtt21 "XXtt21" 3 lines, 15 charactersunix unix ^MEND:$r XXtt22 "XXtt22" 3 lines, 15 charactersdos^M dos^M ^MEND:$r XXtt23 "XXtt23" 1 line, 12 characters mac^Mmac^MEND 3 :$r XXtt31 "XXtt31" 6 lines, 33 characters unix :$r XXtt32 "XXtt32" 6 lines, 36 charactersunixdos^M dos^M mac^Mmac^M END unix^M :$r XXtt33 "XXtt33" 5 lines, 32 charactersunix^Mdos^M dos^M mac^Mmac^M^M END unix unix dos^M dos^M mac^Mmac^MEND 4 :$r XXtt41 "XXtt41" 6 lines, 33 characters unix :$r XXtt42 "XXtt42" 4 lines, 23 charactersunixdos^M dos^M mac^Mmac^M END unix :$r XXtt43 "XXtt43" 4 lines, 24 charactersunixmac^Mmac^M END dos^M dos^M mac^Mmac^M^M END 5 :$r XXtt51 "XXtt51" 5 lines, 24 characters unix :$r XXtt52 "XXtt52" 6 lines, 33 charactersunixdos^M dos^M END unix :$r XXtt53 "XXtt53" 3 lines, 22 charactersunixdos^M dos^M mac^Mmac^M END dos^M dos^M mac^Mmac^MEND 6 :$r XXtt61 "XXtt61" 5 lines, 26 characters unix^M :$r XXtt62 "XXtt62" 4 lines, 26 charactersunix^Mdos^M dos^M END unix^M :$r XXtt63 "XXtt63" 6 lines, 36 charactersunix^Mmac^Mmac^M^M END unix^M unix^M dos^M dos^M mac^Mmac^M^M END 7 :$r XXtt71 "XXtt71" 6 lines, 33 characters unixunix dos^M dos^M mac^Mmac^M END 8 :$r XXtt81 "XXtt81" 6 lines, 33 characters unixunix dos^M dos^M mac^Mmac^M END 9 :$r XXtt91 "XXtt91" 5 lines, 32 characters unix :$r XXtt92 "XXtt92" 5 lines, 32 charactersunixdos^M dos^M mac^Mmac^MEND unix :$r XXtt93 "XXtt93" 5 lines, 32 charactersunixdos^M dos^M mac^Mmac^MEND unix unix dos^M dos^M mac^Mmac^MEND 10 :$r XXUnix "XXUnix" 2 lines, 10 characters unix :set nobinary ff& :w "test.out" 121 lines, 664 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test31.failed test.ok test.out X* viminfo cp test31.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test31.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test31.in" 75 lines, 1545 charactersTest for commands that close windows and/or buffers: :quit :close :hide :only :sall :all :ball :buf :edit STARTTEST :so tiny.vim GA 1^[:$w! Xtest1 $r2:$w! Xtest2 $r3:$w! Xtest3 :n! Xtest1 Xtest2 A 1^[:set hidden :" test for working :n when hidden set; write "testtext 2" :n :w! test.out :" test for failing :rew when hidden not set; write "testtext 2 2" :set nohidden:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for commands that close windows and/or buffers:/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 60 lines, 1410 characters written:set ff& cpo+=A /ENDTEST:set hidden :e Xtest1 :w >>test.out :" test ":close" not hiding when 'hidden' not set in modified buffer; :" write "testtext 3 3 3" :sp Xtest3 :set nohidden A 3^[:close :w >>test.out :" test ":close!" does hide when 'hidden' not set in modified buffer; :" write "testtext 1" A 3^[:close! :w >>test.out :set nohidden :" test ":all!" hides changed buffer; write "testtext 2 2 2" :sp Xtest4 GA 4^[:all! :1wincmd w :w >>test.out :qa! ENDTEST testtext :so! Xdotest :so tiny.vim  1:$w! Xtest1 "Xtest1" [New File] 1 line, 11 characters written2:$w! Xtest2 "Xtest2" [New File] 1 line, 11 characters written3:$w! Xtest3 "Xtest3" [New File] 1 line, 11 characters written:n! Xtest1 Xtest2 "Xtest1" 1 line, 11 characterstesttext 1~~~~~~~~~~~~~~~~~~~~ ~~1:set hidden :" test for working :n when hidden set; write "testtext 2" :n "Xtest2" 1 line, 11 characters2:w! test.out "test.out" [New File] 1 line, 11 characters written:" test for failing :rew when hidden not set; write "testtext 2 2" :set nohidden 2:rew E37: No write since last change (add ! to override):w >>test.out "test.out" 1 line, 13 characters appended:" test for working :rew when hidden set; write "testtext 1 1" :set hidden :rew "Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1 :w >>test.out "test.out" 1 line, 13 characters appended:" test for :all keeping a buffer when it's modified; write "testtext 1 1 1" :set nohidden 1:sp Xtest1 [+] testtext 1 1 1Xtest1 [+] :n Xtest2 Xtest3 "Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22:all "Xtest3" 1 line, 11 characterstesttext 1 1 1 ~ ~ ~ ~ ~ ~ Xtest1 [+] testtext 2 2 ~ ~ ~ ~ ~ Xtest2 [+] testtext 3 ~ ~ ~ ~ ~ ~ Xtest3 :1wincmd w Xtest1 [+] Xtest2 [+] :w >>test.out "test.out" 1 line, 15 characters appended:" test abandoning changed buffer, should be unloaded even when 'hidden' set :" write "testtext 2 2" twice :set hidden 1 1:q! testtext 2 2 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xtest2 [+] testtext 3 ~ ~ ~ ~ ~ ~ ~ ~ ~ Xtest3 :w >>test.out "test.out" 1 line, 13 characters appended:unhide :w >>test.out "test.out" 1 line, 13 characters appended:" test ":hide" hides anyway when 'hidden' not set; write "testtext 3" :set nohidden 2:hide 3~~~:w >>test.out "test.out" 1 line, 11 characters appended:" test ":edit" failing in modified buffer when 'hidden' not set :" write "testtext 3 3" 3:e Xtest1 E37: No write since last change (add ! to override):w >>test.out "test.out" 1 line, 13 characters appended:" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1 "testtext 3 3:set hidden :e Xtest1 "Xtest1" 1 line, 11 characters1:w >>test.out "test.out" 1 line, 11 characters appended:" test ":close" not hiding when 'hidden' not set in modified buffer; :" write "testtext 3 3 3" :sp Xtest3 "Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+] testtext 1Xtest1 :set nohidden 3:close E37: No write since last change (add ! to override):w >>test.out "test.out" 1 line, 15 characters appended:" test ":close!" does hide when 'hidden' not set in modified buffer; :" write "testtext 1" 3 3:close! 1~~~:w >>test.out "test.out" 1 line, 11 characters appended:set nohidden :" test ":all!" hides changed buffer; write "testtext 2 2 2" :sp Xtest4 "Xtest4" [New File]Xtest4 testtext 1Xtest1  4[+]:all! "Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2) "Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2) Press ENTER or type command to continue:1wincmd w testtext 2 2 2 ~Xtest2 [+] testtext 3 3 3 3~3 [+]:w >>test.out "test.out" 1 line, 15 characters appended:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test32.failed test.ok test.out X* viminfo cp test32.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test32.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test32.in" 60 lines, 1391 charactersTest for insert expansion :se cpt=.,w * add-expands (word from next line) from other window * add-expands (current buffer first) * Local expansion, ends in an empty line (unless it becomes a global expansion) * starts Local and switches to global add-expansion :se cpt=.,w,i * i-add-expands and switches to local * add-expands lines (it would end in an empty line if it didn't ignored it self):se cpt=kXtestfile * checks k-expansion, and file expansion (use Xtest11 instead of test11, * because TEST11.OUT may match first on DOS) :se cpt=w * checks make_cyclic in other window :se cpt=u nohid * checks unloaded buffer expansion * checks adding mode abortion :se cpt=t,d * tag expansion, define add-expansion interrupted * t-expansion STARTTEST:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for insert expansion/^STARTTEST  :so small.vim :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 27 lines, 533 characters written:set ff& cpo+=A  /ENDTESTO^N^[IX^[A^X^F^N^[ :" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use :" CTRL-X CTRL-F again to verify this doesn't cause trouble. OX^X^F^H^H^H^H^H^H^H^H^X^F^[ddk :se cpt=w OST^N^P^P^P^P^[ :se cpt=u nohid ^WoOEN^N unl^N^X^X^P^[ :se cpt=t,d def=^\\k* tags=Xtestfile notagbsearch O^X^]^X^D^X^D^X^X^D^X^D^X^D^X^D a^N^[ :wq! test.out ENDTEST start of testfile run1 run2 end of testfile test11 36Gepeto/Tag/ asd test11file 36G Makefileto run :so! Xdotest :so small.vim :se nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff& "Xtestfile" [New] 3L, 57C written:se cot= ~~~~~~~~~~ [No Name] O^X^]^X^D^X^D^X^X^D^X^D^X^D^X^D a^N^[:wq! test.out ENDTESTstart of testfile run1run2 end of testfiletest32.in -- INSERT -- -- Keyword completion (^N^P) -- Searching... Scanning: test32.inmatch in file test32.in -- Keyword completion (^N^P) match 1 of 4match in file test32.in-- Keyword completion (^N^P) match 2 of 4-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --Adding Keyword completion (^N^P) -- Searching... Scanning: test32.inmatch in file test32.in -- Adding Keyword completion (^N^P) Word from other line#include "Xtestfile" run1 run2[+]-- Adding Keyword completion (^N^P) Word from other line-- INSERT --3 -- INSERT -- -- Keyword completion (^N^P) -- Searching... Scanning: test32.in-- Keyword completion (^N^P) match 1 of 115-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --Adding Keyword completion (^N^P) -- Searching... Scanning: test32.in-- Adding Keyword completion (^N^P) Word from other line-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --Keyword Local completion (^N^P) -- Searching...match 1 of 4 match 2 of 4 match 3 of 4 match 4 of 4 Back at original-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --Keyword Local completion (^N^P) -- Searching...match 1 of 4 match 2 of 4-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --Keyword completion (^N^P) -- Searching... Scanning: test32.in-- Keyword completion (^N^P) The only match-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --Adding Keyword completion (^N^P) -- Searching... Scanning: test32.in-- Adding Keyword completion (^N^P) match 1 of 2match in file test32.in-- Adding Keyword completion (^N^P) Word from other linerun3 run3 run1 run2-- Adding Keyword completion (^N^P) Word from other line-- INSERT -- :se cpt=.,w,i -- INSERT --Keyword completion (^N^P) -- Searching... Scanning: test32.in included file: Xtestfile match in file test32.in-- Keyword completion (^N^P) The only match-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --Adding Keyword completion (^N^P) -- Searching... Scanning: test32.in included file: Xtestfile match in file test32.in-- Adding Keyword completion (^N^P) The only match-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --Adding Keyword completion (^N^P) -- Searching... Scanning: test32.in included file: Xtestfile match in file test32.in-- Adding Keyword completion (^N^P) The only match-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --Keyword Local completion (^N^P) -- Searching...match 1 of 3-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- Whole line completion (^L^N^P) -- Searching... Scanning: test32.in-- Whole line completion (^L^N^P) match 1 of 57INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 57Adding Whole line completion (^L^N^P) -- Searching... Scanning: test32.in-- Adding Whole line completion (^L^N^P) The only match Back at original The only match Makefileto run3 Makefileto run3 Makefileto run3-- INSERT --:se cpt=kXtestfile :w Xtest11.one "Xtest11.one" [New] 9L, 104C writtenXtest11.one :w Xtest11.two "Xtest11.two" [New] 9L, 104C written-- INSERT --Keyword completion (^N^P) -- Searching... Scanning dictionary: Xtestfilematch in file Xtestfile-- Keyword completion (^N^P) match 1 of 9 test11[+]I -- Keyword completion (^N^P) match 1 of 9-- INSERT ---- INSERT --Xtest11 -- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- File name completion (^F^N^P) -- Searching...match 1 of 2 match 2 of 2.two-- INSERT --:" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use :" CTRL-X CTRL-F again to verify this doesn't cause trouble. -- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- File name completion (^F^N^P) -- Searching...match 1 of 4INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- File name completion (^F^N^P) -- Searching...match 1 of 268 Makefilerun1 run2d -- INSERT -- run1 run2~ :se cpt=w -- INSERT -- -- Keyword completion (^N^P) -- Searching... Scanning: test32.inmatch in file test32.in -- Keyword completion (^N^P) The only match Back at originalmatch in file test32.in-- Keyword completion (^N^P) The only match Back at originalmatch in file test32.in-- Keyword completion (^N^P) The only match STARTTEST run1 run2-- Keyword completion (^N^P) The only match-- INSERT --:se cpt=u nohid ~~~~~ ~~~~~ ~~-- INSERT --Keyword completion (^N^P) -- Searching... Scanning: test32.inmatch in file test32.in -- Keyword completion (^N^P) The only match-- INSERT -- -- Keyword completion (^N^P) -- Searching... Scanning: test32.inmatch in file test32.in -- Keyword completion (^N^P) match 1 of 3-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERT --Keyword completion (^N^P) -- Searching... Scanning: test32.inmatch in file test32.in -- Keyword completion (^N^P) The only matchENDTEST unless-- Keyword completion (^N^P) The only match-- Keyword completion (^N^P) The only match-- INSERT --:se cpt=t,d def=^\\k* tags=Xtestfile notagbsearch -- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- Tag completion (^]^N^P) -- Searching...match 1 of 3INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 3Definition completion (^D^N^P) -- Searching...Scanning included file: Xtestfilematch in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match -- Adding Definition completion (^D^N^P) -- Searching... Scanning included file: Xtestfilematch in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match -- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- Definition completion (^D^N^P) -- Searching... Scanning included file: Xtestfilematch in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match -- Adding Definition completion (^D^N^P) -- Searching... Scanning included file: Xtestfilematch in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match -- Adding Definition completion (^D^N^P) -- Searching... Scanning included file: Xtestfilematch in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match -- Adding Definition completion (^D^N^P) -- Searching... Scanning included file: Xtestfilematch in file Xtestfile-- Adding Definition completion (^D^N^P) Word from other lineINSERT ---- Keyword completion (^N^P) -- Searching... Scanning tags.included file: Xtestfile -- Keyword completion (^N^P) The only matchtest11file 36Gepeto/Tag/ asd asd-- Keyword completion (^N^P) The only match-- Keyword completion (^N^P) The only match-- INSERT -- ru:wq! test.out "test.out" [New] 15L, 175C written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test33.failed test.ok test.out X* viminfo cp test33.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test33.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test33.in" 34 lines, 616 charactersTest for 'lisp' If the lisp feature is not enabled, this will fail! STARTTEST :so small.vim :set lisp /^(defun =G:/^(defun/,$w! test.out :q! ENDTEST (defun html-file (base) (format nil "~(~A~).html" base)) (defmacro page (name title &rest body) (let ((ti (gensym))) `(with-open-file (*standard-output* (html-file ,name) :direction :output :if-exists :supersede) (let ((,ti ,title)) (as title ,ti) (with center:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for 'lisp'/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 5 lines, 63 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :set lisp /^(defun 22 lines to indent... 23indented  (format nil "~(~A~).html" base)) (let ((ti (gensym))) `(with-open-file (*standard-output* (html-file ,name) :direction :output :if-exists :supersede) (let ((,ti ,title)) (as title ,ti) (with center:/^(defun/,$w! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 23 lines, 544 characters written:q! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test34.failed test.ok test.out X* viminfo cp test34.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test34.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test34.in" 87 lines, 1833 charactersTest for user functions. Also test an mapping calling a function. Also test that a builtin function cannot be replaced. Also test for regression when calling arbitrary expression. STARTTEST :so small.vim :function Table(title, ...) : let ret = a:title : let idx = 1 : while idx <= a:0 : exe "let ret = ret . a:" . idx : let idx = idx + 1 : endwhile : return ret :endfunction :function Compute(n1, n2, divname) : if a:n2 == 0 : return "fail" : endif : exe "let g:" . a:divname . " = ". a:n1 / a:n2 : return "ok" :endfunction:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for user functions./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 78 lines, 1621 characters written:set ff& cpo+=A /ENDTEST:call append(line('$'), max([1, 2, 3])) :try : " Regression: the first line below used to throw ?E110: Missing ')'? : " Second is here just to prove that this line is correct when not skipping : " rhs of &&. : $put =(0&&(function('tr'))(1, 2, 3)) : $put =(1&&(function('tr'))(1, 2, 3)) :catch : $put ='!!! Unexpected exception:' : $put =v:exception :endtry :$-9,$w! test.out :delfunc Table :delfunc Compute :delfunc Expr1 :delfunc Expr2 :delfunc ListItem :delfunc ListReset :unlet retval counter :q! ENDTEST here :so! Xdotest :so small.vim :function Table(title, ...) : : let ret = a:title : : let idx = 1 : : while idx <= a:0 : : exe "let ret = ret . a:" . idx : : let idx = idx + 1 : : endwhile : : return ret : :endfunction :call append(line('$'), max([1, 2, 3])) :try : " Regression: the first line below used to throw ?E110: Missing ')'? : " Second is here just to prove that this line is correct when not skipping : " rhs of &&. : $put =(0&&(function('tr'))(1, 2, 3)) : $put =(1&&(function('tr'))(1, 2, 3)) :catch :function Compute(n1, n2, divname) : : if a:n2 == 0 : : return "fail" : : endif : : exe "let g:" . a:divname . " = ". a:n1 / a:n2 : : return "ok" : :endfunction :call append(line('$'), max([1, 2, 3])) :try : " Regression: the first line below used to throw ?E110: Missing ')'? : " Second is here just to prove that this line is correct when not skipping : " rhs of &&. : $put =(0&&(function('tr'))(1, 2, 3)) :func Expr1() : : normal! v : : return "111" : :endfunc :call append(line('$'), max([1, 2, 3])) :try : " Regression: the first line below used to throw ?E110: Missing ')'? :func Expr2() : : call search('XX', 'b') : : return "222" : :endfunc :call append(line('$'), max([1, 2, 3])) :try : " Regression: the first line below used to throw ?E110: Missing ')'? :func ListItem() : : let g:counter += 1 : : return g:counter . '. ' : :endfunc :call append(line('$'), max([1, 2, 3])) :try : " Regression: the first line below used to throw ?E110: Missing ')'? :func ListReset() : : let g:counter = 0 : : return '' : :endfunc :call append(line('$'), max([1, 2, 3])) :try : " Regression: the first line below used to throw ?E110: Missing ')'? :func FuncWithRef(a) : : unlet g:FuncRef : : return a:a : :endfunc :call append(line('$'), max([1, 2, 3])) :try : " Regression: the first line below used to throw ?E110: Missing ')'? :let g:FuncRef=function("FuncWithRef") :let counter = 0 :inoremap ( ListItem() :inoremap [ ListReset() :imap + Expr1() :imap * Expr2() :let retval = "nop" /^here her$=Table("xxx", 4, "asdf") =Compute(45, 0, "retval") =retval =Compute(45, 5, "retval") =retval =g:FuncRef(333) Error detected while processing function Expr1: line 1: E523: Not allowed here Press ENTER or type command to continue: $put =(0&&(function('tr'))(1, 2, 3)) : $put =(1&&(function('tr'))(1, 2, 3)) :catch : $put ='!!! Unexpected exception:'$put =v:exception :endtry$-9,$w! test.outdelfunc Table :delfunc Computedelfunc Expr1delfunc Expr2 :delfunc ListItemListReset :unlet retval counter :q!ENDTESTxxx4asdf fail nop ok 9 333 XX111-XX---222--- 1. one2. two1. one again :call append(line('$'), max([1, 2, 3])) :call extend(g:, {'max': function('min')}) E704: Funcref variable name must start with a capital: max:call append(line('$'), max([1, 2, 3])) :try : : " Regression: the first line below used to throw ?E110: Missing ')'? : : " Second is here just to prove that this line is correct when not skipp ing : : " rhs of &&. : : $put =(0&&(function('tr'))(1, 2, 3)) : : $put =(1&&(function('tr'))(1, 2, 3)) : :catch : : $put ='!!! Unexpected exception:' : : $put =v:exception : :endtry : $put =v:exception :endtry :$-9,$w! test.out :delfunc Table :delfunc Compute :delfunc Expr1 :delfunc Expr2 :delfunc ListItem :delfunc ListReset :unlet retval counter :q!ENDTESTxxx4asdf fail nop ok 9 333 XX111-XX ---222--- 1. one 2. two1. one again 330 :$-9,$w! test.out "test.out" [New File] 10 lines, 81 characters written:delfunc Table :delfunc Compute :delfunc Expr1 :delfunc Expr2 :delfunc ListItem :delfunc ListReset :unlet retval counter :q! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test35.failed test.ok test.out X* viminfo cp test35.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test35.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test35.in" 21 lines, 448 charactersTest Ctrl-A and Ctrl-X, which increment and decrement decimal, hexadecimal, and octal numbers. STARTTEST /^start-here :set nrformats=octal,hex j^A102^X^Al^Xl^A64^A128^X$^X :set nrformats=octal 0^A102^X^Al^X2^Aw65^A129^Xblx6lD :set nrformats=hex 0101^Xl257^X^ATxldt ^A ^X ^X :set nrformats= 0200^Xl100^Xw78^X^Ak :$-3,$wq! test.out ENDTEST start-here 100 0x100 077 0 100 0x100 077 100 0x100 077 0xfF 0xFf 100 0x100 077 ~ ~:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test Ctrl-A and Ctrl-X, which increment and decrement decimal, hexadecimal,/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 10 lines, 200 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest /^start-here :set nrformats=octal,hex  101 -1 0x100 077 00 0x100 077 000fff 0100 020000 -1:set nrformats=octal  101 -1 0x100 077 -0 0x100 077 0 -1x100 0771x100 077 02003777777777707 777777:set nrformats=hex  -1 0x100 077 0xfF 0xFf1ffffffff 077 0xfF 0xFf000000000 077 0xfF 0xFf88FEEfe:set nrformats=  -100 0x100 077 -100 -100x100 077-001000 :$-3,$wq! test.out "test.out" [New File] 4 lines, 120 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test36.failed test.ok test.out X* viminfo cp test36.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test36.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test36.in" 105 lines, 1950 charactersTest character classes in regexp using regexpengine 0, 1, 2. STARTTEST /^start-here/+1 Y:s/\%#=0\d//g p:s/\%#=1\d//g p:s/\%#=2\d//g p:s/\%#=0[0-9]//g p:s/\%#=1[0-9]//g p:s/\%#=2[0-9]//g p:s/\%#=0\D//g p:s/\%#=1\D//g p:s/\%#=2\D//g p:s/\%#=0[^0-9]//g p:s/\%#=1[^0-9]//g p:s/\%#=2[^0-9]//g p:s/\%#=0\o//g p:s/\%#=1\o//g p:s/\%#=2\o//g p:s/\%#=0[0-7]//g p:s/\%#=1[0-7]//g p:s/\%#=2[0-7]//g p:s/\%#=0\O//g:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test character classes in regexp using regexpengine 0, 1, 2./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 98 lines, 1775 characters written:set ff& cpo+=A /ENDTESTp:s/\%#=1\L//g p:s/\%#=2\L//g p:s/\%#=0[^a-z]//g p:s/\%#=1[^a-z]//g p:s/\%#=2[^a-z]//g p:s/\%#=0\u//g p:s/\%#=1\u//g p:s/\%#=2\u//g p:s/\%#=0[A-Z]//g p:s/\%#=1[A-Z]//g p:s/\%#=2[A-Z]//g p:s/\%#=0\U//g p:s/\%#=1\U//g p:s/\%#=2\U//g p:s/\%#=0[^A-Z]//g p:s/\%#=1[^A-Z]//g p:s/\%#=2[^A-Z]//g :/^start-here/+1,$wq! test.out ENDTEST start-here^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :so! Xdotest /^start-here/+1 :s/\%#=0\d//g 10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1\d//g 10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2\d//g 10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0[0-9]//g 10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1[0-9]//g 10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2[0-9]//g 10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0\D//g 72 substitutions on 1 line0123456789~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1\D//g 72 substitutions on 1 line0123456789~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2\D//g 72 substitutions on 1 line0123456789~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0[^0-9]//g 72 substitutions on 1 line0123456789~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1[^0-9]//g 72 substitutions on 1 line0123456789~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2[^0-9]//g 72 substitutions on 1 line0123456789~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0\o//g 8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1\o//g 8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ~ :s/\%#=2\o//g 8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=0[0-7]//g 8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=1[0-7]//g 8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=2[0-7]//g 8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=0\O//g 74 substitutions on 1 line01234567~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé:s/\%#=1\O//g 74 substitutions on 1 line01234567~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=2\O//g 74 substitutions on 1 line01234567~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé:s/\%#=0[^0-7]//g 74 substitutions on 1 line01234567~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1[^0-7]//g 74 substitutions on 1 line01234567~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2[^0-7]//g 74 substitutions on 1 line01234567~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0\x//g 22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1\x//g 22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2\x//g 22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0[0-9A-Fa-f]//g 22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=1[0-9A-Fa-f]//g 22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé:s/\%#=2[0-9A-Fa-f]//g 22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=0\X//g 60 substitutions on 1 line0123456789ABCDEFabcdef~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé:s/\%#=1\X//g 60 substitutions on 1 line0123456789ABCDEFabcdef~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=2\X//g 60 substitutions on 1 line0123456789ABCDEFabcdef~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé:s/\%#=0[^0-9A-Fa-f]//g 60 substitutions on 1 line0123456789ABCDEFabcdef~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=1[^0-9A-Fa-f]//g 60 substitutions on 1 line0123456789ABCDEFabcdef~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé:s/\%#=2[^0-9A-Fa-f]//g 60 substitutions on 1 line0123456789ABCDEFabcdef~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=0\w//g 36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé:s/\%#=1\w//g 36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=2\w//g 36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé:s/\%#=0[0-9A-Za-z_]//g 36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1[0-9A-Za-z_]//g 36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2[0-9A-Za-z_]//g 36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0\W//g 46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1\W//g 46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2\W//g 46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0[^0-9A-Za-z_]//g 46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1[^0-9A-Za-z_]//g 46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2[^0-9A-Za-z_]//g 46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0\h//g 26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1\h//g 26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2\h//g 26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0[A-Za-z_]//g 26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1[A-Za-z_]//g 26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2[A-Za-z_]//g 26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0\H//g 56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1\H//g 56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2\H//g 56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0[^A-Za-z_]//g 56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1[^A-Za-z_]//g 56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2[^A-Za-z_]//g 56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0\a//g 25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1\a//g 25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2\a//g 25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0[A-Za-z]//g 25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1[A-Za-z]//g 25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2[A-Za-z]//g 25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[¦±¼ÇÓé~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0\A//g 57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1\A//g 57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2\A//g 57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0[^A-Za-z]//g 57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1[^A-Za-z]//g 57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2[^A-Za-z]//g 57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0\l//g 13 substitutions on 1 line{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1\l//g 13 substitutions on 1 line{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2\l//g 13 substitutions on 1 line{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0[a-z]//g 13 substitutions on 1 line{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1[a-z]//g 13 substitutions on 1 line{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2[a-z]//g 13 substitutions on 1 line{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0\L//g 69 substitutions on 1 lineabcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1\L//g 69 substitutions on 1 lineabcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2\L//g 69 substitutions on 1 lineabcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0[^a-z]//g 69 substitutions on 1 lineabcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1[^a-z]//g 69 substitutions on 1 lineabcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2[^a-z]//g 69 substitutions on 1 lineabcdefghiwxyz~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=0\u//g 12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1\u//g 12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ~ :s/\%#=2\u//g 12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=0[A-Z]//g 12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=1[A-Z]//g 12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=2[A-Z]//g 12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=0\U//g 70 substitutions on 1 lineABCDEFGHIXYZ~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé:s/\%#=1\U//g 70 substitutions on 1 lineABCDEFGHIXYZ~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé~ :s/\%#=2\U//g 70 substitutions on 1 lineABCDEFGHIXYZ~ ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé:s/\%#=0[^A-Z]//g 70 substitutions on 1 lineABCDEFGHIXYZ~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=1[^A-Z]//g 70 substitutions on 1 lineABCDEFGHIXYZ~  ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé :s/\%#=2[^A-Z]//g 70 substitutions on 1 lineABCDEFGHIXYZ~:/^start-here/+1,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 96 lines, 4032 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test37.failed test.ok test.out X* viminfo cp test37.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test37.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test37.in" 116 lines, 3262 charactersTest for 'scrollbind'. Do not add a line below! STARTTEST :so small.vim :set noscrollbind :set scrollopt=ver,jump :set scrolloff=2 :set nowrap :set noequalalways :set splitbelow :" TEST using two windows open to one buffer, one extra empty window :split :new ^Wt: :resize 8 /^start of window 1$/ zt: :set scrollbind ^Wj: :resize 7 /^start of window 2$/ zt: :set scrollbind :" -- start of tests --:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for 'scrollbind'. Do not add a line below!/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 72 lines, 1498 characters written:set ff& cpo+=A /ENDTESTHk^WtH^WjHyy^Wbp^Wtyy^Wbp: ^Wt:set noscb ggL^Wj:set noscb ggL:set scb ^Wt:set scb ^WtG^WjG^Wt:syncbind Hk^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp: ^WtH3k^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp: :" ***** done with tests ***** :w! test.out" Write contents of this file :qa! ENDTEST start of window 1 . line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01 . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 . line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03 . line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04 . line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05 . line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 . line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 . line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08 :so! Xdotest :so small.vim :set noscrollbind :set scrollopt=ver,jump :set scrolloff=2 :set nowrap :set noequalalways :set splitbelow :" TEST using two windows open to one buffer, one extra empty window :split :" ***** done with tests ***** :w! test.out " Write contents of this file :qa!ENDTESTstart of window 1. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01 . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 . line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03test37.in ^WtH3k^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp: :" ***** done with tests ***** :w! test.out" Write contents of this file :qa!ENDTESTstart of window 1112233 test37.in :new :qa!ENDTESTstart of window 1 test37.in ~~~~ [No Name]test37.in [No Name] ::resize 8 w! test.out " Write contents of this file :qa!ENDTESTstart of window 1 . line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0122 test37.in Test for 'scrollbind'. Do not add a line below! STARTTESTso small.vim :set noscrollbind :set scrollopt=ver,jump :set scrolloff=2 :set nowrap/^start of window 1$/ . line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03 . line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04 . line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05::set scrollbind test37.in :w! test.out " Write contents of this file:qa!ENDTESTstart of window 1 . line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01 test37.in ::resize 7 /^start of window 2$/ end of window 1start of window 2 . line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01 . line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 023 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04::set scrollbind :" -- start of tests -- :" TEST scrolling down  . line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 . line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 . line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08 . line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09 . line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10 . line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05 . line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 . line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07 . line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08 . line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09test37.in [No Name]  . line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+]0test37.in [No Name] [+] test37.in [No Name] [+]  . line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05 1test37.in [No Name] [+]  . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 . line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12 . line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13 . line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14 . line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15 end of window 1 . line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10 . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12 . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13 . line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15test37.in [No Name] [+]  . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 2test37.in [No Name] [+] test37.in [No Name] [+]  . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 3 ::" TEST scrolling up test37.in [No Name] [+]  . line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04 . line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05 . line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 . line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 . line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900test37.in test37.in test37.in test37.in test37.in [No Name] [+] . line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 4test37.in [No Name] [+] test37.in [No Name] [+] . line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 5test37.in [No Name] [+] start of window 1 . line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01 . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 . line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03start of window 2 . line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01 . line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02 . line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03 test37.in test37.in test37.in test37.in test37.in [No Name] [+] . line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02 6test37.in [No Name] [+] test37.in [No Name] [+] . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 7 ::" TEST horizontal scrolling :set scrollopt+=hor 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05 2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 114 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02 7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02test37.in [No Name] [+]  156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06test37.in [No Name] [+] 56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02test37.in [No Name] [+] test37.in [No Name] [+] UTSRQPONMLKJIHGREDCBA9876543210 02 :test37.in [No Name] [+] 56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415. line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09 . line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10 . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 . line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12 . line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13 . line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14 . line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15 end of window 1 . line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09 . line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10 . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12 . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13 . line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15test37.in [No Name] [+] . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11test37.in [No Name] [+]  test37.in [No Name] [+] . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 ::set scrollopt-=hor :" ****** tests using two different buffers ***** test37.in [No Name] [+] test37.in test37.in ::close start of window 20000000000::set noscrollbind :/^start of window 2$/,/^end of window 2$/y 18 lines yanked:new 8809090011223344 test37.in ~~~~~~~ [No Name]test37.in [No Name] test37.in [No Name] 4 more lines[+] 18 more linesstart of window 2 . line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01 . line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02:test37.in [No Name] [+] /^start of window 1$/ search hit BOTTOM, continuing at TOPENDTESTstart of window 1010102020303 . line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04::set scrollbind test37.in [No Name] [+] :/^start of window 2$/ search hit BOTTOM, continuing at TOP. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03 . line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04 . line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05::set scrollbind :" -- start of tests -- :" TEST scrolling down  . line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05 . line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 . line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 . line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08 . line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09 . line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 . line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07 . line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08 . line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09 . line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10[No Name] [+] [No Name] [+] . line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05 0test37.in [No Name] [+] test37.in [No Name] [+] . line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05 1test37.in [No Name] [+]  . line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10 . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 . line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12 . line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13 . line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14 . line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15 . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12 . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13 . line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16test37.in [No Name] [+] . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 2[No Name] [+] [No Name] [+] [No Name] [+] [No Name] [+] . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 3 ::" TEST scrolling up test37.in [No Name] [+] 440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04 . line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05 . line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 . line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07 . line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08test37.in [No Name] [+] test37.in [No Name] [+] test37.in [No Name] [+] . line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 4[No Name] [+] [No Name] [+] [No Name] [+] [No Name] [+] . line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 5[No Name] [+] [No Name] [+] start of window 1 . line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01 . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 . line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03start of window 2 . line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01 . line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02 . line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03 test37.in [No Name] [+] test37.in [No Name] [+] [No Name] [+] [No Name] [+] . line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02 6test37.in [No Name] [+] test37.in [No Name] [+] . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 7 ::" TEST horizontal scrolling :set scrollopt+=hor 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05 2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 113 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 46 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 56 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02 7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 test37.in [No Name] [+]  156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07test37.in [No Name] [+] 56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[No Name] [+] [No Name] [+] [No Name] [+] [No Name] [+] UTSRQPONMLKJIHGREDCBA9876543210 02 :[No Name] [+] [No Name] [+] 56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415 UTSRQPONMLKJIHGREDCBA9876543210 0910111213141516. line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09 . line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10 . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 . line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12 . line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13 . line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14 . line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15 . line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09 . line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10 . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12 . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13 . line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[No Name] [+] [No Name] [+] . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11test37.in [No Name] [+]  test37.in [No Name] [+] . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 ::set scrollopt-=hor :" TEST syncbind test37.in [No Name] [+] :set noscb Test for 'scrollbind'. Do not add a line below! STARTTEST:so small.vim:set noscrollbind:set scrollopt=ver,jump:set scrolloff=2:set nowrap test37.in [No Name] [+] :set noscb start of window 201010202:set scb test37.in [No Name] [+] :set scb . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16 end of window 2end of test37.in (please don't delete this line) end of window 2 ~ ~ ~ ~~~~zt::set scrollbind:" -- start of tests --:" TEST scrolling downL5jHyy^Wbpr0^WtHyy^Wbpr1^WtL6jHyy^Wbpr2^WkHyy^Wbpr3: :" TEST scrolling up ^WtH4k^WjH^WtHyy^Wbpr4^WkHyy^Wbpr5^Wk3k^WtH^WjHyy^Wbpr6^WtHyy^Wbpr7: test37.in . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[No Name] [+] :syncbind /^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14test37.in [No Name] [+] test37.in [No Name] [+] [No Name] [+] [No Name] [+] . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16 test37.in [No Name] [+] test37.in [No Name] [+] :set scrollbind :test37.in [No Name] [+] :set noscb Test for 'scrollbind'. Do not add a line below! STARTTEST :so small.vimset noscrollbindset scrollopt=ver,jump :set scrolloff=2set nowrap test37.in [No Name] [+] :set noscb start of window 2 . line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01 . line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02:set scb test37.in [No Name] [+] :set scb . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16 end of window 2end of test37.in (please don't delete this line) end of window 2 ~ ~ ~ ~~~~zt::set scrollbind:" -- start of tests --:" TEST scrolling downL5jHyy^Wbpr0^WtHyy^Wbpr1^WtL6jHyy^Wbpr2^WkHyy^Wbpr3: :" TEST scrolling up ^WtH4k^WjH^WtHyy^Wbpr4^WkHyy^Wbpr5^Wk3k^WtH^WjHyy^Wbpr6^WtHyy^Wbpr7: test37.in . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[No Name] [+] test37.in [No Name] [+] :syncbind /^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14test37.in [No Name] [+] test37.in [No Name] [+] test37.in [No Name] [+] :set scrollbind test37.in [No Name] [+] test37.in [No Name] [+] [No Name] [+] [No Name] [+] . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16 :test37.in [No Name] [+]  zt: :set scrollbind ^Wj: :resize 7. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10 . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12 . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13test37.in [No Name] [+] test37.in [No Name] [+] test37.in [No Name] [+] ^Wj: test37.in [No Name] [+] test37.in [No Name] [+] [No Name] [+] [No Name] [+] . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12 ::" ***** done with tests ***** :w! test.out " Write contents of this file "test.out" [New File] 33 lines, 1329 characters writtentest.out :qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test38.failed test.ok test.out X* viminfo cp test38.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test38.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test38.in" 35 lines, 455 charactersTest Virtual replace mode. STARTTEST :so small.vim :" make sure that backspace works, no matter what termcap is used :set t_kD=^Vx7f t_kb=^Vx08 ggdGa abcdefghi jk lmn opq rst ^Duvwxyz ^[gg:set ai :set bs=2 gR0^D 1 A BCDEFGHIJKL MNO PQR^[G:ka o0^D abcdefghi jk lmn:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 29 lines, 407 characters written:set ff& cpo+=A /ENDTEST opq rst ^Duvwxyz ^['ajgR0^D 1 A BCDEFGHIJKL MNO PQR^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^[:$ iab cdefghi jkl^[0gRAB......CDEFGHI.J^[o^[: iabcdefghijklmnopqrst^[0gRAB IJKLMNO QR^[:wq! test.out ENDTEST  :so! Xdotest :so small.vim :" make sure that backspace works, no matter what termcap is used :set t_kD=^^? t_kb=^^H ^[gg:set ai :set bs=2 gR0^D 1 A BCDEFGHIJKL MNO PQR^[G:ka o0^D abcdefghi jk lmn opq rst ^Duvwxyz ^['ajgR0^D 1 A BCDEFGHIJKL MNO PQR^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^[:$ iab cdefghi jkl^[0gRAB......CDEFGHI.J^[o^[: iabcdefghijklmnopqrst^[0gRAB IJKLMNO QR^[:wq! test.out ENDTEST Test Virtual replace mode. STARTTEST :so small.vim :" make sure that backspace works, no matter what termcap is used :set t_kD=^Vx7f t_kb=^Vx08 ggdGa abcdefghi jk lmn opq rst ^Duvwxyz~ ~~~~~~~~~~~~~ ~~~~~~~~ --No lines in buffer-- abcdefghi jk lmn opq rst uvwxyz:set ai :set bs=2  1 A BCDEFGHIJ KL MNOPQR:ka abcdefghi jk lmn opq rst uvwxyz 1:$ ab cdefghi jkl AB......CDEFGHI.J:abcdefghijklmnopqrst AB IJKLMNO QR:wq! test.out "test.out" [New File] 13 lines, 107 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test39.failed test.ok test.out X* viminfo cp test39.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test39.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test39.in" 93 lines, 1955 charactersTest Visual block mode commands And test "U" in Visual mode, also on German sharp S. STARTTEST :so small.vim :so mbyte.vim :" This only works when 'encoding' is "latin1", don't depend on the environment :set enc=latin1 /^abcde :" Test shift-right of a block jllll^Vjj>wll^Vjlll> :" Test shift-left of a block G$hhhh^Vkk< :" Test block-insert Gkl^VkkkIxyz^[ :" Test block-replace Gllll^Vkkklllrq :" Test block-change G$khhh^Vhhkkcmno^[ :$-4,$w! test.out :" Test block-insert using cursor keys for movement /^aaaa/:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 63 lines, 1695 characters written:set ff& cpo+=A /ENDTESTG3o123456789^[2k05l^V2jr^MG3o98765^[2k02l^V2jr^V^M G3o123456789^[2k05l^V2jr G3o98765^[2k02l^V2jr^V :" :" Test cursor position. When ve=block and Visual block mode and $gj :set ve=block :exe ":norm! 2k\$gj\" :let cpos=getpos("'>") :$put ='col:'.cpos[2].' off:'.cpos[3] :/^the/,$w >> test.out :qa! ENDTESTline1line2line3 aaaaaa bbbbbb cccccc dddddd A23 :so! Xdotest :so small.vim :so mbyte.vim :" This only works when 'encoding' is "latin1", don't depend on the environment :set enc=latin1 G3o123456789^[2k05l^V2jr^MG3o98765^[2k02l^V2jr^V^M G3o123456789^[2k05l^V2jr G3o98765^[2k02l^V2jr^V :" :" Test cursor position. When ve=block and Visual block mode and $gj :set ve=block :exe ":norm! 2k\$gj\" :let cpos=getpos("'>") :$put ='col:'.cpos[2].' off:'.cpos[3] :/^the/,$w >> test.out :qa! ENDTESTline1line2line3 aaaaaa bbbbbb cccccc dddddd A23/^abcde 4567B23 4567 C23 4567 abcdefghijklm :" Test shift-right of a block  abcdefghijklmabcd e abcdefghijklm abcd e abcdefghijklm abcd 3 lines >ed 1 time efghijklm abcd efghijklm abcd efghijklm efghgihji ghijklm ghijklm:" Test shift-left of a block  abcdefghijklmi  3 lines jjjlllI\\ \"  aaa bbb bbb ccc ccc ddd ddd:/^aa/,/^$/w >> test.out search hit BOTTOM, continuing at TOP "test.out" 5 lines, 37 characters appended:" Test for Visual block was created with the last $ /^A23$/ :exe ":norm! l\j$Aab\" ab 4567ab:.,/^$/w >> test.out "test.out" 3 lines, 14 characters appended:" Test for Visual block was created with the middle $ (1) /^B23$/ :exe ":norm! l\j$hAab\" ab 4567ab:.,/^$/w >> test.out "test.out" 3 lines, 15 characters appended:" Test for Visual block was created with the middle $ (2) /^C23$/ :exe ":norm! l\j$hhAab\" ab 456ab7:.,/^$/w >> test.out "test.out" 3 lines, 14 characters appended:" Test for Visual block insert when virtualedit=all :set ve=all :/\t\tline search hit BOTTOM, continuing at TOP:exe ":norm! 07l\jjIx\" xxx:set ve= :.,/^$/w >> test.out "test.out" 4 lines, 49 characters appended:" gUe must uppercase a whole word, also when ß changes to SS  the youtußeuu end the youtußeuu end the YOUTUSSEUU end the the :" gUfx must uppercase until x, inclusive.  - youßtußexu - - yOUSSTUSSEXu - - y the youtußeuu end :" VU must uppercase a whole line  the youtußeuu endthe youtußeuu end THE YOUTUSSEUU END :" same, when it's the last line in the buffer  the youtußeuu end111the youtußeuu end 11 111the youtußeuu end 11 111THE YOUTUSSEUU END ~111THE YOUTUSSEUU END the youtußeuu end :" Uppercase two lines  blah didoh dut doh dut blah di t BLAH DIDOH DUT the youtußeuu end :" Uppercase part of two lines ~ the youtußeuu end the youtußeuu end333the youtußeuu end 33 222the youtußeuu end 222the youtußeuu end 333the youtUTUSSEUU END 333THE YOUTU :" visual replace using Enter or NL  123456789123456789 123456789 1234566789789 12345 789 98765 98765 98765 987 987 98^M65 98^M65 98^M65 98 123456789 123456789 123456789 1234566789789 12345 789 98765 98765 98765 987 987 98^@65 98^@65 98^@65 :" :" Test cursor position. When ve=block and Visual block mode and $gj :set ve=block :exe ":norm! 2k\$gj\" :let cpos=getpos("'>") :$put ='col:'.cpos[2].' off:'.cpos[3] col:4 off:0 :/^the/,$w >> test.out search hit BOTTOM, continuing at TOP "test.out" 27 lines, 244 characters appended:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test40.failed test.ok test.out X* viminfo cp test40.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test40.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test40.in" 63 lines, 1536 charactersTest for "*Cmd" autocommands STARTTEST :so small.vim :/^start/,$w! Xxx" write lines below to Xxx :au BufReadCmd XtestA 0r Xxx|$del :e XtestA" will read text of Xxd instead :au BufWriteCmd XtestA call append(line("$"), "write") :w" will append a line to the file :r XtestA" should not read anything :" now we have: :" 1 start of Xxx :" 2test40 :" 3 end of Xxx :" 4 write :au FileReadCmd XtestB '[r Xxx :2r XtestB" will read Xxx below line 2 instead :" 1 start of Xxx :" 2test40 :" 3 start of Xxx :" 4test40 :" 5 end of Xxx :" 6 end of Xxx:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for "*Cmd" autocommands/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 55 lines, 1455 characters written:set ff& cpo+=A /ENDTEST:$w >>test.out" append "end of Xxx" to test.out :au BufReadCmd XtestE 0r test.out|$del :sp XtestE" split window with test.out 5Goasdf^[^W^W:" :au BufWriteCmd XtestE w! test.out :wall" will write other window to test.out :" 1 start of Xxx :" 2test40 :" 3 start of Xxx :" 4test401 :" 5 end of Xxx :" 6 asdf :" 7 end of Xxx :" 8 write :" 9test401 :" 10 end of Xxx :" 11 end of Xxx :qa! ENDTEST start of Xxxtest40 end of Xxx :so! Xdotest :so small.vim :/^start/,$w! Xxx^I^I" write lines below to Xxx "Xxx" [New File] 3 lines, 32 characters written:au BufReadCmd XtestA 0r Xxx|$del :e XtestA^I^I^I" will read text of Xxd instead "Xxx" 3 lines, 32 charactersstart of Xxx test40end of Xxx~~~~~~~~~~~~~~~~ ~~~~:au BufWriteCmd XtestA call append(line("$"), "write") :w^I^I^I^I" will append a line to the file write:r XtestA^I^I^I" should not read anything E484: Can't open file XtestA:^I^I^I^I" now we have: :^I^I^I^I" 1^Istart of Xxx :^I^I^I^I" 2^I^Itest40 :^I^I^I^I" 3^Iend of Xxx :^I^I^I^I" 4^Iwrite :au FileReadCmd XtestB '[r Xxx :2r XtestB^I^I^I" will read Xxx below line 2 instead "Xxx" 3 lines, 32 charactersstart of Xxxtest40 end of Xxx:^I^I^I^I" 1^Istart of Xxx :^I^I^I^I" 2^I^Itest40 :^I^I^I^I" 3^Istart of Xxx :^I^I^I^I" 4^I^Itest40 :^I^I^I^I" 5^Iend of Xxx :^I^I^I^I" 6^Iend of Xxx :^I^I^I^I" 7^Iwrite :au FileWriteCmd XtestC '[,']copy $ test401:4,5w XtestC^I^I^I" will copy lines 4 and 5 to the end  test401 end of Xxx :r XtestC^I^I^I" should not read anything E484: Can't open file XtestC:^I^I^I^I" 1^Istart of Xxx :^I^I^I^I" 2^I^Itest40 :^I^I^I^I" 3^Istart of Xxx :^I^I^I^I" 4^I^Itest401 :^I^I^I^I" 5^Iend of Xxx :^I^I^I^I" 6^Iend of Xxx :^I^I^I^I" 7^Iwrite :^I^I^I^I" 8^I^Itest401 :^I^I^I^I" 9^Iend of Xxx :au FILEAppendCmd XtestD '[,']w! test.out :w >>XtestD^I^I^I" will write all lines to test.out "test.out" [New File] 9 lines, 91 characters written:$r XtestD^I^I^I" should not read anything E484: Can't open file XtestD:$w >>test.out^I^I^I" append "end of Xxx" to test.out "test.out" 1 line, 11 characters appended:au BufReadCmd XtestE 0r test.out|$del :sp XtestE^I^I^I" split window with test.out "test.out" 10 lines, 102 charactersend of Xxx XtestE start of Xxx test40 start of Xxx test401 end of Xxx end of Xxx write test401 end of Xxx XtestA asdf[+]XtestE [+] XtestA  :" :au BufWriteCmd XtestE w! test.out :wall^I^I^I^I" will write other window to test.out "test.out" 11 lines, 107 characters written :^I^I^I^I" 1^Istart of Xxx :^I^I^I^I" 2^I^Itest40 :^I^I^I^I" 3^Istart of Xxx :^I^I^I^I" 4^I^Itest401 :^I^I^I^I" 5^Iend of Xxx :^I^I^I^I" 6^Iasdf :^I^I^I^I" 7^Iend of Xxx :^I^I^I^I" 8^Iwrite :^I^I^I^I" 9^I^Itest401 :^I^I^I^I" 10^Iend of Xxx :^I^I^I^I" 11^Iend of Xxx :qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test41.failed test.ok test.out X* viminfo cp test41.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test41.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test41.in" 24 lines, 421 charactersTest for writing and reading a file of over 100 Kbyte 1 line: "This is the start" 3001 lines: "This is the leader" 1 line: "This is the middle" 3001 lines: "This is the trailer" 1 line: "This is the end" STARTTEST :%d aThis is the start This is the leader This is the middle This is the trailer This is the end^[kY3000p2GY3000p :w! Xtest :%d :e! Xtest :.w! test.out 3003G:.w >>test.out 6005G:.w >>test.out :qa! ENDTEST:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for writing and reading a file of over 100 Kbyte/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 13 lines, 196 characters written:set ff& cpo+=A /ENDTEST  :so! Xdotest :%d ~~~~~ ~~~~~~~~~~~~~~~~ ~ --No lines in buffer--This is the start This is the leader This is the middle This is the trailer This is the end3000 more linestrailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailerleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader :w! Xtest "Xtest" [New File] 6005 lines, 117092 characters written:%d ~~~~~~~~~~~~~~~~~~~~~~ --No lines in buffer--:e! Xtest "Xtest" 6005 lines, 117092 charactersThis is the start This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader:.w! test.out "test.out" [New File] 1 line, 18 characters writtenThis is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the middle This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer:.w >>test.out "test.out" 1 line, 19 characters appendedThis is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the end :.w >>test.out "test.out" 1 line, 16 characters appended:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test42.failed test.ok test.out X* viminfo cp test42.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test42.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test42.in" 130 lines, 2368 charactersTest for writing and reading a file starting with a BOM STARTTEST :so mbyte.vim :set encoding=utf-8 :set fileencodings=ucs-bom,latin-1 :set ff=unix ffs=unix" This changes the file for DOS and MAC :" --- Write the test files :/^latin-1$/+1w! Xtest0 :/^utf-8$/+1w! Xtest1 :/^utf-8-err$/+1w! Xtest2 :/^ucs-2$/+1w! Xtest3 :/^ucs-2le$/+1w! Xtest4 :" Need to add a NUL byte after the NL byte :set bin :e! Xtest4" Ignore change from setting 'ff' o^V^@^[:set noeol :w :set ffs& nobinary" Allow default test42.in format :e # :set ff=unix" Format for files to write :/^ucs-4$/+1w! Xtest5 :/^ucs-4le$/+1w! Xtest6:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for writing and reading a file starting with a BOM/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 111 lines, 2116 characters written:set ff& cpo+=A /ENDTEST:e! test.out :$r Xtest0x :$r Xtest1x :$r Xtest2x :$r Xtest3x :$r Xtest4x :$r Xtest5x :$r Xtest6x :set nobin ff&" Write the file in default format :w! test.out :qa! ENDTEST latin-1 þþlatin-1 utf-8 utf-8 utf-8-err utf-8~@err ucs-2 þÿ^@u^@c^@s^@-^@2^@ ucs-2le ÿþu^@c^@s^@-^@2^@l^@e^@ :so! Xdotest :so mbyte.vim :set encoding=utf-8 :e! test.out :$r Xtest0x :$r Xtest1x :$r Xtest2x :$r Xtest3x :$r Xtest4x :$r Xtest5x :$r Xtest6x :set nobin ff&" Write the file in default format :w! test.out :qa! ENDTEST latin-1 latin-1 utf-8 utf-8 utf-8-err utf-8<80>err ucs-2 ^@u^@c^@s^@-^@2^@ ucs-2le u^@c^@s^@-^@2^@l^@e^@:set fileencodings=ucs-bom,latin-1 :set ff=unix ffs=unix " This changes the file for DOS and MAC :" --- Write the test files :/^latin-1$/+1w! Xtest0 "Xtest0" [New File] 1 line, 10 characters written:/^utf-8$/+1w! Xtest1 "Xtest1" [New File] 1 line, 9 characters written:/^utf-8-err$/+1w! Xtest2 "Xtest2" [New File] 1 line, 13 characters written:/^ucs-2$/+1w! Xtest3 "Xtest3" [New File] 1 line, 14 characters written:/^ucs-2le$/+1w! Xtest4 "Xtest4" [New File] 1 line, 17 characters written:" Need to add a NUL byte after the NL byte :set bin :e! Xtest4 " Ignore change from setting 'ff' "Xtest4" 1 line, 17 charactersu^@c^@s^@-^@2^@l^@e^@~~~~~~~~~~~ ~~~~~~~~~~~ ^@ :set noeol :w "Xtest4" [Incomplete last line] 2 lines, 18 characters written:set ffs& nobinary " Allow default test42.in format :e # "test42.in" [converted] 130 lines, 2385 characters:$r Xtest0x:$r Xtest1x :$r Xtest2x :$r Xtest3x :$r Xtest4x :$r Xtest5x :$r Xtest6x :set nobin ff&" Write the file in default format :w! test.out :qa! ENDTESTlatin-1 þþlatin-1 utf-8 utf-8 utf-8-err utf-8<80>err ucs-2 þÿ^@u^@c^@s^@-^@2^@ ucs-2le ÿþu^@c^@s^@-^@2^@l^@e^@ ucs-4:set ff=unix " Format for files to write :/^ucs-4$/+1w! Xtest5 "Xtest5" [converted][New File] 1 line, 30 characters written:/^ucs-4le$/+1w! Xtest6 "Xtest6" [converted][New File] 1 line, 35 characters written:" Need to add three NUL bytes after the NL byte :set bin :e! Xtest6 " ! for when setting 'ff' is a change "Xtest6" 1 line, 33 characters^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@~~~~~~~~~~ ~~~~~~~~~~~~ ~ ^@^@^@:set noeol :w "Xtest6" [Incomplete last line] 2 lines, 36 characters written:set nobin :e # "test42.in" [converted] 130 lines, 2385 characters:$r Xtest0x:$r Xtest1x :$r Xtest2x :$r Xtest3x :$r Xtest4x :$r Xtest5x :$r Xtest6x :set nobin ff&" Write the file in default format :w! test.out :qa! ENDTESTlatin-1 þþlatin-1 utf-8 utf-8 utf-8-err utf-8<80>err ucs-2 þÿ^@u^@c^@s^@-^@2^@ ucs-2le ÿþu^@c^@s^@-^@2^@l^@e^@ ucs-4:" :" --- Check that editing a latin-1 file doesn't see a BOM :e! Xtest0 "Xtest0" [converted] 1 line, 12 charactersþþlatin-1~~~~~~~~~~ ~~~~~~~~~~~~:redir! >test.out :set fileencoding bomb?  fileencoding=latin1 nobomb Press ENTER or type command to continue:redir END þþlatin-1 ~:set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 12 characters appended:set bomb fenc=latin-1 :w! Xtest0x "Xtest0x" [converted][New File] 1 line, 12 characters written:" :" --- Check utf-8 :e! Xtest1 "Xtest1" 1 line, 9 charactersutf-8:redir >>test.out :set fileencoding bomb?  fileencoding=utf-8 bomb Press ENTER or type command to continue:redir END utf-8 ~:set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 6 characters appended:set fenc=utf-8 :w! Xtest1x "Xtest1x" [New File] 1 line, 9 characters written:" :" --- Check utf-8 with an error (will fall back to latin-1) :e! Xtest2 "Xtest2" [converted] 1 line, 17 charactersutf-8<80>err :redir >>test.out :set fileencoding bomb?  fileencoding=latin1 nobomb Press ENTER or type command to continue:redir END utf-8<80>err ~:set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 17 characters appended:set fenc=utf-8 :w! Xtest2x "Xtest2x" [New File] 1 line, 17 characters written:" :" --- Check ucs-2 :e! Xtest3 "Xtest3" [converted] 1 line, 8 charactersucs-2:redir >>test.out :set fileencoding bomb?  fileencoding=utf-16 bomb Press ENTER or type command to continue:redir END ucs-2 ~:set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 6 characters appended:set fenc=ucs-2 :w! Xtest3x "Xtest3x" [converted][New File] 1 line, 8 characters written:" :" --- Check ucs-2le :e! Xtest4 "Xtest4" [converted] 1 line, 10 charactersle :redir >>test.out :set fileencoding bomb?  fileencoding=utf-16le bomb Press ENTER or type command to continue:redir END ucs-2le ~:set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 8 characters appended:set fenc=ucs-2le :w! Xtest4x "Xtest4x" [converted][New File] 1 line, 10 characters written:" :" --- Check ucs-4 :e! Xtest5 "Xtest5" [converted] 1 line, 10 characters4:redir >>test.out :set fileencoding bomb?  fileencoding=ucs-4 bomb Press ENTER or type command to continue:redir END ucs-4 ~:set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 6 characters appended:set fenc=ucs-4 :w! Xtest5x "Xtest5x" [converted][New File] 1 line, 10 characters written:" :" --- Check ucs-4le :e! Xtest6 "Xtest6" [converted] 1 line, 12 charactersle :redir >>test.out :set fileencoding bomb?  fileencoding=ucs-4le bomb Press ENTER or type command to continue:redir END ucs-4le ~:set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 8 characters appended:set fenc=ucs-4le :w! Xtest6x "Xtest6x" [converted][New File] 1 line, 12 characters written:" :" --- Check the files written with BOM :set bin :e! test.out "test.out" 35 lines, 275 characters fileencoding=latin1 nobomb latin-1 fileencoding=utf-8 bomb utf-8 fileencoding=latin1 nobomb utf-8<80>err fileencoding=utf-16 bomb ucs-2 fileencoding=utf-16le:$r Xtest0x "Xtest0x" 1 line, 10 characters bombucs-2lefileencoding=ucs-4 bomb ucs-4fileencoding=ucs-4le bomb ucs-4le latin-1 :$r Xtest1x "Xtest1x" 1 line, 9 characters utf-8 :$r Xtest2x "Xtest2x" 1 line, 17 characters utf-8<80>err :$r Xtest3x "Xtest3x" 1 line, 14 characters ^@u^@c^@s^@-^@2^@ :$r Xtest4x "Xtest4x" [Incomplete last line] 2 lines, 18 characters u^@c^@s^@-^@2^@l^@e^@ :$r Xtest5x "Xtest5x" 1 line, 28 characters^@^@^@^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@ :$r Xtest6x "Xtest6x" [Incomplete last line] 2 lines, 36 characters ^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@ :set nobin ff& " Write the file in default format :w! test.out "test.out" 44 lines, 409 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test43.failed test.ok test.out X* viminfo cp test43.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test43.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test43.in" 34 lines, 473 charactersTests for regexp with various magic settings. STARTTEST :so small.vim :set nocompatible viminfo+=nviminfo /^1 /a*b\{2}c\+/e x/\Md\*e\{2}f\+/e x:set nomagic /g\*h\{2}i\+/e x/\mj*k\{2}l\+/e x/\vm*n{2}o+/e x/\V^aa$ x:set magic /\v(a)(b)\2\1\1/e x/\V[ab]\(\[xy]\)\1 x:$ :set undolevels=100 dv?bar? Yup:" :?^1?,$w! test.out :qa! ENDTEST:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for regexp with various magic settings./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 19 lines, 268 characters written:set ff& cpo+=A /ENDTEST  :so! Xdotest :so small.vim :set nocompatible viminfo+=nviminfo /^1 1 a aa abb abbccc /a*b\{2}c\+/e /\Md\*e\{2}f\+/e 2 d dd dee deefff :set nomagic /g\*h\{2}i\+/e 3 g gg ghh ghhiii /\mj*k\{2}l\+/e 4 j jj jkk jkklll /\vm*n{2}o+/e 5 m mm mnn mnnooo /\V^aa$ 6 x ^aa$ x 6 x aa$ x :set magic /\v(a)(b)\2\1\1/e 7 (a)(b) abbaa /\V[ab]\(\[xy]\)\1 8 axx [ab]xab]x :$ 9 foobar :set undolevels=100 ?bar? ~ 1 more line; before #2 0 seconds agobar 9 foo :" :?^1?,$w! test.out "test.out" [New] 11L, 137C written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test44.failed test.ok test.out X* viminfo cp test44.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test44.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test44.in" 68 lines, 2601 charactersTests for regexp with multi-byte encoding and various magic settings. Test matchstr() with a count and multi-byte chars. See test99 for exactly the same test with re=2. STARTTEST :so mbyte.vim :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo :set re=1 /^1 /a*b\{2}c\+/e x/\Md\*e\{2}f\+/e x:set nomagic /g\*h\{2}i\+/e x/\mj*k\{2}l\+/e x/\vm*n{2}o+/e x/\V^aa$ x:set magic /\v(a)(b)\2\1\1/e x/\V[ab]\(\[xy]\)\1 x:" Now search for multi-byte without composing char /ม x:" Now search for multi-byte with composing char /มà¹~H:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for regexp with multi-byte encoding and various magic settings./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 41 lines, 1362 characters written:set ff& cpo+=A /ENDTESTx?. x:let @w=':%s#comb[i]nations#Å~SÌ~Dá¹£Ì~AmÌ¥Ì~DαÌ~DÌ~FÌ~A#g' :@w :?^1?,$w! test.out :e! test.out G:put =matchstr(\"×~P×~Q×~R×~S\", \".\", 0, 2) " ×~Q :put =matchstr(\"×~P×~Q×~R×~S\", \"..\", 0, 2) " ×~Q×~R :put =matchstr(\"×~P×~Q×~R×~S\", \".\", 0, 0) " ×~P :put =matchstr(\"×~P×~Q×~R×~S\", \".\", 4, -1) " ×~R :w! :qa! ENDTEST 1 a aa abb abbccc 2 d dd dee deefff 3 g gg ghh ghhiii 4 j jj jkk jkklll 5 m mm mnn mnnooo 6 x ^aa$ x 7 (a)(b) abbaa 8 axx [ab]xx 9 หมà¹~Hx อมx a อมx หมà¹~Hx :so! Xdotest :so mbyte.vim :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo x?. x:let @w=':%s#comb[i]nations#¿¿m¿#g' :@w :?^1?,$w! test.out :e! test.out G:put =matchstr(\"¿¿¿¿\", \".\", 0, 2) " ¿ :put =matchstr(\"¿¿¿¿\", \"..\", 0, 2) " ¿¿ :put =matchstr(\"¿¿¿¿\", \".\", 0, 0) " ¿ :put =matchstr(\"¿¿¿¿\", \".\", 4, -1) " ¿ :w! :qa! ENDTEST 1 a aa abb abbccc 2 d dd dee deefff 3 g gg ghh ghhiii 4 j jj jkk jkklll 5 m mm mnn mnnooo 6 x ^aa$ x 7 (a)(b) abbaa 8 axx [ab]xx 9 ¿¿x ¿¿x a ¿¿x ¿¿x:set re=1 /^1 /a*b\{2}c\+/e /\Md\*e\{2}f\+/e :set nomagic /g\*h\{2}i\+/e /\mj*k\{2}l\+/e /\vm*n{2}o+/e /\V^aa$ aa$ x:set magic /\v(a)(b)\2\1\1/e /\V[ab]\(\[xy]\)\1 ab]x:" Now search for multi-byte without composing char /¿ x:" Now search for multi-byte with composing char /¿¿ x:" find word by change of word class /¿?\<¿?¿?\>¿? b ¿?¿?¿?¿?¿?¿?¿? :" Test \%u, [\u] and friends /\%u20ac c x ¬¿xx /[\u4f7f\u5929]\+ d ¿?¿?x¿?x  /\%U12345678 e ¿yy /[\U1234abcd\u1234\uabcd] f ¿zz /\%d21879b g a¿?bbbb / [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I= ]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R =]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e Press ENTER or type command to continue:w! :qa! ENDTEST1 a aa abb abbcc 2 d dd dee deeff 3 g gg ghh ghhii 4 j jj jkk jkkll 5 m mm mnn mnnoo 6 x aa$ x7 (a)(b) abba8 axx ab]xx9 ¿¿x ¿xa ¿¿x ¿xb ¿?¿?¿?c x ¬xd ¿?e y f zg abb h AÀÁÂÃÄÅ¿¿¿¿¿¿¿ B¿¿ CÇ¿¿¿¿ D¿¿¿¿¿ EÈÉÊË¿¿¿¿¿¿¿ F¿ G¿¿¿¿¿¿¿¿ H¿¿¿¿¿ IÌÍÎÏ¿¿¿¿¿¿¿ J¿ K¿¿¿¿ L¿¿¿¿¿¿ M¿¿ NÑ¿¿¿¿¿ OÒÓÔÕÖØ¿¿¿¿¿¿¿¿ P¿¿ Q R¿¿¿¿¿ S¿¿¿¿¿ T¿¿¿¿¿ UÙÚÛÜ¿¿¿¿¿¿¿¿¿ V¿ W¿¿¿¿¿ X¿¿ YÝ¿¿¿¿¿¿ Z¿¿¿¿¿¿ / [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i= ]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r =]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e Press ENTER or type command to continue1 a aa abb abbcc 2 d dd dee deeff 3 g gg ghh ghhii 4 j jj jkk jkkll 5 m mm mnn mnnoo 6 x aa$ x7 (a)(b) abba8 axx ab]xx9 ¿¿x ¿xa ¿¿x ¿xb ¿?¿?¿?c x ¬xd ¿?e y f zg abb h AÀÁÂÃÄÅ¿¿¿¿¿¿¿ B¿¿ CÇ¿¿¿¿ D¿¿¿¿¿ EÈÉÊË¿¿¿¿¿¿¿ F¿ G¿¿¿¿¿¿¿¿ H¿¿¿¿¿ IÌÍÎÏ¿¿¿¿¿¿¿ J¿ K¿¿¿¿ L¿¿¿¿¿¿ M¿¿ NÑ¿¿¿¿¿ OÒÓÔÕÖØ¿¿¿¿¿¿¿¿ P¿¿ Q R¿¿¿¿¿ S¿¿¿¿¿ T¿¿¿¿¿ UÙÚÛÜ¿¿¿¿¿¿¿¿¿ V¿ W¿¿¿¿¿ X¿¿ YÝ¿¿¿¿¿¿ Z¿¿¿¿¿ i aàáâãäå¿¿¿¿¿¿¿ b¿¿ cç¿¿¿¿ d¿¿¿¿¿ eèéêë¿¿¿¿¿¿¿ f¿ g¿¿¿¿¿¿¿¿ h¿¿¿¿¿¿ iìíîï¿¿¿¿¿¿j¿¿ k¿¿¿¿ l¿¿¿¿¿¿ m¿¿ nñ¿¿¿¿¿¿ oòóôõöø¿¿¿¿¿¿¿¿ p¿¿ q r¿¿¿¿¿ s¿¿¿¿¿ t¿¿¿¿¿¿ uùúûü¿¿¿¿¿¿¿¿¿ v¿ w¿¿¿¿¿¿ x¿¿ yýÿ¿¿¿¿¿¿ z¿¿¿¿¿¿ :" Test backwards search from a multi-byte char /x j 0123¿x ?. ¿:let @w=':%s#comb[i]nations#¿¿¿¿mmm¿¿¿#g' :@w k ¿¿m¿ :?^1?,$w! test.out "test.out" [New] 20L, 1011C written:e! test.out "test.out" 20L, 1011C1 a aa abb abbcc 2 d dd dee deeff 3 g gg ghh ghhii 4 j jj jkk jkkll 5 m mm mnn mnnoo 6 x aa$ x7 (a)(b) abba 8 axx ab]xx 9 ¿¿x ¿ a ¿¿x ¿x b ¿?¿?¿? c x ¬x d ¿?x e y f zg abbh AÀÁÂÃÄÅ¿¿¿¿¿¿¿ B¿¿ CÇ¿¿¿¿ D¿¿¿¿¿ EÈÉÊË¿¿¿¿¿¿¿ F¿ G¿¿¿¿¿¿¿¿ H¿¿¿¿¿ IÌÍÎÏ¿¿¿¿¿¿¿ J¿ K¿¿¿¿ L¿¿¿¿¿¿ M¿¿ NÑ¿¿¿¿¿ OÒÓÔÕÖØ¿¿¿¿¿¿¿¿ P¿¿ Q R¿¿¿¿¿ S¿¿¿¿¿ T¿¿¿¿¿ UÙÚÛÜ¿¿¿¿¿¿¿¿¿ V¿ W¿¿¿¿¿ X¿¿ YÝ¿¿¿¿¿¿ Z¿¿¿¿¿i aàáâãäå¿¿¿¿¿¿¿ b¿¿ cç¿¿¿¿ d¿¿¿¿¿ eèéêë¿¿¿¿¿¿¿ f¿ g¿¿¿¿¿¿¿¿ h¿¿¿¿¿¿ iìíîï¿¿¿¿¿¿ j¿¿ k¿¿¿¿ l¿¿¿¿¿¿ m¿¿ nñ¿¿¿¿¿¿ oòóôõöø¿¿¿¿¿¿¿¿ p¿¿ q r¿¿¿¿¿ s¿¿¿¿¿ t¿¿¿¿¿¿ uùúûü¿¿¿¿¿¿¿¿¿ v¿ w¿¿¿¿¿¿ x¿¿ yýÿ¿¿¿¿¿¿ z¿¿¿¿¿ j 012¿ k ¿¿m¿ :put =matchstr(\"¿¿¿¿\", \".\", 0, 2) " ¿ ¿ :put =matchstr(\"¿¿¿¿\", \"..\", 0, 2) " ¿¿ ¿¿ :put =matchstr(\"¿¿¿¿\", \".\", 0, 0) " ¿ ¿ :put =matchstr(\"¿¿¿¿\", \".\", 4, -1) " ¿ ¿ :w! "test.out" 24L, 1025C written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test45.failed test.ok test.out X* viminfo cp test45.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test45.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test45.in" 80 lines, 1824 charactersTests for folding. vim: set ft=vim : STARTTEST :so small.vim :" We also need the +syntax feature here. :if !has("syntax") e! test.ok w! test.out qa! :endif :" basic test if a fold can be created, opened, moving to the end and closed /^1 zf2j:call append("$", "manual " . getline(foldclosed("."))) zo:call append("$", foldclosed(".")) ]z:call append("$", getline(".")) zc:call append("$", getline(foldclosed("."))) :" test folding with markers. :set fdm=marker fdl=1 fdc=3 /^5 :call append("$", "marker " . foldlevel(".")) [z:call append("$", foldlevel(".")) jo{{ ^[r{jj:call append("$", foldlevel(".")) kYpj:call append("$", foldlevel(".")):set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for folding. vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 63 lines, 1691 characters written:set ff& cpo+=A /ENDTEST/bb$ :call append("$", "expr " . foldlevel(".")) /hh$ :call append("$", foldlevel(".")) /ii$ :call append("$", foldlevel(".")) /kk$ :call append("$", foldlevel(".")) :/^last/+1,$w! test.out :delfun Flvl :qa! ENDTEST 1 aa 2 bb 3 cc 4 dd {{{ 5 ee {{{ }}} 6 ff }}} 7 gg 8 hh 9 ii a jj :so! Xdotest :so small.vim :" We also need the +syntax feature here. :if !has("syntax") : e! test.ok : w! test.out : qa! : :endif /bb$ :call append("$", "expr " . foldlevel(".")) /hh$ :call append("$", foldlevel(".")):" basic test if a fold can be created, opened, moving to the end and closed /^1 +-- 3 lines: 1 aa--------------------------------------------------------------4 dd {{{ 5 ee {{{ }}} 6 ff }}} 7 gg8 hh9 ii a jj b kk last:call append("$", "manual " . getline(foldclosed("."))) 1 aa2 bb3 cc4 dd {{{ 5 ee {{{ }}} 6 ff }}} 7 gg 8 hh 9 ii a jj:call append("$", foldclosed("."))  :call append("$", getline(".")) +-- 3 lines: 1 aa--------------------------------------------------------------4 dd {{{ 5 ee {{{ }}} 6 ff }}} 7 gg8 hh9 ii a jj b kk last:call append("$", getline(foldclosed("."))) :" test folding with markers. :set fdm=marker fdl=1 fdc=3  /bb$  :call append("$", "expr " . foldlevel("."))  /hh$  :call append("$", foldlevel("."))  /ii$  :call append("$", foldlevel("."))  /kk$  :call append("$", foldlevel("."))  :/^last/+1,$w! test.out  :delfun Flvl  :qa!  ENDTEST  1 aa 2 bb 3 cc- 4 dd {{{ |- 5 ee {{{ }}} | 6 ff }}}  7 gg  8 hh  9 ii  a jj/^5 :call append("$", "marker " . foldlevel(".")) :call append("$", foldlevel(".")) {{ | 6 ff }}}-{| | | | :call append("$", foldlevel(".")) 6 ff }}}  7 gg  8 hh:call append("$", foldlevel(".")) :" test folding with indent :set fdm=indent sw=2  /^2 b search hit BOTTOM, continuing at TOP - 2 bb |- 3 cc:call append("$", "indent " . foldlevel(".")) :call append("$", foldlevel(".")) :" test syntax folding :set fdm=syntax fdl=0  :syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3 + +-- 8 lines: 4 dd ----------------------------------------------------------a jjb kklastmanual 1 aa-13 cc:syn region Fd1 start="ee" end="ff" fold contained :syn region Fd2 start="gg" end="hh" fold contained :syn region Fd3 start="commentstart" end="commentend" fold contained  1 aa marker 2  1  1  0  indent 2  1:call append("$", "folding " . getline(".")) :call append("$", getline("."))  --4 dd {{{commentstart ||5 ee {{{ }}} ||{{{||6 ff }}} ||6 ff }}}||7 gg ||8 hh ||9 ii ||a jj||b kk ||last ||manual 1 aa ||-1||3 cc commentend- |- | :set fdl=1 + +--- 3 lines: 5 ee --------------------------------------------------------- 6 ff }}}+ +--- 2 lines: 7 gg----------------------------------------------------------9 ii a jj  b kk  lastmanual 1 aa-13 cc1 aamarker 21:call append("$", getline(".")) :set fdl=0 + +-- 8 lines: 4 dd commentstart commentend---------------------------------- a jj b kk last manual 1 aa-13 cc1 aarker 2110indent -4 dd {{{commentstart commentend|-5 ee {{{ }}} ||{{{||6 ff }}} |6 ff }}}|-7 gg ||8 hh |9 iia jjb kklastmanual 1 aa-13 cc :call append("$", foldlevel("."))  :/^last/+1,$w! test.out  :delfun Flvl  :qa!  ENDTEST  1 aa   2 bb   3 cc - 4 dd {{{commentstart commentend |- 5 ee {{{ }}} || {{{ || 6 ff }}} | 6 ff }}} |- 7 gg || 8 hh | 9 ii  a jj  b kk  last  manual 1 aa  -1  3 cc:call append("$", getline(".")) :" test expression folding :fun Flvl() : let l = getline(v:lnum) : if l =~ "bb$" : return 2 : elseif l =~ "gg$" : return "s1" : elseif l =~ "ii$" : return ">2" : elseif l =~ "kk$" : return "0" : endif : return "=" : endfun  :call append("$", foldlevel("."))  :/^last/+1,$w! test.out  :delfun Flvl  :qa!  ENDTEST  1 aa   2 bb   3 cc - 4 dd {{{commentstart commentend |- 5 ee {{{ }}} || {{{:set fdm=expr fde=Flvl() + +-- 11 lines: 2 bb-----------------------------------------------------------b kk last manual 1 aa -1 3 cc 1 aa marker 2  1 10indent 21+ +-- 4 lines: folding 9 ii---------------------------------------------------~~/bb$ search hit BOTTOM, continuing at TOP-- 2 bb|| 3 cc ||4 dd {{{commentstart commentend ||5 ee {{{ }}} ||{{{ ||6 ff }}} ||6 ff }}} ||7 gg|8 hh |+ +--- 2 lines: 9 ii----------------------------------------------------------b kklastmanual 1 aa  -13 cc1 aa:call append("$", "expr " . foldlevel(".")) /hh$ :call append("$", foldlevel(".")) /ii$ -9 ii||a jjb kklastmanual 1 aa-13 cc:call append("$", foldlevel(".")) /kk$ :call append("$", foldlevel(".")) :/^last/+1,$w! test.out "test.out" [New File] 18 lines, 96 characters written:delfun Flvl :qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test46.failed test.ok test.out X* viminfo cp test46.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test46.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test46.in" 27 lines, 431 charactersTests for multi-line regexps with ":s". vim: set ft=vim : STARTTEST :" test if replacing a line break works with a back reference :/^1/,/^2/s/\n\(.\)/ \1/ :" test if inserting a line break works with a back reference :/^3/,/^4/s/\(.\)$/\r\1/ :" test if replacing a line break with another line break works :/^5/,/^6/s/\(\_d\{3}\)/x\1x/ :/^1/,$w! test.out :qa! ENDTEST 1 aa bb cc 2 dd ee 3 ef gh 4 ij 5 a8 8b c9:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for multi-line regexps with ":s". vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 8 lines, 292 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :" test if replacing a line break works with a back reference :/^1/,/^2/s/\n\(.\)/ \1/ 4 substitutions on 1 line1 aa bb cc 2 dd ee9d6 e7 77f xxxxx 4 substitutions on 1 line:" test if inserting a line break works with a back reference :/^3/,/^4/s/\(.\)$/\r\1/ 3 substitutions on 3 linesfgh 4 i j3 substitutions on 3 lines:" test if replacing a line break with another line break works :/^5/,/^6/s/\(\_d\{3}\)/x\1x/ 3 substitutions on 2 linesx8 8xb cx9 9xd 6 ex77x7f 3 substitutions on 2 lines:/^1/,$w! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 13 lines, 70 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test47.failed test.ok test.out X* viminfo cp test47.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test47.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test47.in" 62 lines, 1351 charactersTests for vertical splits and filler lines in diff mode STARTTEST :so small.vim :" Disable the title to avoid xterm keeping the wrong one. :set notitle noicon /^1 yG:new pkdd:w! Xtest ddGpkkrXoxxx^[:w! Xtest2 :file Nop ggoyyy^[jjjozzzz^[ :vert diffsplit Xtest :vert diffsplit Xtest2 :" jump to second window for a moment to have filler line appear at start of :" first window ^W^Wgg^Wpgg:let one = winline() j:let one = one . "-" . winline() j:let one = one . "-" . winline() j:let one = one . "-" . winline() j:let one = one . "-" . winline() j:let one = one . "-" . winline() ^W^Wgg:let two = winline():set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for vertical splits and filler lines in diff mode/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 52 lines, 1250 characters written:set ff& cpo+=A /ENDTEST:diffoff! :windo :bw! :enew :put =range(4,10) :1d _ :vnew :put =range(1,10) :1d _ :windo :diffthis :wincmd h :let w0=line('w0') :enew :put =w0 :.w >> test.out :unlet! one two three w0 :qa! ENDTEST 1 aa 2 bb 3 cc 4 dd 5 ee :so! Xdotest :so small.vim :" Disable the title to avoid xterm keeping the wrong one. :set notitle noicon /^1 5 lines yanked:new ~~~~~~~~~~ [No Name] .w >> test.out :unlet! one two three w0 :qa!ENDTEST1 aa 2 bb 3 cc 4 dd 5 ee test47.in 5 more lines1 aa 2 bb 3 cc 4 dd 5 ee[+] ~:w! Xtest "Xtest" [New File] 5 lines, 25 characters writtenXtest  ~[+] 1 aa Xxxx:w! Xtest2 "Xtest2" [New File] 6 lines, 29 characters written :file Nop "Nop" [Not edited] line 4 of 6 --66%-- col 3Nop yyy[+] 3 X xxzzzz 5 e:vert diffsplit Xtest "Xtest" 5 lines, 25 characters 1 aa |  2 bb|  --------------------------------------|  3 cc|  4 dd |  --------------------------------------|  --------------------------------------|  5 ee|||| --------------------------------------  ~ ~  Xtest  ------------------------------------- 2 bb yyy  3 cc X dd  xxx  zzzz  5 ee 1 aa   ~~Nop [+] :vert diffsplit Xtest2 "Xtest2" 6 lines, 29 characters ------------------------|  2 bb|  ------------------------|  3 cc|  X dd |  xxx |  ------------------------|  5 ee|  1 aa ||| ~ ~  Xtest2  1 aa | 2 bb| ------------------------| 3 cc| 4 dd | ------------------------| ------------------------| 5 ee|||| ------------------------  ~ ~ Xtest  ------------------------ 2 bb yyy  3 cc X dd  xxx  zzzz  5 ee 1 aa   ~~Nop [+] :.w >> test.out :unlet! one two three w0 :qa! ENDTEST 1 aa 2 bb 3 cc 4 dd 5 ee test47.in :" jump to second window for a moment to have filler line appear at start of :" first window Xtest2 Xtest Xtest2 Xtest :let one = winline() :let one = one . "-" . winline() :let one = one . "-" . winline() :let one = one . "-" . winline() :let one = one . "-" . winline() :let one = one . "-" . winline()  Xtest2 Xtest :let two = winline() :let two = two . "-" . winline() :let two = two . "-" . winline() :let two = two . "-" . winline() :let two = two . "-" . winline() Xtest Nop [+] :let three = winline() :let three = three . "-" . winline() :let three = three . "-" . winline() :let three = three . "-" . winline() :let three = three . "-" . winline() :let three = three . "-" . winline() :let three = three . "-" . winline() Nop [+] test47.in :call append("$", one) [+]:call append("$", two) :call append("$", three) :$-2,$w! test.out "test.out" [New File] 3 lines, 36 characters written:" Test that diffing shows correct filler lines :diffoff! -- 2 bb 3 cc X dd xxx 5 ee 1 aa ~ ~ ~ ~ 1 aa 2 bb 3 cc 4 dd 5 ee ~ ~ ~ ~ ~ ~ 2 bbyyy3 ccX ddxxxzzzz5 ee1 aa~~~:windo :bw! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:enew :put =range(4,10) 7 more lines4 5 6 7 8 9 10 :1d _ ~:vnew  ||||||||||||||||||||||~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~  [No Name] 45678910~~~~~~~~~~~~~~~[No Name] [+] :put =range(1,10) 10 more lines1 2 3 4 5 6 7 8 9 10 [+]:1d _ 1 2 3 4 5 6 7 8 9 10 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~  ~ :windo :diffthis  1   2   3   4  5  6  7  8  9 - 10  ~~~~~~~~~~~~ [No Name] [+]  ------------------------------------- ------------------------------------- ------------------------------------- 4 5 6 7 8 9- 10            ~~~~~~~~~~~~[No Name] [+] :wincmd h [No Name] [+] [No Name] [+] :let w0=line('w0') :enew E37: No write since last change (add ! to override):put =w0 123 45678  9 -10 -------------------------------------45678 9-10:.w >> test.out "test.out" 1 line, 2 characters appended:unlet! one two three w0 :qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test48.failed test.ok test.out X* viminfo cp test48.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test48.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test48.in" 78 lines, 1542 charactersThis is a test of 'virtualedit'. STARTTEST :so small.vim :set noswf :set ve=all -dgg :" :" Insert "keyword keyw", ESC, C CTRL-N, shows "keyword ykeyword". :" Repeating CTRL-N fixes it. (Mary Ellen Foster) 2/w C^N^[ :" :" Using "C" then then moves the last remaining character to the next :" line. (Mary Ellen Foster) j^/are C^Mare belong to vim^[ :" :" When past the end of a line that ends in a single character "b" skips :" that word. ^$15lbC7^[ :" :" Make sure 'i' works:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest This is a test of 'virtualedit'./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 57 lines, 1331 characters written:set ff& cpo+=A /ENDTEST:set display= :" :" Test for ^Y/^E due to bad w_virtcol value, reported by :" Roy . ^O^[3li^E^[4li^E^[4li^E <-- should show the name of a noted text editor^[ ^o^[4li^Y^[4li^Y^[4li^Y <-- and its version number^[-dd :" :" Test for yanking and pasting using the small delete register gg/^foo dewve"-p :wq! test.out ENDTEST foo, bar keyword keyw all your base are belong to us 1 2 3 4 5 6 'i' 'C' 'a' 'A' 'D' this is a test this is a test :so! Xdotest :so small.vim :set noswf :set ve=all 61 fewer linesthis is a test "r" a^Vb^Msd abcv6efi.him0kl ~ ~ ~ ~ ~ ~ 61 fewer lines :" :" Insert "keyword keyw", ESC, C CTRL-N, shows "keyword ykeyword". :" Repeating CTRL-N fixes it. (Mary Ellen Foster) /w $Scanning tags. The only matchword:" :" Using "C" then then moves the last remaining character to the next :" line. (Mary Ellen Foster)  /are search hit BOTTOM, continuing at TOP$are belong to vim 1 2 3 4 5 6 'i 'C 'a 'A 'D'this is a test "r"^Vb^Msdabcv6efi.him0kl:" :" When past the end of a line that ends in a single character "b" skips :" that word.  $7:" :" Make sure 'i' works  'i' <-- should be 3 ' ':" :" Make sure 'C' works  'C' $<-- should be 3 ' ':" :" Make sure 'a' works  'a' <-- should be 4 ' ':" :" Make sure 'A' works  'A' <-- should be 0 ' ':" :" Make sure 'D' works  'D' <-- 'D' should be intact:" :" Test for yank bug reported by Mark Waggoner. :set ve=block  aaaaaablock of 4 lines yanked3 more linesa a a  :" :" Test "r" beyond the end of the line :set ve=all /^"r" search hit BOTTOM, continuing at TOP"r" xx<-- should be 'x':" :" Test to make sure 'x' can delete control characters :set display=uhex <16>b<0d>sd <16>b<0d>sdb<0d>sd<0d>sdsdd[This line should contain only the text between the brackets.]:set display= :" :" Test for ^Y/^E due to bad w_virtcol value, reported by :" Roy .   vv ii m <-- should show the name of a noted text editor  66 .. 0 <-- and its version number~  :" :" Test for yanking and pasting using the small delete register /^foo search hit BOTTOM, continuing at TOP, bar, bafoo keyw:wq! test.out "test.out" [New File] 22 lines, 449 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test49.failed test.ok test.out X* viminfo cp test49.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test49.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test49.in" 30 lines, 631 charactersThis is a test of the script language. If after adding a new test, the test output doesn't appear properly in test49.failed, try to add one or more "G"s at the line ending in "test.out" STARTTEST :so small.vim :se nocp nomore viminfo+=nviminfo :lang mess C :so test49.vim GGGGGGGGGGGGGG"rp:.-,$w! test.out :" :" make valgrind happy :redir => funclist :silent func :redir END :for line in split(funclist, "\n") : let name = matchstr(line, 'function \zs[A-Z]\w*\ze(') : if name != '' : exe "delfunc " . name : endif :endfor :for v in keys(g:):set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest This is a test of the script language./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 21 lines, 401 characters written:set ff& cpo+=A /ENDTEST: silent! exe "unlet " . v :endfor :unlet v :qa! ENDTEST  :so! Xdotest :so small.vim :se nocp nomore viminfo+=nviminfo :lang mess C :so test49.vim Error detected while processing function G: line 16: E171: Missing :endif: endwhile *** Test 1: OK (34695) function F() 1 Xpath 1" X: 1 2 let first = 1 3 XloopINIT 2 8 4 while 1 5Xloop 1" X: 2 + 0 * 16 6if first 7Xloop 2" X: 4 + 0 * 32 8let first = 0 9XloopNEXT 10break 11else 12Xloop 4" X: 0 + 0 * 64 13return 14endif 15 endwhile endfunction"/tmp/nvima3iyAw/1"[noeol] 18L, 528C 15 substitutions on 15 lines Pattern not found: ^\s*$ "/tmp/nvima3iyAw/1" 15L, 476C written "test49.in" 30L, 631C function G() 1 Xpath 256" X: 256 + 0 * 2048 2 let first = 1 3 XloopINIT 512 8 4 while 1 5Xloop 1" X: 512 + 0 * 4096 6if first 7Xloop 2" X: 1024 + 0 * 8192 8let first = 0 9XloopNEXT 10break 11else 12Xloop 4" X: 0 + 0 * 16384 13return 14endif 15if 1 " unmatched :if 16 endwhile endfunction"/tmp/nvima3iyAw/2"[noeol] 19L, 588C 16 substitutions on 16 lines Pattern not found: ^\s*$ "/tmp/nvima3iyAw/2" 16L, 534C written "test49.in" 30L, 631C Error detected while processing /tmp/nvima3iyAw/2: line 16: E171: Missing :endif: endwhile *** Test 2: OK (34695) *** Test 3: OK (1384648195) *** Test 4: OK (32883) function F() 1 if 1 2Xpath 1" X: 1 3let loops = 3 4XloopINIT 2 16 5while loops > 0" 3: 2: 1: 6Xloop 1" X: 2 + 2*16 + 0*16*16 7if (loops == 2) 8Xloop 2" X: 4*16 9return 10Xloop 4" X: 0 11endif 12Xloop 8" X: 16 13let loops = loops - 1 14XloopNEXT 15endwhile 16Xpath 8192" X: 0 17 else 18Xpath 16384" X: 0 19 endif endfunction"/tmp/nvima3iyAw/3"[noeol] 22L, 784C 19 substitutions on 19 lines Pattern not found: ^\s*$ "/tmp/nvima3iyAw/3" 19L, 724C written "test49.in" 30L, 631C *** Test 5: OK (32883) "/build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/testdir/test49.vim" [readonly] 9852L, 225436C "/tmp/nvima3iyAw/4" [New] 53L, 1582C written14L, 358C appended26L, 824C appended34L, 986C appended :!echo 'source /tmp/nvima3iyAw/4' >/tmp/nvima3iyAw/5/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/5" 130L, 2431C appended131L, 2456C /tmp/nvima3iyAw/6 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/6"' -S /tmp/nvima3iyAw/5 shell returned 1 "/tmp/nvima3iyAw/6" 21L, 130C /tmp/nvima3iyAw/7 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/7" 16L, 304C appended17L, 329C /tmp/nvima3iyAw/8 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/8"' -c 'breakadd file 8 /tmp/nvima3iyAw/7' -S /tmp/nvima3iyAw/7 shell returned 1 "/tmp/nvima3iyAw/8" 3L, 6C /tmp/nvima3iyAw/9 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/9" 6L, 127C appended7L, 152C /tmp/nvima3iyAw/10 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/10"' -c 'breakadd file 4 /tmp/nvima3iyAw/9' -S /tmp/nvima3iyAw/9 shell returned 1 "/tmp/nvima3iyAw/10" 1L, 5C /tmp/nvima3iyAw/11 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/11" 21L, 486C appended22L, 511C /tmp/nvima3iyAw/12 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/12"' -c 'breakadd func 7 F' -S /tmp/nvima3iyAw/11 shell returned 1 "/tmp/nvima3iyAw/12" 3L, 18C /tmp/nvima3iyAw/13 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/13" 13L, 364C appended14L, 389C /tmp/nvima3iyAw/14 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/14"' -c 'breakadd func 3 G' -S /tmp/nvima3iyAw/13 shell returned 1 "/tmp/nvima3iyAw/14" 1L, 9C /tmp/nvima3iyAw/15 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/15" 12L, 201C appended13L, 226C /tmp/nvima3iyAw/16 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/16"' -S /tmp/nvima3iyAw/15 shell returned 1 "/tmp/nvima3iyAw/16" 2L, 4C /tmp/nvima3iyAw/17 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/17" 12L, 205C appended13L, 230C /tmp/nvima3iyAw/18 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/18"' -S /tmp/nvima3iyAw/17 shell returned 1 "/tmp/nvima3iyAw/18" 2L, 7C /tmp/nvima3iyAw/19 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/19" 6L, 122C appended7L, 147C /tmp/nvima3iyAw/20 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/20"' -S /tmp/nvima3iyAw/19 shell returned 1 "/tmp/nvima3iyAw/20" 1L, 5C /tmp/nvima3iyAw/21 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/21" 8L, 176C appended9L, 201C /tmp/nvima3iyAw/22 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/22"' -S /tmp/nvima3iyAw/21 shell returned 1 "/tmp/nvima3iyAw/22" 1L, 6C /tmp/nvima3iyAw/23 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/23" 10L, 215C appended11L, 240C /tmp/nvima3iyAw/24 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/24"' -S /tmp/nvima3iyAw/23 shell returned 1 "/tmp/nvima3iyAw/24" 1L, 8C /tmp/nvima3iyAw/25 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/25" 7L, 149C appended8L, 174C8L, 173C written /tmp/nvima3iyAw/26 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/26"' -S /tmp/nvima3iyAw/25 shell returned 1 "/tmp/nvima3iyAw/26" 1L, 9C /tmp/nvima3iyAw/27 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/27" 9L, 135C appended10L, 160C /tmp/nvima3iyAw/28 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/28"' -S /tmp/nvima3iyAw/27 shell returned 1 "/tmp/nvima3iyAw/28" 2L, 4C /tmp/nvima3iyAw/29 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/29" 10L, 155C appended11L, 180C /tmp/nvima3iyAw/30 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/30"' -S /tmp/nvima3iyAw/29 shell returned 1 "/tmp/nvima3iyAw/30" 3L, 8C /tmp/nvima3iyAw/31 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/31" 12L, 204C appended13L, 229C /tmp/nvima3iyAw/32 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/32"' -S /tmp/nvima3iyAw/31 shell returned 1 "/tmp/nvima3iyAw/32" 4L, 18C /tmp/nvima3iyAw/33 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/33" 12L, 214C appended13L, 239C /tmp/nvima3iyAw/34 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/34"' -S /tmp/nvima3iyAw/33 shell returned 1 "/tmp/nvima3iyAw/34" 4L, 22C /tmp/nvima3iyAw/35 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/35" 12L, 211C appended13L, 236C /tmp/nvima3iyAw/36 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/36"' -S /tmp/nvima3iyAw/35 shell returned 1 "/tmp/nvima3iyAw/36" 3L, 22C /tmp/nvima3iyAw/37 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/37" 14L, 263C appended15L, 288C /tmp/nvima3iyAw/38 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/38"' -S /tmp/nvima3iyAw/37 shell returned 1 "/tmp/nvima3iyAw/38" 4L, 34C /tmp/nvima3iyAw/39 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/39" 14L, 277C appended15L, 302C /tmp/nvima3iyAw/40 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/40"' -S /tmp/nvima3iyAw/39 shell returned 1 "/tmp/nvima3iyAw/40" 4L, 40C /tmp/nvima3iyAw/41 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/41" 58L, 1022C appended59L, 1047C /tmp/nvima3iyAw/42 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/42"' -S /tmp/nvima3iyAw/41 shell returned 1 "/tmp/nvima3iyAw/42" 9L, 56C /tmp/nvima3iyAw/43 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/43" 23L, 418C appended24L, 443C /tmp/nvima3iyAw/44 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/44"' -S /tmp/nvima3iyAw/43 shell returned 1 "/tmp/nvima3iyAw/44" 1L, 2C /tmp/nvima3iyAw/45 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/45" 23L, 437C appended24L, 462C /tmp/nvima3iyAw/46 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/46"' -c 'breakadd func 2 Interrupt' -S /tmp/nvima3iyAw/45 shell returned 1 "/tmp/nvima3iyAw/46" 1L, 3C /tmp/nvima3iyAw/47 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/47" 21L, 386C appended22L, 411C /tmp/nvima3iyAw/48 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/48"' -S /tmp/nvima3iyAw/47 shell returned 1 "/tmp/nvima3iyAw/48" 1L, 5C /tmp/nvima3iyAw/49 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/49" 25L, 432C appended26L, 457C /tmp/nvima3iyAw/50 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/50"' -S /tmp/nvima3iyAw/49 shell returned 1 "/tmp/nvima3iyAw/50" 3L, 8C /tmp/nvima3iyAw/51 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/51" 16L, 392C appended17L, 417C /tmp/nvima3iyAw/52 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/52"' -S /tmp/nvima3iyAw/51 shell returned 1 "/tmp/nvima3iyAw/52" 3L, 7C /tmp/nvima3iyAw/56/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/56" 39L, 721C appended40L, 746C /tmp/nvima3iyAw/57 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/57"' -S /tmp/nvima3iyAw/56 shell returned 1 "/tmp/nvima3iyAw/57" 6L, 21C /tmp/nvima3iyAw/58 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/58" 23L, 509C appended24L, 534C /tmp/nvima3iyAw/59 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/59"' -S /tmp/nvima3iyAw/58 shell returned 1 "/tmp/nvima3iyAw/59" 4L, 34C /tmp/nvima3iyAw/60 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/60" 60L, 1101C appended61L, 1126C /tmp/nvima3iyAw/61 :!echo 'q^Mq^Mq^Mq^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreed y|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/t mp/nvima3iyAw/61"' -c 'breakadd func 3 F' -c 'breakadd file 19 /tmp/nvima3iyAw/6 0' -c 'breakadd file 31 /tmp/nvima3iyAw/60' -S /tmp/nvima3iyAw/60 shell returned 1 "/tmp/nvima3iyAw/61" 16L, 89C /tmp/nvima3iyAw/62 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/62" 60L, 1122C appended61L, 1147C /tmp/nvima3iyAw/63 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/63"' -S /tmp/nvima3iyAw/62 shell returned 1 "/tmp/nvima3iyAw/63" 16L, 89C /tmp/nvima3iyAw/64 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/64" 63L, 1288C appended64L, 1313C /tmp/nvima3iyAw/65 :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'd ebuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimRes ult = "/tmp/nvima3iyAw/65"' -c 'breakadd func 16 C' -S /tmp/nvima3iyAw/64 shell returned 1 "/tmp/nvima3iyAw/65" 17L, 127C /tmp/nvima3iyAw/66 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/66" 63L, 1285C appended64L, 1310C /tmp/nvima3iyAw/67 :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'd ebuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimRes ult = "/tmp/nvima3iyAw/67"' -c 'breakadd func 16 B' -S /tmp/nvima3iyAw/66 shell returned 1 "/tmp/nvima3iyAw/67" 17L, 127C /tmp/nvima3iyAw/68 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/68" 66L, 1430C appended67L, 1455C /tmp/nvima3iyAw/69 :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debu ggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/69"' -c 'breakadd func 16 R' -S /tmp/nvima3iyAw/68 shell returned 1 "/tmp/nvima3iyAw/69" 9L, 81C /tmp/nvima3iyAw/70 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/70" 73L, 1488C appended74L, 1513C /tmp/nvima3iyAw/71 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/71"' -c 'breakadd func 16 F' -S /tmp/nvima3iyAw/70 shell returned 1 "/tmp/nvima3iyAw/71" 9L, 81C /tmp/nvima3iyAw/72 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/72" 82L, 1519C appended83L, 1544C /tmp/nvima3iyAw/73 :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'd ebuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimRes ult = "/tmp/nvima3iyAw/73"' -c 'breakadd func 16 E' -S /tmp/nvima3iyAw/72 shell returned 1 "/tmp/nvima3iyAw/73" 8L, 63C /tmp/nvima3iyAw/74 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/74" 83L, 1538C appended84L, 1563C /tmp/nvima3iyAw/75 :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/nvima3iyAw/75"' -c 'breakadd func 16 I' -c 'bre akadd func 22 I' -S /tmp/nvima3iyAw/74 shell returned 1 "/tmp/nvima3iyAw/75" 8L, 63C /tmp/nvima3iyAw/76 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/76" 82L, 1519C appended83L, 1544C /tmp/nvima3iyAw/77 :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'd ebuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimRes ult = "/tmp/nvima3iyAw/77"' -c 'breakadd func 16 T' -S /tmp/nvima3iyAw/76 shell returned 1 "/tmp/nvima3iyAw/77" 8L, 63C /tmp/nvima3iyAw/82/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/82" 2L, 41C appended3L, 66C /tmp/nvima3iyAw/83 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/81' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/83"' -S /tmp/nvim a3iyAw/82 shell returned 1 "/tmp/nvima3iyAw/83" 1L, 2C /tmp/nvima3iyAw/84 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/84" 7L, 115C appended8L, 140C /tmp/nvima3iyAw/85 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/81' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/85"' -S /tmp/nvim a3iyAw/84 shell returned 1 "/tmp/nvima3iyAw/85" 1L, 2C /tmp/nvima3iyAw/86 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/86" 12L, 180C appended13L, 205C /tmp/nvima3iyAw/87 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/81' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/87"' -S /tmp/nvim a3iyAw/86 shell returned 1 "/tmp/nvima3iyAw/87" 2L, 8C /tmp/nvima3iyAw/88 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/88" 8L, 139C appended9L, 164C /tmp/nvima3iyAw/89 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/81' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/89"' -S /tmp/nvim a3iyAw/88 shell returned 1 "/tmp/nvima3iyAw/89" 2L, 11C /tmp/nvima3iyAw/90 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/90" 5L, 87C appended6L, 112C /tmp/nvima3iyAw/91 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/nvima3iyAw/81' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/91"' -c 'break add file 4 /tmp/nvima3iyAw/90' -S /tmp/nvima3iyAw/90 shell returned 1 "/tmp/nvima3iyAw/91" 1L, 7C /tmp/nvima3iyAw/92 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/92" 7L, 189C appended8L, 214C /tmp/nvima3iyAw/93 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/81' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/93"' -S /tmp/nvim a3iyAw/92 shell returned 1 "/tmp/nvima3iyAw/93" 1L, 8C /tmp/nvima3iyAw/94 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/94" 7L, 199C appended8L, 224C8L, 223C written /tmp/nvima3iyAw/95 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/81' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/95"' -S /tmp/nvim a3iyAw/94 shell returned 1 "/tmp/nvima3iyAw/95" 1L, 10C /tmp/nvima3iyAw/97 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/97" 1L, 10C appended2L, 35C2L, 34C written /tmp/nvima3iyAw/98 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/98"' -S /tmp/nvim a3iyAw/97 shell returned 1 "/tmp/nvima3iyAw/98" 0L, 0C /tmp/nvima3iyAw/99 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/99" 3L, 39C appended4L, 64C 3 substitutions on 3 lines "/tmp/nvima3iyAw/99"4L, 61C written /tmp/nvima3iyAw/100 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/100"' -S /tmp/nvi ma3iyAw/99 shell returned 1 "/tmp/nvima3iyAw/100" 0L, 0C /tmp/nvima3iyAw/101 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/101" 4L, 45C appended5L, 70C 4 substitutions on 4 lines "/tmp/nvima3iyAw/101" 5L, 66C written /tmp/nvima3iyAw/102 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/102"' -S /tmp/nvi ma3iyAw/101 shell returned 1 "/tmp/nvima3iyAw/102" 0L, 0C /tmp/nvima3iyAw/103 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/103" 3L, 33C appended4L, 58C 3 substitutions on 3 lines "/tmp/nvima3iyAw/103" 4L, 55C written /tmp/nvima3iyAw/104 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/104"' -S /tmp/nvi ma3iyAw/103 shell returned 1 "/tmp/nvima3iyAw/104" 0L, 0C /tmp/nvima3iyAw/105 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/105" 5L, 65C appended6L, 90C 5 substitutions on 5 lines "/tmp/nvima3iyAw/105" 6L, 85C written /tmp/nvima3iyAw/106 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/106"' -S /tmp/nvi ma3iyAw/105 shell returned 1 "/tmp/nvima3iyAw/106" 0L, 0C /tmp/nvima3iyAw/107 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/107" 1L, 9C appended2L, 34C2L, 33C written /tmp/nvima3iyAw/108 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/108"' -S /tmp/nvi ma3iyAw/107 shell returned 1 "/tmp/nvima3iyAw/108" 0L, 0C /tmp/nvima3iyAw/109 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/109" 3L, 38C appended4L, 63C 3 substitutions on 3 lines "/tmp/nvima3iyAw/109" 4L, 60C written /tmp/nvima3iyAw/110 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/110"' -S /tmp/nvi ma3iyAw/109 shell returned 1 "/tmp/nvima3iyAw/110" 0L, 0C /tmp/nvima3iyAw/111 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/111" 4L, 44C appended5L, 69C 4 substitutions on 4 lines "/tmp/nvima3iyAw/111" 5L, 65C written /tmp/nvima3iyAw/112 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/112"' -S /tmp/nvi ma3iyAw/111 shell returned 1 "/tmp/nvima3iyAw/112" 0L, 0C /tmp/nvima3iyAw/113 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/113" 3L, 32C appended4L, 57C 3 substitutions on 3 lines "/tmp/nvima3iyAw/113" 4L, 54C written /tmp/nvima3iyAw/114 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/114"' -S /tmp/nvi ma3iyAw/113 shell returned 1 "/tmp/nvima3iyAw/114" 0L, 0C /tmp/nvima3iyAw/115 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/115" 5L, 64C appended6L, 89C 5 substitutions on 5 lines "/tmp/nvima3iyAw/115" 6L, 84C written /tmp/nvima3iyAw/116 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/116"' -S /tmp/nvi ma3iyAw/115 shell returned 1 "/tmp/nvima3iyAw/116" 0L, 0C /tmp/nvima3iyAw/117 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/117" 1L, 11C appended2L, 36C2L, 35C written /tmp/nvima3iyAw/118 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/118"' -S /tmp/nvi ma3iyAw/117 shell returned 1 "/tmp/nvima3iyAw/118" 0L, 0C /tmp/nvima3iyAw/119 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/119" 3L, 40C appended4L, 65C 3 substitutions on 3 lines "/tmp/nvima3iyAw/119" 4L, 62C written /tmp/nvima3iyAw/120 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/120"' -S /tmp/nvi ma3iyAw/119 shell returned 1 "/tmp/nvima3iyAw/120" 0L, 0C /tmp/nvima3iyAw/121 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/121" 4L, 46C appended5L, 71C 4 substitutions on 4 lines "/tmp/nvima3iyAw/121" 5L, 67C written /tmp/nvima3iyAw/122 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/122"' -S /tmp/nvi ma3iyAw/121 shell returned 1 "/tmp/nvima3iyAw/122" 0L, 0C /tmp/nvima3iyAw/123 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/123" 3L, 34C appended4L, 59C 3 substitutions on 3 lines "/tmp/nvima3iyAw/123" 4L, 56C written /tmp/nvima3iyAw/124 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/124"' -S /tmp/nvi ma3iyAw/123 shell returned 1 "/tmp/nvima3iyAw/124" 0L, 0C /tmp/nvima3iyAw/125 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/125" 5L, 66C appended6L, 91C 5 substitutions on 5 lines "/tmp/nvima3iyAw/125" 6L, 86C written /tmp/nvima3iyAw/126 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/126"' -S /tmp/nvi ma3iyAw/125 shell returned 1 "/tmp/nvima3iyAw/126" 0L, 0C /tmp/nvima3iyAw/127 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/127" 4L, 37C appended5L, 62C 4 substitutions on 4 lines "/tmp/nvima3iyAw/127" 5L, 58C written /tmp/nvima3iyAw/128 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/128"' -S /tmp/nvi ma3iyAw/127 shell returned 1 "/tmp/nvima3iyAw/128" 0L, 0C /tmp/nvima3iyAw/129 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/129" 4L, 41C appended5L, 66C 4 substitutions on 4 lines "/tmp/nvima3iyAw/129" 5L, 62C written /tmp/nvima3iyAw/130 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/96' -c 'debuggreedy|set viminfo+=nviminfo' -c 'le tExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/130"' -S /tmp/nvi ma3iyAw/129 shell returned 1 "/tmp/nvima3iyAw/130" 0L, 0C /tmp/nvima3iyAw/132 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/132" 1L, 13C appended2L, 38C2L, 37C written /tmp/nvima3iyAw/133 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/131' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/133"' -S /tmp/nv ima3iyAw/132 shell returned 1 "/tmp/nvima3iyAw/133" 0L, 0C /tmp/nvima3iyAw/134 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/134" 3L, 36C appended4L, 61C 3 substitutions on 3 lines "/tmp/nvima3iyAw/134" 4L, 58C written /tmp/nvima3iyAw/135 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/131' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/135"' -S /tmp/nv ima3iyAw/134 shell returned 1 "/tmp/nvima3iyAw/135" 0L, 0C /tmp/nvima3iyAw/136 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/136" 3L, 38C appended4L, 63C 3 substitutions on 3 lines "/tmp/nvima3iyAw/136" 4L, 60C written /tmp/nvima3iyAw/137 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/131' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/137"' -S /tmp/nv ima3iyAw/136 shell returned 1 "/tmp/nvima3iyAw/137" 0L, 0C /tmp/nvima3iyAw/138 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/138" 4L, 48C appended5L, 73C 4 substitutions on 4 lines "/tmp/nvima3iyAw/138" 5L, 69C written /tmp/nvima3iyAw/139 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/131' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/139"' -S /tmp/nv ima3iyAw/138 shell returned 1 "/tmp/nvima3iyAw/139" 0L, 0C /tmp/nvima3iyAw/140 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/140" 4L, 53C appended5L, 78C 4 substitutions on 4 lines "/tmp/nvima3iyAw/140" 5L, 74C written /tmp/nvima3iyAw/141 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/131' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/141"' -S /tmp/nv ima3iyAw/140 shell returned 1 "/tmp/nvima3iyAw/141" 0L, 0C /tmp/nvima3iyAw/142 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/142" 5L, 62C appended6L, 87C 5 substitutions on 5 lines "/tmp/nvima3iyAw/142" 6L, 82C written /tmp/nvima3iyAw/143 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/131' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/143"' -S /tmp/nv ima3iyAw/142 shell returned 1 "/tmp/nvima3iyAw/143" 0L, 0C /tmp/nvima3iyAw/144 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/144" 5L, 64C appended6L, 89C 5 substitutions on 5 lines "/tmp/nvima3iyAw/144" 6L, 84C written /tmp/nvima3iyAw/145 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/131' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/145"' -S /tmp/nv ima3iyAw/144 shell returned 1 "/tmp/nvima3iyAw/145" 0L, 0C /tmp/nvima3iyAw/146 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/146" 3L, 36C appended4L, 61C 3 substitutions on 3 lines "/tmp/nvima3iyAw/146" 4L, 58C written /tmp/nvima3iyAw/147 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/131' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/147"' -S /tmp/nv ima3iyAw/146 shell returned 1 "/tmp/nvima3iyAw/147" 0L, 0C /tmp/nvima3iyAw/148 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/148" 5L, 67C appended6L, 92C 5 substitutions on 5 lines "/tmp/nvima3iyAw/148" 6L, 87C written /tmp/nvima3iyAw/149 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/131' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/149"' -S /tmp/nv ima3iyAw/148 shell returned 1 "/tmp/nvima3iyAw/149" 0L, 0C /tmp/nvima3iyAw/150 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/150" 5L, 68C appended6L, 93C 5 substitutions on 5 lines "/tmp/nvima3iyAw/150" 6L, 88C written /tmp/nvima3iyAw/151 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/131' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/151"' -S /tmp/nv ima3iyAw/150 shell returned 1 "/tmp/nvima3iyAw/151" 0L, 0C /tmp/nvima3iyAw/152 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/152" 7L, 95C appended8L, 120C 7 substitutions on 7 lines "/tmp/nvima3iyAw/152" 8L, 113C written /tmp/nvima3iyAw/153 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/131' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/153"' -S /tmp/nv ima3iyAw/152 shell returned 1 "/tmp/nvima3iyAw/153" 0L, 0C /tmp/nvima3iyAw/155 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/155" 1L, 13C appended2L, 38C2L, 37C written /tmp/nvima3iyAw/156 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/154' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/156"' -S /tmp/nv ima3iyAw/155 shell returned 1 "/tmp/nvima3iyAw/156" 0L, 0C /tmp/nvima3iyAw/157 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/157" 3L, 36C appended4L, 61C 3 substitutions on 3 lines "/tmp/nvima3iyAw/157" 4L, 58C written /tmp/nvima3iyAw/158 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/154' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/158"' -S /tmp/nv ima3iyAw/157 shell returned 1 "/tmp/nvima3iyAw/158" 0L, 0C /tmp/nvima3iyAw/159 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/159" 4L, 48C appended5L, 73C 4 substitutions on 4 lines "/tmp/nvima3iyAw/159" 5L, 69C written /tmp/nvima3iyAw/160 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/154' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/160"' -S /tmp/nv ima3iyAw/159 shell returned 1 "/tmp/nvima3iyAw/160" 0L, 0C /tmp/nvima3iyAw/161 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/161" 3L, 36C appended4L, 61C 3 substitutions on 3 lines "/tmp/nvima3iyAw/161" 4L, 58C written /tmp/nvima3iyAw/162 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/154' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/162"' -S /tmp/nv ima3iyAw/161 shell returned 1 "/tmp/nvima3iyAw/162" 0L, 0C /tmp/nvima3iyAw/163 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/163" 5L, 68C appended6L, 93C 5 substitutions on 5 lines "/tmp/nvima3iyAw/163" 6L, 88C written /tmp/nvima3iyAw/164 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/154' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/164"' -S /tmp/nv ima3iyAw/163 shell returned 1 "/tmp/nvima3iyAw/164" 0L, 0C /tmp/nvima3iyAw/165 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/165" 1L, 10C appended2L, 35C2L, 34C written /tmp/nvima3iyAw/166 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/154' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/166"' -S /tmp/nv ima3iyAw/165 shell returned 1 "/tmp/nvima3iyAw/166" 0L, 0C /tmp/nvima3iyAw/167 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/167" 3L, 33C appended4L, 58C 3 substitutions on 3 lines "/tmp/nvima3iyAw/167" 4L, 55C written /tmp/nvima3iyAw/168 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/154' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/168"' -S /tmp/nv ima3iyAw/167 shell returned 1 "/tmp/nvima3iyAw/168" 0L, 0C /tmp/nvima3iyAw/169 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/169" 4L, 45C appended5L, 70C 4 substitutions on 4 lines "/tmp/nvima3iyAw/169" 5L, 66C written /tmp/nvima3iyAw/170 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/154' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/170"' -S /tmp/nv ima3iyAw/169 shell returned 1 "/tmp/nvima3iyAw/170" 0L, 0C /tmp/nvima3iyAw/171 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/171" 3L, 33C appended4L, 58C 3 substitutions on 3 lines "/tmp/nvima3iyAw/171" 4L, 55C written /tmp/nvima3iyAw/172 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/154' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/172"' -S /tmp/nv ima3iyAw/171 shell returned 1 "/tmp/nvima3iyAw/172" 0L, 0C /tmp/nvima3iyAw/173 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/173" 5L, 65C appended6L, 90C 5 substitutions on 5 lines "/tmp/nvima3iyAw/173" 6L, 85C written /tmp/nvima3iyAw/174 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/154' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/174"' -S /tmp/nv ima3iyAw/173 shell returned 1 "/tmp/nvima3iyAw/174" 0L, 0C /tmp/nvima3iyAw/176 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/176" 1L, 11C appended2L, 36C2L, 35C written /tmp/nvima3iyAw/177 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/175' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/177"' -S /tmp/nv ima3iyAw/176 shell returned 1 "/tmp/nvima3iyAw/177" 0L, 0C /tmp/nvima3iyAw/178 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/178" 3L, 34C appended4L, 59C 3 substitutions on 3 lines "/tmp/nvima3iyAw/178" 4L, 56C written /tmp/nvima3iyAw/179 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/175' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/179"' -S /tmp/nv ima3iyAw/178 shell returned 1 "/tmp/nvima3iyAw/179" 0L, 0C /tmp/nvima3iyAw/180 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/180" 3L, 40C appended4L, 65C 3 substitutions on 3 lines "/tmp/nvima3iyAw/180" 4L, 62C written /tmp/nvima3iyAw/181 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/175' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/181"' -S /tmp/nv ima3iyAw/180 shell returned 1 "/tmp/nvima3iyAw/181" 0L, 0C /tmp/nvima3iyAw/182 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/182" 3L, 32C appended4L, 57C 3 substitutions on 3 lines "/tmp/nvima3iyAw/182" 4L, 54C written /tmp/nvima3iyAw/183 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/175' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/183"' -S /tmp/nv ima3iyAw/182 shell returned 1 "/tmp/nvima3iyAw/183" 0L, 0C /tmp/nvima3iyAw/184 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/184" 3L, 35C appended4L, 60C 3 substitutions on 3 lines "/tmp/nvima3iyAw/184" 4L, 57C written /tmp/nvima3iyAw/185 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/175' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/185"' -S /tmp/nv ima3iyAw/184 shell returned 1 "/tmp/nvima3iyAw/185" 0L, 0C /tmp/nvima3iyAw/186 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/186" 4L, 44C appended5L, 69C 4 substitutions on 4 lines "/tmp/nvima3iyAw/186" 5L, 65C written /tmp/nvima3iyAw/187 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/175' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/187"' -S /tmp/nv ima3iyAw/186 shell returned 1 "/tmp/nvima3iyAw/187" 0L, 0C /tmp/nvima3iyAw/188 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/188" 4L, 47C appended5L, 72C 4 substitutions on 4 lines "/tmp/nvima3iyAw/188" 5L, 68C written /tmp/nvima3iyAw/189 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/175' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/189"' -S /tmp/nv ima3iyAw/188 shell returned 1 "/tmp/nvima3iyAw/189" 0L, 0C /tmp/nvima3iyAw/190 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/190" 5L, 64C appended6L, 89C 5 substitutions on 5 lines "/tmp/nvima3iyAw/190" 6L, 84C written /tmp/nvima3iyAw/191 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/175' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/191"' -S /tmp/nv ima3iyAw/190 shell returned 1 "/tmp/nvima3iyAw/191" 0L, 0C /tmp/nvima3iyAw/192 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/192" 5L, 67C appended6L, 92C 5 substitutions on 5 lines "/tmp/nvima3iyAw/192" 6L, 87C written /tmp/nvima3iyAw/193 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'au VimLeave * redir EN D' -c 'redir! >/tmp/nvima3iyAw/175' -c 'debuggreedy|set viminfo+=nviminfo' -c 'l et ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/193"' -S /tmp/nv ima3iyAw/192 shell returned 1 "/tmp/nvima3iyAw/193" 0L, 0C /tmp/nvima3iyAw/199 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/199" 87L, 1700C appended88L, 1725C /tmp/nvima3iyAw/200 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/200"' -c 'breakadd func 4 T' -S /tmp/nvima3iyAw/199 shell returned 1 "/tmp/nvima3iyAw/200" 8L, 36C /tmp/nvima3iyAw/201 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/201" 293L, 5789C appended294L, 5814C 3 substitutions on 3 lines "/tmp/nvima3iyAw/201" 294L, 5811C written /tmp/nvima3iyAw/202 :!echo 'q^Mq^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvi ma3iyAw/202"' -c 'breakadd file 115 /tmp/nvima3iyAw/201' -c 'breakadd file 225 / tmp/nvima3iyAw/201' -S /tmp/nvima3iyAw/201 shell returned 1 "/tmp/nvima3iyAw/202" 28L, 162C /tmp/nvima3iyAw/203 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/203" 33L, 765C appended34L, 790C /tmp/nvima3iyAw/204 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/204"' -c 'breakadd file 7 /tmp/nvima3iyAw/203' -S /tmp/nvima3iyAw/203 shell returned 1 "/tmp/nvima3iyAw/204" 3L, 27C /tmp/nvima3iyAw/205 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/205" 115L, 2272C appended116L, 2297C /tmp/nvima3iyAw/206 :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debu ggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyAw/206"' -c 'breakadd file 8 /tmp/nvima3iyAw/205' -c 'breakadd file 36 /tmp/nvima3iyAw/205' -c 'breakadd file 40 /tmp/nvima3iyAw/205' -c 'break add file 69 /tmp/nvima3iyAw/205' -c 'breakadd file 95 /tmp/nvima3iyAw/205' -c 'b reakadd file 97 /tmp/nvima3iyAw/205' -S /tmp/nvima3iyAw/205 shell returned 1 "/tmp/nvima3iyAw/206" 14L, 81C /tmp/nvima3iyAw/208 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/208" 149L, 2828C appended150L, 2853C 6 substitutions on 6 lines "/tmp/nvima3iyAw/208" 150L, 2847C written /tmp/nvima3iyAw/209 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/209"' -c 'breakadd file 63 /tmp/nvima3iyAw/208' -S /tmp/nvima3iyAw/208 shell returned 1 "/tmp/nvima3iyAw/209" 16L, 97C /tmp/nvima3iyAw/210 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/210" 78L, 1520C appended79L, 1545C /tmp/nvima3iyAw/211 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/211"' -c 'breakadd func 8 F' -S /tmp/nvima3iyAw/210 shell returned 1 "/tmp/nvima3iyAw/211" 6L, 22C /tmp/nvima3iyAw/214 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/214" 253L, 6369C appended254L, 6394C /tmp/nvima3iyAw/215 :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let Extra VimResult = "/tmp/nvima3iyAw/215"' -c 'breakadd func 2 INT' -S /tmp/nvima3iyAw/2 14 shell returned 1 "/tmp/nvima3iyAw/215" 28L, 167C /tmp/nvima3iyAw/216 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/216" 161L, 4543C appended162L, 4568C /tmp/nvima3iyAw/217 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/217"' -S /tmp/nvima3iyAw/216 shell returned 1 "/tmp/nvima3iyAw/217" 1L, 10C /tmp/nvima3iyAw/218 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/218" 15L, 272C appended16L, 297C16L, 296C written /tmp/nvima3iyAw/219 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/219"' -S /tmp/nvima3iyAw/218 shell returned 1 "/tmp/nvima3iyAw/219" 2L, 4C /tmp/nvima3iyAw/220 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/220" 12L, 227C appended13L, 252C /tmp/nvima3iyAw/221 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/221"' -c 'breakadd file 8 /tmp/nvima3iyAw/220' -S /tmp/nvima3iyAw/220 shell returned 1 "/tmp/nvima3iyAw/221" 2L, 8C /tmp/nvima3iyAw/222 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/222" 20L, 417C appended21L, 442C21L, 441C written /tmp/nvima3iyAw/223 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/223"' -S /tmp/nvima3iyAw/222 shell returned 1 "/tmp/nvima3iyAw/223" 1L, 2C /tmp/nvima3iyAw/224 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/224" 24L, 480C appended25L, 505C25L, 504C written /tmp/nvima3iyAw/225 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/225"' -S /tmp/nvima3iyAw/224 shell returned 1 "/tmp/nvima3iyAw/225" 1L, 4C /tmp/nvima3iyAw/226 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/226" 17L, 390C appended18L, 415C /tmp/nvima3iyAw/227 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/227"' -c 'breakadd file 7 /tmp/nvima3iyAw/226' -S /tmp/nvima3iyAw/226 shell returned 1 "/tmp/nvima3iyAw/227" 1L, 6C /tmp/nvima3iyAw/228 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/228" 21L, 444C appended22L, 469C /tmp/nvima3iyAw/229 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/229"' -c 'breakadd func 6 I' -S /tmp/nvima3iyAw/228 shell returned 1 "/tmp/nvima3iyAw/229" 1L, 8C /tmp/nvima3iyAw/230 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/230" 17L, 307C appended18L, 332C18L, 331C written /tmp/nvima3iyAw/231 :!echo 'q' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminf o+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3iyA w/231"' -S /tmp/nvima3iyAw/230 shell returned 1 "/tmp/nvima3iyAw/231" 3L, 7C /tmp/nvima3iyAw/232 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/232" 14L, 266C appended15L, 291C /tmp/nvima3iyAw/233 :!echo 'q^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set vim info+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvima3 iyAw/233"' -c 'breakadd file 8 /tmp/nvima3iyAw/232' -S /tmp/nvima3iyAw/232 shell returned 1 "/tmp/nvima3iyAw/233" 3L, 13C /tmp/nvima3iyAw/234 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/234" 154L, 3580C appended155L, 3605C /tmp/nvima3iyAw/235 :!echo 'q^Mq^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/nvi ma3iyAw/235"' -c 'breakadd func 1 INT' -S /tmp/nvima3iyAw/234 shell returned 1 "/tmp/nvima3iyAw/235" 18L, 118C /tmp/nvima3iyAw/239 "/tmp/nvima3iyAw/240" [New File] "test49.in" 30L, 631C *** Test 85: OK (198689) line 9612: E123: Undefined function: F *.mak "*.mak" [New File] Cannot open file "*.mak" line 9615: E480: No match: .* line 9616: E193: :endfunction not inside a function Error detected while processing function ExecAsScript..MakeScript: line 3: E123: Undefined function: F "/tmp/nvima3iyAw/241" [noeol] 4L, 106C search hit BOTTOM, continuing at TOP line 10: E486: Pattern not found: .*F(.*) search hit BOTTOM, continuing at TOP line 11: E486: Pattern not found: ^\d*\s*endfunction\> 4 substitutions on 4 lines "/tmp/nvima3iyAw/241" 3L, 106C written "test49.in" 30L, 631C Error detected while processing /tmp/nvima3iyAw/241: line 1: E492: Not an editor command: Error detected while processing function ExecAsScr ipt..MakeScript: line 2: E492: Not an editor command: line 3: line 3: E492: Not an editor command: E123: Undefined function: F Error detected while processing /build/buildd/neovim-0.0.0+897+201407272017~ubu ntu12.04.1/src/nvim/testdir/test49.vim: line 9622: E130: Unknown function: F *** Test 86: OK (0) 5 *** Test 87: OK (0) /tmp/nvima3iyAw/242 /^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/nvima3iyAw/242" 151L, 3929C appended152L, 3954C /tmp/nvima3iyAw/243 :!echo 'q^Mq^Mq^Mq' | ../../../build/bin/nvim -u NONE -N -Xes -c 'debuggreedy|s et viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/ nvima3iyAw/243"' -c 'breakadd func 5 ThrowOnInterrupt' -S /tmp/nvima3iyAw/242 shell returned 1 "/tmp/nvima3iyAw/243" 16L, 281C funclist :silent func :redir END :for line in split(funclist, "\n") : let name = matchstr(line, 'function \zs[A-Z]\w*\ze(') : if name != '' : exe "delfunc " . name : endif :endfor :for v in keys(g:) : silent! exe "unlet " . v :endfor :unlet v :qa! ENDTEST Results of test49.vim: 98 more lines *** Test 1: OK (34695) 98 more lines:.-,$w! test.out "test.out" [New] 99L, 2869C written:" :" make valgrind happy :redir => funclist :silent func :redir END :for line in split(funclist, "\n") : : let name = matchstr(line, 'function \zs[A-Z]\w*\ze(') : : if name != '' : : exe "delfunc " . name : : endif : :endfor :lang mess C :so test49.vim GGGGGGGGGGGGGG"rp:.-,$w! test.out :" :" make valgrind happy :for v in keys(g:) : : silent! exe "unlet " . v : :endfor :lang mess C :so test49.vim :unlet v :qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test51.failed test.ok test.out X* viminfo cp test51.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test51.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test51.in" 36 lines, 808 charactersTests for ":highlight". vim: set ft=vim : STARTTEST :so small.vim :" basic test if ":highlight" doesn't crash :highlight :hi Search :" test setting colors. :" test clearing one color and all doesn't generate error or warning :hi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#00ff00 guibg=Cyan :hi Group2 term= cterm= :hi Group3 term=underline cterm=bold :redir! >test.out :hi NewGroup :hi Group2 :hi Group3 :hi clear NewGroup :hi NewGroup :hi Group2 :hi Group2 NONE :hi Group2 :hi clear:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for ":highlight". vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 31 lines, 746 characters written:set ff& cpo+=A /ENDTEST:hi Group3 :hi Crash term='asdf :redir END :" filter ctermfg and ctermbg, the numbers depend on the terminal :e test.out :%s/ctermfg=\d*/ctermfg=2/ :%s/ctermbg=\d*/ctermbg=3/ :" filter out possibly translated error message :%s/E475: [^:]*:/E475:/ :" fix the fileformat :set ff& :wq! ENDTEST  :so! Xdotest :so small.vim :" basic test if ":highlight" doesn't crash :highlight SpecialKey xxx term=bold ctermfg=1 guifg=Blue NonTextxxx term=bold ctermfg=9 gui=bold guifg=Blue Directory xxx term=bold ctermfg=1 guifg=Blue ErrorMsgxxx term=standout ctermfg=15 ctermbg=4 guifg=White guibg=Red IncSearch xxx term=reverse cterm=reverse gui=reverse Searchxxx term=reverse ctermfg=0 ctermbg=14 guibg=Yellow MoreMsgxxx term=bold ctermfg=2 gui=bold guifg=SeaGreen ModeMsgxxx term=bold cterm=bold gui=bold LineNrxxx term=underline ctermfg=6 guifg=Brown CursorLineNr xxx term=bold ctermfg=6 gui=bold guifg=Brown Questionxxx term=standout ctermfg=2 gui=bold guifg=SeaGreen StatusLine xxx term=bold,reverse cterm=bold,reverse gui=bold,reverse StatusLineNC xxx term=reverse cterm=reverse gui=reverse VertSplit xxx term=reverse cterm=reverse gui=reverse Titlexxx term=bold ctermfg=5 gui=bold guifg=Magenta Visualxxx term=reverse cterm=reverse guibg=LightGrey VisualNOS xxx cleared WarningMsg xxx term=standout ctermfg=4 guifg=Red WildMenuxxx term=standout ctermfg=0 ctermbg=14 guifg=Black guibg=Yellow Foldedxxx term=standout ctermfg=1 ctermbg=7 guifg=DarkBlue guibg=LightGrey FoldColumn xxx term=standout ctermfg=1 ctermbg=7 guifg=DarkBlue guibg=Grey DiffAddxxx term=bold ctermbg=9 guibg=LightBlue DiffChange xxx term=bold ctermbg=13 guibg=LightMagenta DiffDelete xxx term=bold ctermfg=9 ctermbg=11 gui=bold guifg=Blue guibg=LightCyan DiffTextxxx term=reverse cterm=bold ctermbg=12 gui=bold guibg=Red SignColumn xxx term=standout ctermfg=1 ctermbg=7 guifg=DarkBlue guibg=Grey Concealxxx ctermfg=7 ctermbg=8 guifg=LightGrey guibg=DarkGrey SpellBadxxx term=reverse ctermbg=12 gui=undercurl guisp=Red SpellCapxxx term=reverse ctermbg=9 gui=undercurl guisp=Blue SpellRare xxx term=reverse ctermbg=13 gui=undercurl guisp=Magenta SpellLocal xxx term=underline ctermbg=11 gui=undercurl guisp=DarkCyan Pmenuxxx ctermfg=0 ctermbg=13 guibg=LightMagenta PmenuSelxxx ctermfg=0 ctermbg=7 guibg=Grey PmenuSbar xxx ctermbg=7 guibg=Grey PmenuThumb xxx ctermbg=0 guibg=Black TabLinexxx term=underline cterm=underline ctermfg=0 ctermbg=7 gui=underline guibg=LightGrey TabLineSel xxx term=bold cterm=bold gui=bold TabLineFill xxx term=reverse cterm=reverse gui=reverse CursorColumn xxx term=reverse ctermbg=7 guibg=Grey90 CursorLine xxx term=underline cterm=underline guibg=Grey90 ColorColumn xxx term=reverse ctermbg=12 guibg=LightRed MatchParen xxx term=reverse ctermbg=11 guibg=Cyan Press ENTER or type command to continue:hi Search Searchxxx term=reverse ctermfg=0 ctermbg=14 guibg=Yellow Press ENTER or type command to continue:" test setting colors. :hi NewGroup :hi Group2 :hi Group3 :hi clear NewGroup :hi NewGroup :hi Group2 :hi Group2 NONE :hi Group2 :hi clear :hi Group3 :hi Crash term='asdf :redir END :" filter ctermfg and ctermbg, the numbers depend on the terminal :e test.out :%s/ctermfg=\d*/ctermfg=2/ :%s/ctermbg=\d*/ctermbg=3/ :" filter out possibly translated error message :%s/E475: [^:]*:/E475:/ :" fix the fileformat :set ff& :wq! ENDTEST :" test clearing one color and all doesn't generate error or warning :hi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#0 0ff00 guibg=Cyan E418: Illegal value: guifg=#00ff00Press ENTER or type command to continue:hi Group2 term= cterm= E418: Illegal value: cterm= Press ENTER or type command to continue:hi Group3 term=underline cterm=bold :hi NewGroup :hi Group2 :redir! >test.out :hi NewGroup NewGroupxxx term=bold cterm=italic ctermfg=1 ctermbg=7 Press ENTER or type command to continue:hi Group2 Group2xxx cleared Press ENTER or type command to continue:hi Group3 Group3xxx term=underline cterm=bold Press ENTER or type command to continue:hi clear NewGroup :hi NewGroup :hi Group2 :hi Group3 :hi clear NewGroup :hi NewGroup :hi Group2 :hi NewGroup NewGroupxxx cleared Press ENTER or type command to continue:hi Group2 Group2xxx cleared Press ENTER or type command to continue:hi Group2 NONE :hi NewGroup :hi Group2 :hi Group3 :hi clear NewGroup :hi Group2 Group2xxx cleared Press ENTER or type command to continue:hi clear :hi NewGroup :hi Group2 :hi Group3 :hi clear NewGroup :hi NewGroup :hi Group2 :hi Group2 NONE :hi Group2 :hi clear :hi Group3 :hi Crash term='asdf :redir END :" filter ctermfg and ctermbg, the numbers depend on the terminal :e test.out :%s/ctermfg=\d*/ctermfg=2/ :%s/ctermbg=\d*/ctermbg=3/ :" filter out possibly translated error message :%s/E475: [^:]*:/E475:/ :" fix the fileformat :set ff& :wq! ENDTEST :hi Group3 Group3xxx cleared Press ENTER or type command to continue:hi Crash term='asdf E475: Invalid argument: term='asdf Press ENTER or type command to continue:redir END :hi NewGroup :hi Group2 :hi Group3 :" filter ctermfg and ctermbg, the numbers depend on the terminal :e test.out "test.out" 20 lines, 289 charactersNewGroup xxx term=bold cterm=italic ctermfg=1 ctermbg=7Group2 xxx clearedGroup3 xxx term=underline cterm=boldNewGroup xxx clearedGroup2 xxx clearedGroup2 xxx clearedGroup3 xxx clearedE475: Invalid argument: term='asdf~~ ~:%s/ctermfg=\d*/ctermfg=2/ 2 :%s/ctermbg=\d*/ctermbg=3/ 3 :" filter out possibly translated error message :%s/E475: [^:]*:/E475:/ term='asdf:" fix the fileformat :set ff& :wq! "test.out" 20 lines, 271 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test52.failed test.ok test.out X* viminfo cp test52.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test52.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test52.in" 65 lines, 1645 charactersTests for reading and writing files with conversion for Win32. STARTTEST :so mbyte.vim :" make this a dummy test for non-Win32 systems :if !has("win32") | e! test.ok | wq! test.out | endif :" :" write tests: :" combine three values for 'encoding' with three values for 'fileencoding' :" also write files for read tests /^1 :set encoding=utf-8 :.w! ++enc=utf-8 test.out :.w ++enc=cp1251 >>test.out :.w ++enc=cp866 >>test.out :.w! ++enc=utf-8 Xutf8 /^2 :set encoding=cp1251 :.w ++enc=utf-8 >>test.out :.w ++enc=cp1251 >>test.out :.w ++enc=cp866 >>test.out :.w! ++enc=cp1251 Xcp1251 /^3:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for reading and writing files with conversion for Win32./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 57 lines, 1333 characters written:set ff& cpo+=A /ENDTEST:e Xcp1251 :.w ++enc=cp1251 >>test.out :set fencs=utf-8,cp866 :e Xcp866 :.w ++enc=cp1251 >>test.out :" :" read three 'fileencoding's with cp866 'encoding' :set encoding=cp866 fencs=utf-8,cp1251 :e Xutf8 :.w ++enc=cp866 >>test.out :e Xcp1251 :.w ++enc=cp866 >>test.out :set fencs=utf-8,cp866 :e Xcp866 :.w ++enc=cp866 >>test.out :" :qa! ENDTEST 1 utf-8 text: Ð~TлÑ~O Vim version 6.2. Ð~_оÑ~Aледнее изменение: 1970 Jan 01 2 cp1251 text: Äëÿ Vim version 6.2. Ïîñëåäíåå èçìåíåíèå: 1970 Jan 01 3 cp866 text: ~D«ï Vim version 6.2. ~O®á«¥¤­¥¥ ¨§¬¥­¥­¨¥: 1970 Jan 01 :so! Xdotest :so mbyte.vim :" make this a dummy test for non-Win32 systems :if !has("win32") | e! test.ok | wq! test.out | endif "test.ok" 18 lines, 1374 characters "test.out" [New File] 18 lines, 1374 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test53.failed test.ok test.out X* viminfo cp test53.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test53.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test53.in" 123 lines, 2343 charactersTests for string and html text objects. vim: set ft=vim : Note that the end-of-line moves the cursor to the next test line. Also test match() and matchstr() Also test the gn command and repeating it. STARTTEST :so small.vim /^start:/ da" 0va'a'rx 02f`da` 0fXdi" 03f'vi'ry :set quoteescape=+*- di` $F"va"oha"i"rz :" /^ -asdfXasdfasdf- :so! Xdotest :so small.vim /^start:/ fo 'foo' 'bar' xxxxxxxxxxxx blah " ' repyyyyy:set quoteescape=+*- ` b`la" sdf"" " asdf" sdf ah" sdf " voo "zzzzzzzzzzzzzzzzzzzzzzzzzzzz voo " :" /^asdf- -asdXasdfasdf- - -asdfXasdfasdf- -asdf- -asdXasdfasdf-  --  < :" :put =matchstr(\"abcd\", \".\", 0, 2) " b b :put =matchstr(\"abcd\", \"..\", 0, 2) " bc bc :put =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match) c :put =matchstr(\"abcd\", \".\", 0, -1) " a a :put =match(\"abcd\", \".\", 0, 5) " -1 -1 :put =match(\"abcd\", \".\", 0, -1) " 0 0 :put =match('abc', '.', 0, 1) " 0 0 :put =match('abc', '.', 0, 2) " 1 1 :put =match('abc', '.', 0, 3) " 2 2 :put =match('abc', '.', 0, 4) " -1 -1 :put =match('abc', '.', 1, 1) " 1 1 :put =match('abc', '.', 2, 1) " 2 2 :put =match('abc', '.', 3, 1) " -1 -1 :put =match('abc', '$', 0, 1) " 3 3 :put =match('abc', '$', 0, 2) " -1 -1 :put =match('abc', '$', 1, 1) " 3 3 :put =match('abc', '$', 2, 1) " 3 3 :put =match('abc', '$', 3, 1) " 3 3 :put =match('abc', '$', 4, 1) " -1 -1 :put =match('abc', '\zs', 0, 1) " 0 0 :put =match('abc', '\zs', 0, 2) " 1 1 :put =match('abc', '\zs', 0, 3) " 2 2 :put =match('abc', '\zs', 0, 4) " 3 3 :put =match('abc', '\zs', 0, 5) " -1 -1 :put =match('abc', '\zs', 1, 1) " 1 1 :put =match('abc', '\zs', 2, 1) " 2 2 :put =match('abc', '\zs', 3, 1) " 3 3 :put =match('abc', '\zs', 4, 1) " -1 -1 /^foobar SEARCH:foobar fooba searchmatch /one\_s*two\_s one :1 Tests for string and html text objects. vim: set ft=vim : Note that the end-of-line moves the cursor to the next test line. Also test match() and matchstr() Also test the gn command and repeating it. STARTTEST :so small.vim /^start:/ da" 0va'a'rx 02f`da` 0fXdi" 03f'vi'ry :set quoteescape=+*- di` $F"va"oha"i"rz :" /^\zs  zerowidth pattern/^ elete first and last chars/\zs /[u]niquepattern/s uniquepatter uniquepattern /mother :set selection=exclusive ngoose just served us nachos/i j :" Make sure there is no other match y uppercase. /^Y Tests for string and html text objects. vim: set ft=vim : Note that the end-of-line moves the cursor to the next test line. Also test match() and matchstr() Also test the gn command and repeating it. STARTTEST :so small.vim /^start:/ da" 0va'a'rx 02f`da` 0fXdi" 03f'vi'ry :set quoteescape=+*- di` $F"va"oha"i"rz :" /^ :!write sys$output "buffer-local autommand in %" > test.out :else : !rm -f test.out : au BufLeave :!echo buffer-local autommand in %>> test.out :endif :e somefile" here, autocommand for xx shall write test.out :" but autocommand shall not apply to buffer named :bwipe xx" here, autocommand shall be auto-deleted :e xx" nothing shall be written :e somefile" nothing shall be written :qa! ENDTEST start of test file xx end of test file xx:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Some tests for buffer-local autocommands/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 15 lines, 555 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :e xx "xx" [New File]~~~~~~~~~~~~~~~~~~~ ~~~:if has("vms") : : !del test.out.* : : au BufLeave :!write sys$output "buffer-local autommand in %" > te st.out : :else : : !rm -f test.out :!rm -f test.out : : au BufLeave :!echo buffer-local autommand in %>> test.out : :endif ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:e somefile " here, autocommand for xx shall write test.out :!echo buffer-local autommand in xx>> test.out "somefile" [New File] Press ENTER or type command to continue: " but autocommand shall not apply to buffer named ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:bwipe xx " here, autocommand shall be auto-deleted :e xx " nothing shall be written "xx" [New File]:e somefile " nothing shall be written "somefile" [New File]:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test55.failed test.ok test.out X* viminfo cp test55.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test55.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test55.in" 404 lines, 8463 charactersTests for List and Dictionary types. vim: set ft=vim : STARTTEST :so small.vim :fun Test(...) :lang C :" Creating List directly with different types :let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},] :$put =string(l) :$put =string(l[-1]) :$put =string(l[-4]) :try : $put =string(l[-5]) :catch : $put =v:exception[:14] :endtry :" List slices :$put =string(l[:]) :$put =string(l[1:]) :$put =string(l[:-2]) :$put =string(l[0:8]) :$put =string(l[8:-1]) :":set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for List and Dictionary types. vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 398 lines, 8377 characters written:set ff& cpo+=A /ENDTEST:$put =string(d) :endfun :" :call Test(1, 2, [3, 4], {5: 6}) " This may take a while :" :delfunc Test :unlet dict :call garbagecollect(1) :" :" test for patch 7.3.637 :let a = 'No error caught' :try|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry o^R=a^M^[:" :lang C :redir => a :try|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry :redir END o^R=a^M^[:" :" :/^start:/,$wq! test.out ENDTEST start: :so! Xdotest :so small.vim :fun Test(...) : :lang C : :" Creating List directly with different types : :let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},] : :$put =string(l) : :$put =string(l[-1]) : :$put =string(l[-4]) : :try : : $put =string(l[-5]) : :catch : : $put =v:exception[:14] : :endtry : :" List slices : :$put =string(l[:]) : :$put =string(l[1:]) : :$put =string(l[:-2]) : :$put =string(l[0:8]) : :$put =string(l[8:-1]) : :" : :" List identity : :let ll = l : :let lx = copy(l) : :try : : $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l isnot lx) : :catch : : $put =v:exception : :endtry : :" : :" Creating Dictionary directly with different types : :let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},} : :$put =string(d) . d.1 : :$put =string(sort(keys(d))) : :$put =string (values(d)) : :for [key, val] in items(d) : : $put =key . ':' . string(val) : : unlet key val : :endfor : :call extend (d, {3:33, 1:99}) : :call extend(d, {'b':'bbb', 'c':'ccc'}, "keep") : :try : : call extend(d, {3:333,4:444}, "error") : :catch : : $put =v:exception[:15] . v:exception[-1:-1] : :endtry : :$put =string(d) : :call filter(d, 'v:key =~ ''[ac391]''') : :$put =string(d) : :" : :" Dictionary identity : :let dd = d : :let dx = copy(d) : :try : : $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d isnot dx) : :catch : : $put =v:exception : :endtry : :" : :" Changing var type should fail : :try : : let d = [] : :catch : : $put =v:exception[:14] . v:exception[-1:-1] : :endtry : :try : : let l = {} : :catch : : $put =v:exception[:14] . v:exception[-1:-1] : :endtry : :" : :" removing items with :unlet : :unlet l[2] : :$put =string(l) : :let l = range(8) : :try : :unlet l[:3] : :unlet l[1:] : :catch : :$put =v:exception : :endtry : :$put =string(l) : :" : :unlet d.c : :unlet d[-1] : :$put =string(d) : :" : :" removing items out of range: silently skip items that don't exist : let l = [0, 1, 2, 3] : :unlet l[2:1] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[2:2] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[2:3] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[2:4] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[2:5] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[-1:2] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[-2:2] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[-3:2] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[-4:2] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[-5:2] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[-6:2] : :$put =string(l) : :" : :" assignment to a list : :let l = [0, 1, 2, 3] : :let [va, vb] = l[2:3] : :$put =va : :$put =vb : :try : : let [va, vb] = l : :catch : : $put =v:exception[:14] : :endtry : :try : : let [va, vb] = l[1:1] : :catch : : $put =v:exception[:14] : :endtry : :" : :" manipulating a big Dictionary (hashtable.c has a border of 1000 entries) : :let d = {} : :for i in range(1500) : : let d[i] = 3000 - i : :endfor : :$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499] : :try : : let n = d[1500] : :catch : : $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '') : :endtry : :" lookup each items : :for i in range(1500) : : if d[i] != 3000 - i : : $put =d[i] : : endif : :endfor : : let i += 1 : :" delete even items : :while i >= 2 : : let i -= 2 : : unlet d[i] : :endwhile : :$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1] : :" delete odd items, checking value, one intentionally wrong : :let d[33] = 999 : :let i = 1 : :while i < 1500 : : if d[i] != 3000 - i : : $put =i . '=' . d[i] : : else : : unlet d[i] : : endif : : let i += 2 : :endwhile : :$put =string(d) " must be almost empty now : :unlet d : :" : :" Dictionary function : :let dict = {} : :func dict.func(a) dict : : $put =a:a . len(self.data) : :endfunc : :let dict.data = [1,2,3] : :call dict.func("len: ") : :let x = dict.func("again: ") : :try : : let Fn = dict.func : : call Fn('xxx') : :catch : : $put =v:exception[:15] : :endtry : :" : :" Function in script-local List or Dict : :let g:dict = {} : :function g:dict.func() dict : : $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf') : :endfunc : :let g:dict.foo = ['-', 2, 3] : :call insert(g:dict.foo, function('strlen')) : :call g:dict.func() : :" : :" Nasty: remove func from Dict that's being called (works) : :let d = {1:1} : :func d.func(a) :: return "a:". a:a ::endfunc ::$put =d.func(string(remove(d, 'func'))) ::" ::" Nasty: deepcopy() dict that refers to itself (fails when noref used ) ::let d = {1:1, 2:2} ::let l = [4, d, 6] ::let d[3] = l ::let dc = deepcopy(d) ::try :: let dc = deepcopy(d, 1) ::catch :: $put =v:exception[:14] ::endtry ::let l2 = [0, l, l, 3] ::let l[1] = l2 ::let l3 = deepcopy(l2) ::$put ='same list: ' . (l3[1] is l3[2]) ::" ::" Locked variables ::for depth in range(5) :: $put ='depth is ' . depth :: for u in range(3) :: unlet l :: let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}] :: exe "lockvar " . depth . " l" :: if u == 1 :: exe "unlockvar l" :: elseif u == 2 :: exe "unlockvar " . depth . " l" :: endif :: let ps = islocked("l").islocked("l[1]").islocked("l[1][1]").i slocked("l[1][1][0]").'-'.islocked("l[2]").islocked("l[2]['6']").islocked("l[2][ '6'][7]") :: $put =ps :: let ps = '' :: try :: let l[1][1][0] = 99 :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: try :: let l[1][1] = [99] :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: try :: let l[1] = [99] :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: try :: let l[2]['6'][7] = 99 :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: try :: let l[2][6] = {99: 99} :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: try :: let l[2] = {99: 99} :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: try :: let l = [99] :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: $put =ps :: endfor ::endfor ::" :lockvar/islocked() triggering script autoloading ::set rtp+=./sautest ::lockvar g:footest#x ::unlockvar g:footest#x ::$put ='locked g:footest#x:'.islocked('g:footest#x') ::$put ='exists g:footest#x:'.exists('g:footest#x') ::$put ='g:footest#x: '.g:footest#x ::" ::" a:000 function argument ::" first the tests that should fail ::try :: let a:000 = [1, 2] ::catch :: $put ='caught a:000' ::endtry ::try :: let a:000[0] = 9 ::catch :: $put ='caught a:000[0]' ::endtry ::try :: let a:000[2] = [9, 10] ::catch :: $put ='caught a:000[2]' ::endtry ::try :: let a:000[3] = {9: 10} ::catch :: $put ='caught a:000[3]' ::endtry ::" now the tests that should pass ::try :: let a:000[2][1] = 9 :: call extend(a:000[2], [5, 6]) :: let a:000[3][5] = 8 :: let a:000[3]['a'] = 12 :: $put =string(a:000) ::catch :: $put ='caught ' . v:exception ::endtry ::" ::" reverse(), sort(), uniq() ::let l = ['-0', 'A11', 2, 2, 'xaaa', 4, 'foo', 'foo6', 'foo', [0, 1, 2 ], 'x8', [0, 1, 2], 1.5] ::$put =string(uniq(copy(l))) ::$put =string(reverse(l)) ::$put =string(reverse(reverse(l))) ::$put =string(sort(l)) ::$put =string(reverse(sort(l))) ::$put =string(sort(reverse(sort(l)))) ::$put =string(uniq(sort(l))) ::" ::" splitting a string to a List ::$put =string(split(' aa bb ')) ::$put =string(split(' aa bb ', '\W\+', 0)) ::$put =string(split(' aa bb ', '\W\+', 1)) ::$put =string(split(' aa bb ', '\W', 1)) ::$put =string(split(':aa::bb:', ':', 0)) ::$put =string(split(':aa::bb:', ':', 1)) ::$put =string(split('aa,,bb, cc,', ',\s*', 1)) ::$put =string(split('abc', '\zs')) ::$put =string(split('abc', '\zs', 1)) ::" ::" compare recursively linked list and dict ::let l = [1, 2, 3, 4] ::let d = {'1': 1, '2': l, '3': 3} ::let l[1] = d ::$put =(l == l) ::$put =(d == d) ::$put =(l != deepcopy(l)) ::$put =(d != deepcopy(d)) ::" ::" compare complex recursively linked list and dict ::let l = [] ::call add(l, l) ::let dict4 = {"l": l} ::call add(dict4.l, dict4) ::let lcopy = deepcopy(l) ::let dict4copy = deepcopy(dict4) ::$put =(l == lcopy) ::$put =(dict4 == dict4copy) ::" ::" Pass the same List to extend() ::let l = [1, 2, 3, 4, 5] ::call extend(l, l) ::$put =string(l) ::" ::" Pass the same Dict to extend() ::let d = { 'a': {'b': 'B'}} ::call extend(d, d) ::$put =string(d) ::" ::" Pass the same Dict to extend() with "error" ::try :: call extend(d, d, "error") ::catch :: $put =v:exception[:15] . v:exception[-1:-1] ::endtry ::$put =string(d) ::endfun :$put =string(d) :endfun :" :call Test(1, 2, [3, 4], {5: 6}) " This may take a while :" :delfunc Test :unlet dict :call garbagecollect(1) :" :" test for patch 7.3.637 :let a = 'No error caught' :try|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry o^R=a^M^[:" :lang C :redir => a :try|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry :redir END o^R=a^M^[:" :" :/^start:/,$wq! test.out ENDTEST start: :" :call Test(1, 2, [3, 4], {5: 6}) " This may take a while Error detected while processing function Test: line 87: E684: list index out of range: 1 line 102: E684: list index out of range: 2 Press ENTER or type command to continue:" ['-0', 'A11', 'foo', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 2, 4, [0, 1, 2], [0, 1, 2]] ['-0', 'A11', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 4, [0, 1, 2]] ['aa', 'bb'] ['aa', 'bb'] ['', 'aa', 'bb', ''] ['', '', 'aa', '', 'bb', '', ''] ['aa', '', 'bb']['', 'aa', '', 'bb', ''] ['aa', '', 'bb', 'cc', ''] ['a', 'b', 'c']['', 'a', '', 'b', '', 'c', '']110011[1, 2, 3, 4, 5, 1, 2, 3, 4, 5] {'a': {'b': 'B'}}Vim(call):E737: a {'a': {'b': 'B'}}~ :delfunc Test :unlet dict :call garbagecollect(1) :" :" test for patch 7.3.637 :let a = 'No error caught' :try|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry =a Vim(foldopen):E490::" :lang C :redir => a :try|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry Error detected while processing : E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*' )|endtry Press ENTER or type command to continue:redir END ['-0', 'A11', 'foo', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 2, 4, [0, 1, 2], [0, 1, 2]] ['-0', 'A11', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 4, [0, 1, 2]] =a Error detected while processing : E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry  :" :" :/^start:/,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 128 lines, 2469 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test56.failed test.ok test.out X* viminfo cp test56.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test56.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test56.in" 21 lines, 457 charactersTest for script-local function. vim: set ft=vim : STARTTEST :so small.vim :" :set nocp viminfo+=nviminfo :/^start:/+1,/^end:/-1w! Xtest.vim :source Xtest.vim _x :$-1,$wq! test.out ENDTEST start: fun DoLast() call append(line('$'), "last line") endfun fun s:DoNothing() call append(line('$'), "nothing line") endfun nnoremap _x :call DoNothing()call DoLast()delfunc DoNothingdelfunc DoLast end: ~:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for script-local function. vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 7 lines, 120 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :" :set nocp viminfo+=nviminfo :/^start:/+1,/^end:/-1w! Xtest.vim "Xtest.vim" [New] 7L, 251C written:source Xtest.vim :call 3_DoNothing()|call 3_DoLast()|delfunc 3_DoNothing|delfunc <SNR>3_DoLast Press ENTER or type command to continueTest for script-local function. vim: set ft=vim :nothing line:$-1,$wq! test.out "test.out" [New] 2L, 23C written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test57.failed test.ok test.out X* viminfo cp test57.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test57.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test57.in" 500 lines, 3666 charactersTests for :sort command. vim: set ft=vim : STARTTEST :so small.vim :" :/^t01:/+1,/^t02/-1sort :/^t02:/+1,/^t03/-1sort n :/^t03:/+1,/^t04/-1sort x :/^t04:/+1,/^t05/-1sort u :/^t05:/+1,/^t06/-1sort! :/^t06:/+1,/^t07/-1sort! n :/^t07:/+1,/^t08/-1sort! u :/^t08:/+1,/^t09/-1sort o :/^t09:/+1,/^t10/-1sort! x :/^t10:/+1,/^t11/-1sort/./ :/^t11:/+1,/^t12/-1sort/../ :/^t12:/+1,/^t13/-1sort/../u :/^t13:/+1,/^t14/-1sort/./n :/^t14:/+1,/^t15/-1sort/./r :/^t15:/+1,/^t16/-1sort/../r :/^t16:/+1,/^t17/-1sort/./rn :/^t17:/+1,/^t18/-1sort/\d/ :/^t18:/+1,/^t19/-1sort/\d/r:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for :sort command. vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 30 lines, 842 characters written:set ff& cpo+=A /ENDTEST:/^t19:/+1,/^t20/-1sort/\d/n :/^t20:/+1,/^t21/-1sort/\d/rn :/^t21:/+1,/^t22/-1sort/\d\d/ :/^t22:/+1,/^t23/-1sort/\d\d/n :/^t23:/+1,/^t24/-1sort/\d\d/x :/^t24:/+1,/^t25/-1sort/\d\d/r :/^t25:/+1,/^t26/-1sort/\d\d/rn :/^t26:/+1,/^t27/-1sort/\d\d/rx :/^t27:/+1,/^t28/-1sort no :/^t01:/,$wq! test.out ENDTEST  :so! Xdotest :so small.vim :" :/^t01:/+1,/^t02/-1sort t01: alphebetical :/^t02:/+1,/^t03/-1sort n a321 ab abc b123 b321 b321 b321b b322b c123d c321d t02: numeric abc ab a-24 x-22 0 a122 a123 b123:/^t03:/+1,/^t04/-1sort x c123d123b a321 b321 c321d b321 b321b b322b t03: hexadecimal :/^t04:/+1,/^t05/-1sort u a122 a123 a321 b123 b321 b321 b321b b322b c123d c321d t04: alpha, unique 123b a a122 a123 a321 ab abc b123 b321 b321b b322b:/^t05:/+1,/^t06/-1sort! c123dc321d t05: alpha, reverse c321d :/^t06:/+1,/^t07/-1sort! n b123 abc ab a321 a123 a122 a 123b t06: numeric, reverse b322b b321b b321 c321d b321 a321 123b c123d b123 a123 a122:/^t07:/+1,/^t08/-1sort! u a ab abc t07: unique, reverse c321d :/^t08:/+1,/^t09/-1sort o b321 b123 abc ab a321 a123 a122 a 123b t08: octal abc ab a a122 a123 b123 c123d 123b a321 b321:/^t09:/+1,/^t10/-1sort! x c321db321 b321b b322b t09: reverse, hexadecimal c321d :/^t10:/+1,/^t11/-1sort/./ b123 a321 a123 a122 123b abc ab a t10: alpha, skip first character a a122 a123 b123 123b c123d a321 b321 b321 b321b:/^t11:/+1,/^t12/-1sort/../ c321db322b ab abc t11: alpha, skip first 2 characters ab :/^t12:/+1,/^t13/-1sort/../u b321 b321b c321d a122 b322b a123 b123 123b c123d abc t12: alpha, unique, skip first 2 characters ab a a321 b321 b321b c321d a122 b322b a123 b123 123b:/^t13:/+1,/^t14/-1sort/./n c123dabc t13: numeric, skip first character abc :/^t14:/+1,/^t15/-1sort/./r a123 b123 c123d 123b a321 b321 c321d b321 b321b b322b t14: alpha, sort on first character123b abc ab a a321 a123 a122 b321 b123 b322b:/^t15:/+1,/^t16/-1sort/../r b321b321b c123d c321d t15: alpha, sort on first 2 characters a :/^t16:/+1,/^t17/-1sort/./rn a321 abc ab b123 b321 b322b b321 b321b c123d c321d t16: numeric, sort on first character abc ab a a321 a123 a122 b321 b123 c123d 123b c321d b322b:/^t17:/+1,/^t18/-1sort/\d/ b321b321b t17: alpha, skip past first digit abc :/^t18:/+1,/^t19/-1sort/\d/r b321 b321 b321b c321d a122 b322b a123 b123 123b c123d t18: alpha, sort on first digit abc ab a a123 a122 b123 c123d 123b a321 b321:/^t19:/+1,/^t20/-1sort/\d/n c321db322b b321 b321b t19: numeric, skip past first digit abc :/^t20:/+1,/^t21/-1sort/\d/rn b321 c321d b321 b321b a122 b322b a123 b123 c123d 123b t20: numeric, sort on first digit abc ab a a123 a122 b123 c123d 123b a321 b321:/^t21:/+1,/^t22/-1sort/\d\d/ c321db322b b321 b321b t21: alpha, skip past first 2 digits abc :/^t22:/+1,/^t23/-1sort/\d\d/n b321 b321 b321b c321d a122 b322b a123 b123 123b c123d t22: numeric, skip past first 2 digits abc ab a a321 b321 c321d b321 b321b a122 b322b:/^t23:/+1,/^t24/-1sort/\d\d/x a123b123 c123d 123b t23: hexadecimal, skip past first 2 digits abc :/^t24:/+1,/^t25/-1sort/\d\d/r b321 b321 a122 a123 b123 b321b c321d b322b 123b c123d t24: alpha, sort on first 2 digits abc ab a a123 a122 b123 c123d 123b a321 b321:/^t25:/+1,/^t26/-1sort/\d\d/rn c321db322b b321 b321b t25: numeric, sort on first 2 digits abc :/^t26:/+1,/^t27/-1sort/\d\d/rx a122 b123 c123d 123b a321 b321 c321d b322b b321 b321b t26: hexadecimal, sort on first 2 digits abc ab a a123 a122 b123 c123d 123b a321 b321:/^t27:/+1,/^t28/-1sort no E474: Invalid argument:/^t01:/,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 459 lines, 2739 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test58.failed test.ok test.out X* viminfo cp test58.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test58.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test58.in" 639 lines, 10884 charactersTests for spell checking. vim: set ft=vim : STARTTEST :so small.vim :" :" Don't want to depend on the locale from the environment :set enc=latin1 :e! :" :" Check using z= in new buffer (crash fixed by patch 7.4a.028). :set maxmem=512 spell iasd^[z=:" :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for spell checking. vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 109 lines, 2556 characters written:set ff& cpo+=A /ENDTEST:call TestOne('6', '6') :call TestOne('7', '7') :" :" NOSLITSUGS :call TestOne('8', '8') :" :" clean up for valgrind :delfunc TestOne :set spl= enc=latin1 :" gg:/^test output:/,$wq! test.out ENDTEST 1affstart SET ISO8859-1 TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿ :so! Xdotest :so small.vim :" :" Don't want to depend on the locale from the environment :set enc=latin1 :call TestOne('6', '6') :call TestOne('7', '7') :" :" NOSLITSUGS :call TestOne('8', '8') :" :" clean up for valgrind :delfunc TestOne :set spl= enc=latin1 :" gg:/^test output:/,$wq! test.out ENDTEST 1affstart SET ISO8859-1 TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿:e! "test58.in" 639 lines, 10884 charactersTests for spell checking. vim: set ft=vim :STARTTEST :so small.vim :"Don't want to depend on the locale from the environment :set enc=latin1e!"Check using z= in new buffer (crash fixed by patch 7.4a.028). :set maxmem=512 spelliasd^[z=:" :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile=$put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:" :" Check using z= in new buffer (crash fixed by patch 7.4a.028). :set maxmem=512 spell Warning: Cannot find word list "en.latin1.spl" or "en.ascii.spl"asdTests for spell checking. vim: set ft=vim : asE756: Spell checking is not enabled:" :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) : set spellfile= : $put ='' : $put ='test '. a:aff . '-' . a:dic : " Generate a .spl file from a .dic and .aff file. : exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' : exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' : mkspell! Xtest Xtest : " use that spell file : set spl=Xtest.latin1.spl spell : " list all valid words : spelldump : %yank : quit : $put : $put ='-------' : " find all bad words and suggestions for them : exe '1;/^' . a:aff . 'good:' : normal 0f:]s : let prevbad = '' : while 1 : let [bad, a] = spellbadword() : if bad == '' || bad == prevbad || bad == 'badend' : break : endif : let prevbad = bad : let lst = spellsuggest(bad, 3) : normal mm : $put =bad : $put =string(lst) : normal `m]s : endwhile : endfunc asdTests for spell checking. vim: set ft=vim : STARTTEST :so small.vim :" :" Don't want to depend on the locale from the environment :set enc=latin1 :e! :" :" Check using z= in new buffer (crash fixed by patch 7.4a.028). :set maxmem=512 spell iasd^[z=:" :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:" :call TestOne('1', '1') Warning: Cannot find word list "en.latin1.spl" or "en.ascii.spl" "Xtest.aff" [New File] 46 lines, 754 characters written "Xtest.dic" [New File] 11 lines, 71 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - test Compressing word tree... Compressed 29 of 127 nodes; 98 (77%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 490 bytes Reading back spell file... Performing soundfolding... Total number of words: 16 Number of words after soundfolding: 16 Compressing word tree... Compressed 39 of 104 nodes; 65 (62%) remaining Writing suggestion file Xtest.latin1.sug ... Estimated runtime memory use: 357 bytes 17 lines yanked 17 more lines Press ENTER or type command to continue:$put =soundfold('goobledygoook') the end uk wrong ------- bad ['put', 'uk', 'OK'] inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek :$put =soundfold('kóopërÿnôven') kepereneven :$put =soundfold('oeverloos gezwets edale') everles gesvets etele :" :" :" and now with SAL instead of SOFO items; test automatic reloading asdTests for spell checking. vim: set ft=vim : STARTTEST :so small.vim :" :" Don't want to depend on the locale from the environment :set enc=latin1 :e! :" :" Check using z= in new buffer (crash fixed by patch 7.4a.028). :set maxmem=512 spell iasd^[z=:" :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff "Xtest.aff" 151 lines, 3412 characters written:mkspell! Xtest Xtest Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - test Compressing word tree... Compressed 29 of 127 nodes; 98 (77%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 490 bytes Performing soundfolding... Total number of words: 16 Number of words after soundfolding: 15 Compressing word tree... Compressed 33 of 75 nodes; 42 (56%) remaining Writing suggestion file Xtest.latin1.sug ... Estimated runtime memory use: 241 bytes Press ENTER or type command to continue:$put =soundfold('goobledygoook') ------- bad ['put', 'uk', 'OK'] inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end['put', 'uk', 'test'] the['put', 'uk', 'test']gebletegekkepereneveneverles gesvet etelekbltykk :$put =soundfold('kóopërÿnôven') kprnfn :$put =soundfold('oeverloos gezwets edale') *fls kswts tl :" :" also use an addition file asdTests for spell checking. vim: set ft=vim : STARTTEST :so small.vim :" :" Don't want to depend on the locale from the environment :set enc=latin1 :e! :" :" Check using z= in new buffer (crash fixed by patch 7.4a.028). :set maxmem=512 spell iasd^[z=:" :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:/^addstart/+1,/^addend/-1w! Xtest.latin1.add "Xtest.latin1.add" [New File] 3 lines, 38 characters written:mkspell! Xtest.latin1.add.spl Xtest.latin1.add Reading word file Xtest.latin1.add ... Compressing word tree... Compressed 0 of 29 nodes; 29 (100%) remaining Writing spell file Xtest.latin1.add.spl ... Done! Estimated runtime memory use: 145 bytes Press ENTER or type command to continue:set spellfile=Xtest.latin1.add asdTests for spell checking. vim: set ft=vim : STARTTEST :so small.vim :" :" Don't want to depend on the locale from the environment/^test2: 2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend:let [str, a] = spellbadword() :$put =str inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent :set spl=Xtest_us.latin1.spl /^test2: search hit BOTTOM, continuing at TOP2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend search hit BOTTOM, continuing at TOP :let [str, a] = spellbadword() :$put =str ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint 2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend:let [str, a] = spellbadword() :$put =str comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint :set spl=Xtest_gb.latin1.spl elequint /^test2: search hit BOTTOM, continuing at TOP2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend search hit BOTTOM, continuing at TOP:let [str, a] = spellbadword() :$put =str ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint 2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend:let [str, a] = spellbadword() :$put =str ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent :set spl=Xtest_nz.latin1.spl elequint elekwint elekwint /^test2: search hit BOTTOM, continuing at TOP2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend search hit BOTTOM, continuing at TOP :let [str, a] = spellbadword() :$put =str ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint 2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend:let [str, a] = spellbadword() :$put =str Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint elekwent :set spl=Xtest_ca.latin1.spl elequint elekwint elekwint elequint /^test2: search hit BOTTOM, continuing at TOP2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend search hit BOTTOM, continuing at TOP :let [str, a] = spellbadword() :$put =str ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint elekwent elequint 2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend:let [str, a] = spellbadword() :$put =str test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint elekwent elequint elekwint :unlet str a :" :" Postponed prefixes :call TestOne('2', '1') "Xtest.aff" 44 lines, 447 characters written "Xtest.dic" 11 lines, 71 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - test Compressing word tree... Compressed 10 of 98 nodes; 88 (89%) remaining Compressed 0 of 13 nodes; 13 (100%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 505 bytes 17 lines yanked 17 more lines Press ENTER or type command to continue:" MAP eèéêë MAP iìíîï MAP oòóôõö MAP uùúûü MAP nñ MAP cç MAP yÿý MAP sß 2affend 2good: puts bad: inputs comment ok Ok end the. test déôl badendaddstar /regions=usgbnz elequ/2/3 addendtest2:test elekwint test elekwent asdf:" Compound words :call TestOne('3', '3') "Xtest.aff" 5 lines, 60 characters written "Xtest.dic" 5 lines, 29 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - foo Compressing word tree... Compressed 6 of 29 nodes; 23 (79%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 115 bytes 3 lines yanked 3 more lines Press ENTER or type command to continue:call TestOne('4', '4') "Xtest.aff" 45 lines, 559 characters written "Xtest.dic" 8 lines, 59 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - word Compressing word tree... Compressed 2 of 91 nodes; 89 (97%) remaining Compressed 0 of 15 nodes; 15 (100%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 520 bytes 12 lines yanked 12 more lines Press ENTER or type command to continue:call TestOne('5', '5') "Xtest.aff" 25 lines, 237 characters written "Xtest.dic" 6 lines, 57 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - foo Compressing word tree... Compressed 19 of 105 nodes; 86 (81%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 440 bytes 10 lines yanked 10 more lines Press ENTER or type command to continue:call TestOne('6', '6') "Xtest.aff" 23 lines, 211 characters written "Xtest.dic" 6 lines, 53 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - mee Compressing word tree... Compressed 19 of 87 nodes; 68 (78%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 350 bytes 9 lines yanked 9 more lines Press ENTER or type command to continue:call TestOne('7', '7') "Xtest.aff" 22 lines, 223 characters written "Xtest.dic" 6 lines, 67 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - mee Compressing word tree... Compressed 19 of 89 nodes; 70 (78%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 360 bytes 9 lines yanked 9 more lines Press ENTER or type command to continue:" 1234 mee/391,111,9999 bar/17,61003,123 lead/2 tail/123 middle/77,1 7dicend 7good: meea1 meeaé bar prebar barmeat prebarmeat leadprebarlead tail leadtail leadmiddletail bad: mee meea2 prabar probarmaat middle leadmiddle middletail tailleadleadprobar badend Test NOSLITSUGS 8affstart SET ISO8859-1 NOSPLITSUGS 8affend 8dicstart:" NOSLITSUGS :call TestOne('8', '8') "Xtest.aff" 3 lines, 27 characters written "Xtest.dic" 4 lines, 20 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - foo Compressing word tree... Compressed 8 of 26 nodes; 18 (69%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 90 bytes 4 lines yanked 4 more lines Press ENTER or type command to continue:" NOSPLITSUGS 8affend 8dicstart 1234 foo bar faabar 8dicend 8good: foo bar faabar bad: foobar barfootest output:test 1-1# file: Xtest.latin1.spl Commentdeoldéôr input:" clean up for valgrind :delfunc TestOne :set spl= enc=latin1 NOSPLITSUGS 8affend 8dicstart 1234 foo bar faabar 8dicend 8good: foo bar faabar bad: foobar barfoo badend test output: test 1-1 # file: Xtest.latin1.spl Comment deol déôr input:" asdTests for spell checking. vim: set ft=vim : STARTTEST :so small.vim :" :" Don't want to depend on the locale from the environment :set enc=latin1 :e! :" :" Check using z= in new buffer (crash fixed by patch 7.4a.028). :set maxmem=512 spell iasd^[z=:" :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:/^test output:/,$wq! test.out "test.out" [New File] 283 lines, 3793 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test59.failed test.ok test.out X* viminfo cp test59.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test59.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test59.in" 626 lines, 10897 charactersTests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :e! :set enc=utf-8 :set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 106 lines, 2520 characters written:set ff& cpo+=A /ENDTEST:call TestOne('3', '3') :call TestOne('4', '4') :call TestOne('5', '5') :call TestOne('6', '6') :call TestOne('7', '7') :" :" clean up for valgrind :delfunc TestOne :set spl= enc=latin1 :" gg:/^test output:/,$wq! test.out ENDTEST 1affstart SET ISO8859-1 TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿ :so! Xdotest :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :call TestOne('3', '3') :call TestOne('4', '4') :call TestOne('5', '5') :call TestOne('6', '6') :call TestOne('7', '7') :" :" clean up for valgrind :delfunc TestOne :set spl= enc=latin1 :" gg:/^test output:/,$wq! test.out ENDTEST 1affstart SET ISO8859-1 TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿:e! "test59.in" 626 lines, 10897 charactersTests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim :STARTTESTso small.vimso mbyte.vimDon't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8.enc=latin1e! :set enc=utf-8:set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile=$put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:set enc=utf-8 Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :e! :set enc=utf-8 :set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) : set spellfile= : $put ='' : $put ='test '. a:aff . '-' . a:dic : " Generate a .spl file from a .dic and .aff file. : exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' : exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' : mkspell! Xtest Xtest : " use that spell file : set spl=Xtest.utf-8.spl spell : " list all valid words : spelldump : %yank : quit : $put : $put ='-------' : " find all bad words and suggestions for them : exe '1;/^' . a:aff . 'good:' : normal 0f:]s : let prevbad = '' : while 1 : let [bad, a] = spellbadword() : if bad == '' || bad == prevbad || bad == 'badend' : break : endif : let prevbad = bad : let lst = spellsuggest(bad, 3) : normal mm : $put =bad : $put =string(lst) : normal `m]s : endwhile : endfunc Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :e! :set enc=utf-8 :set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:" :call TestOne('1', '1') "Xtest.aff" [New File] 48 lines, 768 characters written "Xtest.dic" [New File] 11 lines, 71 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - test Compressing word tree... Compressed 29 of 131 nodes; 102 (77%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 510 bytes Reading back spell file... Performing soundfolding... Total number of words: 16 Number of words after soundfolding: 16 Compressing word tree... Compressed 39 of 104 nodes; 65 (62%) remaining Writing suggestion file Xtest.utf-8.sug ... Estimated runtime memory use: 357 bytes 17 lines yanked 17 more lines Press ENTER or type command to continue:$put =soundfold('goobledygoook') the end uk wrong ------- bad ['put', 'uk', 'OK'] inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test']the['put', 'uk', 'test']gebletegek :$put =soundfold('kóopërÿnôven') kepereneven :$put =soundfold('oeverloos gezwets edale') everles gesvets etele :" :" :" and now with SAL instead of SOFO items; test automatic reloading Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :e! :set enc=utf-8 :set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff "Xtest.aff" 153 lines, 3426 characters written:mkspell! Xtest Xtest Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - test Compressing word tree... Compressed 29 of 131 nodes; 102 (77%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 510 bytes Performing soundfolding... Total number of words: 16 Number of words after soundfolding: 15 Compressing word tree... Compressed 33 of 75 nodes; 42 (56%) remaining Writing suggestion file Xtest.utf-8.sug ... Estimated runtime memory use: 241 bytes Press ENTER or type command to continue:$put =soundfold('goobledygoook') ------- bad ['put', 'uk', 'OK'] inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end['put', 'uk', 'test'] the['put', 'uk', 'test']gebletegekkepereneveneverles gesvet etelekbltykk :$put =soundfold('kóopërÿnôven') kprnfn :$put =soundfold('oeverloos gezwets edale') *fls kswts tl :" :" also use an addition file Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :e! :set enc=utf-8 :set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:/^addstart/+1,/^addend/-1w! Xtest.utf-8.add "Xtest.utf-8.add" [New File] 3 lines, 38 characters written:mkspell! Xtest.utf-8.add.spl Xtest.utf-8.add Reading word file Xtest.utf-8.add ... Compressing word tree... Compressed 0 of 29 nodes; 29 (100%) remaining Writing spell file Xtest.utf-8.add.spl ... Done! Estimated runtime memory use: 145 bytes Press ENTER or type command to continue:set spellfile=Xtest.utf-8.add Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :"/^test2: tomato tomatotomato startend startword startwordword startwordendstartwordwordend startwordwordwordend prebork preborkborkpreborkborkborknouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomatoendstart endend startstart wordend wordstartpreborkprebork preborkpreborkborkstartwordwordwordwordend borkpreborkpreborkborkutilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !!:let [str, a] = spellbadword() :$put =str inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent :set spl=Xtest_us.utf-8.spl /^test2: search hit BOTTOM, continuing at TOPtomato tomatotomato startend startword startwordword startwordendstartwordwordend startwordwordwordend prebork preborkborkpreborkborkborknouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomatoendstart endend startstart wordend wordstartpreborkprebork preborkpreborkborkstartwordwordwordwordend borkpreborkpreborkborkutilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! search hit BOTTOM, continuing at TOP :let [str, a] = spellbadword() :$put =str ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint startwordwordend startwordwordwordend prebork preborkborkpreborkborkborknouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomatoendstart endend startstart wordend wordstartpreborkprebork preborkpreborkborkstartwordwordwordwordend borkpreborkpreborkborkutilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee:let [str, a] = spellbadword() :$put =str comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint :set spl=Xtest_gb.utf-8.spl elequint /^test2: search hit BOTTOM, continuing at TOPtomato tomatotomato startend startword startwordword startwordendstartwordwordend startwordwordwordend prebork preborkborkpreborkborkborknouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomatoendstart endend startstart wordend wordstartpreborkprebork preborkpreborkborkstartwordwordwordwordend borkpreborkpreborkborkutilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! search hit BOTTOM, continuing at TOP:let [str, a] = spellbadword() :$put =str ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint startwordwordend startwordwordwordend prebork preborkborkpreborkborkborknouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomatoendstart endend startstart wordend wordstartpreborkprebork preborkpreborkborkstartwordwordwordwordend borkpreborkpreborkborkutilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee:let [str, a] = spellbadword() :$put =str ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent :set spl=Xtest_nz.utf-8.spl elequint elekwint elekwint /^test2: search hit BOTTOM, continuing at TOPtomato tomatotomato startend startword startwordword startwordendstartwordwordend startwordwordwordend prebork preborkborkpreborkborkborknouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomatoendstart endend startstart wordend wordstartpreborkprebork preborkpreborkborkstartwordwordwordwordend borkpreborkpreborkborkutilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! search hit BOTTOM, continuing at TOP :let [str, a] = spellbadword() :$put =str ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint startwordwordend startwordwordwordend prebork preborkborkpreborkborkborknouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomatoendstart endend startstart wordend wordstartpreborkprebork preborkpreborkborkstartwordwordwordwordend borkpreborkpreborkborkutilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee:let [str, a] = spellbadword() :$put =str Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint elekwent :set spl=Xtest_ca.utf-8.spl elequint elekwint elekwint elequint /^test2: search hit BOTTOM, continuing at TOPtomato tomatotomato startend startword startwordword startwordendstartwordwordend startwordwordwordend prebork preborkborkpreborkborkborknouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomatoendstart endend startstart wordend wordstartpreborkprebork preborkpreborkborkstartwordwordwordwordend borkpreborkpreborkborkutilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! search hit BOTTOM, continuing at TOP :let [str, a] = spellbadword() :$put =str ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint elekwent elequint startwordwordend startwordwordwordend prebork preborkborkpreborkborkborknouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomatoendstart endend startstart wordend wordstartpreborkprebork preborkpreborkborkstartwordwordwordwordend borkpreborkpreborkborkutilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee:let [str, a] = spellbadword() :$put =str test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint elekwent elequint elekwint :unlet str a :" :" Postponed prefixes :call TestOne('2', '1') "Xtest.aff" 46 lines, 461 characters written "Xtest.dic" 11 lines, 71 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - test Compressing word tree... Compressed 10 of 102 nodes; 92 (90%) remaining Compressed 0 of 13 nodes; 13 (100%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 525 bytes 17 lines yanked 17 more lines Press ENTER or type command to continue:" addstart /regions=usgbnz elequint/2 elekwint/3 addend 1good: wrong OK puts. Test the end bad: inputs comment ok Ok. test déôl end the badend 2good: puts bad: inputs comment ok Ok end the. test déôl badendTest rules for compounding.3affstart SET ISO8859-1COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend:" Compound words :call TestOne('3', '3') "Xtest.aff" 5 lines, 60 characters written "Xtest.dic" 5 lines, 29 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - foo Compressing word tree... Compressed 6 of 31 nodes; 25 (80%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 125 bytes 3 lines yanked 3 more lines Press ENTER or type command to continue:call TestOne('4', '4') "Xtest.aff" 45 lines, 559 characters written "Xtest.dic" 8 lines, 59 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - word Compressing word tree... Compressed 2 of 91 nodes; 89 (97%) remaining Compressed 0 of 15 nodes; 15 (100%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 520 bytes 12 lines yanked 12 more lines Press ENTER or type command to continue:call TestOne('5', '5') "Xtest.aff" 25 lines, 237 characters written "Xtest.dic" 6 lines, 57 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - foo Compressing word tree... Compressed 19 of 107 nodes; 88 (82%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 440 bytes 10 lines yanked 10 more lines Press ENTER or type command to continue:call TestOne('6', '6') "Xtest.aff" 23 lines, 211 characters written "Xtest.dic" 6 lines, 53 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - mee Compressing word tree... Compressed 19 of 89 nodes; 70 (78%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 350 bytes 9 lines yanked 9 more lines Press ENTER or type command to continue:call TestOne('7', '7') "Xtest.aff" 26 lines, 338 characters written "Xtest.dic" 6 lines, 67 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - mee Compressing word tree... Compressed 19 of 91 nodes; 72 (79%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 360 bytes 9 lines yanked 9 more lines Press ENTER or type command to continue:" 1234 mee/391,111,9999 bar/17,61003,123 lead/2 tail/123 middle/77,1 7dicend 7good: meea1 meeaé bar prebar barmeat prebarmeat leadprebarlead tail leadtail leadmiddletail bad: mee meea2 prabar probarmaat middle leadmiddle middletail tailleadleadprobar badend test output: test 1-1 # file: Xtest.utf-8.spl Comment deol déôr input OK:" clean up for valgrind :delfunc TestOne :set spl= enc=latin1 1234 mee/391,111,9999 bar/17,61003,123 lead/2 tail/123 middle/77,1 7dicend 7good: meea1 meeaé bar prebar barmeat prebarmeat leadprebarlead tail leadtail leadmiddletail bad: mee meea2 prabar probarmaat middle leadmiddle middletail tailleadleadprobar badend test output: test 1-1 # file: Xtest.utf-8.spl Comment deol déôr input OK:" Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :e! :set enc=utf-8 :set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file:/^test output:/,$wq! test.out "test.out" [New File] 270 lines, 3685 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test60.failed test.ok test.out X* viminfo cp test60.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test60.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test60.in" 610 lines, 13323 charactersTests for the exists() and has() functions. vim: set ft=vim ts=8 sw=2 : STARTTEST :so small.vim :function! RunTest(str, result) if exists(a:str) == a:resultecho "OK" elseecho "FAILED: Checking for " . a:str endif endfunction :function! TestExists() augroup myagroupautocmd! BufEnter*.my echo "myfile edited"autocmd! FuncUndefined UndefFun exec "fu UndefFun()\nendfu" augroup END set rtp+=./sautestlet test_cases = []" valid autocmd group let test_cases += [['#myagroup', 1]] " valid autocmd group with garbage:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for the exists() and has() functions. vim: set ft=vim ts=8 sw=2 :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 605 lines, 13230 characters written:set ff& cpo+=A /ENDTESTredir END endfunction :call TestExists() :" :function TestHas() redir >> test.out for pl in ['6.9.999', '7.1.999', '7.4.123', '9.1.0', '9.9.1'] echo 'has patch ' . pl . ': ' . has('patch-' . pl) endfor redir END endfunc :call TestHas() :" :delfunc TestExists :delfunc RunTest :delfunc TestFuncArg :edit! test.out :set ff=unix :w :qa! :while getchar(1) | call getchar() | endwhile ENDTEST :so! Xdotest :so small.vim :function! RunTest(str, result) : if exists(a:str) == a:result : ^Iecho "OK" : else : ^Iecho "FAILED: Checking for " . a:str : endif : endfunction redir END endfunction :call TestExists() :" :function TestHas() redir >> test.out :function! TestExists() : augroup myagroup : ^Iautocmd! BufEnter *.my echo "myfile edited" : ^Iautocmd! FuncUndefined UndefFun exec "fu UndefFun()\nendfu" : augroup END : set rtp+=./sautest : : let test_cases = [] : : " valid autocmd group : let test_cases += [['#myagroup', 1]] : " valid autocmd group with garbage : let test_cases += [['#myagroup+b', 0]] : " Valid autocmd group and event : let test_cases += [['#myagroup#BufEnter', 1]] : " Valid autocmd group, event and pattern : let test_cases += [['#myagroup#BufEnter#*.my', 1]] : " Valid autocmd event : let test_cases += [['#BufEnter', 1]] : " Valid autocmd event and pattern : let test_cases += [['#BufEnter#*.my', 1]] : " Non-existing autocmd group or event : let test_cases += [['#xyzagroup', 0]] : " Non-existing autocmd group and valid autocmd event : let test_cases += [['#xyzagroup#BufEnter', 0]] : " Valid autocmd group and event with no matching pattern : let test_cases += [['#myagroup#CmdwinEnter', 0]] : " Valid autocmd group and non-existing autocmd event : let test_cases += [['#myagroup#xyzacmd', 0]] : " Valid autocmd group and event and non-matching pattern : let test_cases += [['#myagroup#BufEnter#xyzpat', 0]] : " Valid autocmd event and non-matching pattern : let test_cases += [['#BufEnter#xyzpat', 0]] : " Empty autocmd group, event and pattern : let test_cases += [['###', 0]] : " Empty autocmd group and event or empty event and pattern : let test_cases += [['##', 0]] : " Valid autocmd event : let test_cases += [['##FileReadCmd', 1]] : " Non-existing autocmd event : let test_cases += [['##MySpecialCmd', 0]] : : " Existing and working option (long form) : let test_cases += [['&textwidth', 1]] : " Existing and working option (short form) : let test_cases += [['&tw', 1]] : " Existing and working option with garbage : let test_cases += [['&tw-', 0]] : " Global option : let test_cases += [['&g:errorformat', 1]] : " Local option : let test_cases += [['&l:errorformat', 1]] : " Negative form of existing and working option (long form) : let test_cases += [['&nojoinspaces', 0]] : " Negative form of existing and working option (short form) : let test_cases += [['&nojs', 0]] : " Non-existing option : let test_cases += [['&myxyzoption', 0]] : : " Existing and working option (long form) : let test_cases += [['+incsearch', 1]] : " Existing and working option with garbage : let test_cases += [['+incsearch!1', 0]] : " Existing and working option (short form) : let test_cases += [['+is', 1]] : " Existing option that is hidden. : let test_cases += [['+autoprint', 0]] : : " Existing environment variable : let $EDITOR_NAME = 'Vim Editor' : let test_cases += [['$EDITOR_NAME', 1]] : " Non-existing environment variable : let test_cases += [['$NON_ENV_VAR', 0]] : : " Valid internal function : let test_cases += [['*bufnr', 1]] : " Valid internal function with () : let test_cases += [['*bufnr()', 1]] : " Non-existing internal function : let test_cases += [['*myxyzfunc', 0]] : " Valid internal function with garbage : let test_cases += [['*bufnr&6', 0]] : : " Valid user defined function : let test_cases += [['*TestExists', 1]] : " Non-existing user defined function : let test_cases += [['*MyxyzFunc', 0]] : : " Function that may be created by FuncUndefined event : let test_cases += [['*UndefFun', 0]] : " Function that may be created by script autoloading : let test_cases += [['*footest#F', 0]] : : redir! > test.out : : for [test_case, result] in test_cases : echo test_case . ": " . result : call RunTest(test_case, result) : endfor : : " Valid internal command (full match) : echo ':edit: 2' : if exists(':edit') == 2 : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid internal command (full match) with garbage : echo ':edit/a: 0' : if exists(':edit/a') == 0 : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid internal command (partial match) : echo ':q: 1' : if exists(':q') == 1 : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing internal command : echo ':invalidcmd: 0' : if !exists(':invalidcmd') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " User defined command (full match) : command! MyCmd :echo 'My command' : echo ':MyCmd: 2' : if exists(':MyCmd') == 2 : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " User defined command (partial match) : command! MyOtherCmd :echo 'Another command' : echo ':My: 3' : if exists(':My') == 3 : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Command modifier : echo ':rightbelow: 2' : if exists(':rightbelow') == 2 : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing user defined command (full match) : delcommand MyCmd : : echo ':MyCmd: 0' : if !exists(':MyCmd') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing user defined command (partial match) : delcommand MyOtherCmd : : echo ':My: 0' : if !exists(':My') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid local variable : let local_var = 1 : echo 'local_var: 1' : if exists('local_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid local variable with garbage : let local_var = 1 : echo 'local_var%n: 0' : if !exists('local_var%n') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing local variable : unlet local_var : echo 'local_var: 0' : if !exists('local_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing autoload variable that may be autoloaded : echo 'footest#x: 0' : if !exists('footest#x') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid local list : let local_list = ["blue", "orange"] : echo 'local_list: 1' : if exists('local_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid local list item : echo 'local_list[1]: 1' : if exists('local_list[1]') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid local list item with garbage : echo 'local_list[1]+5: 0' : if !exists('local_list[1]+5') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Invalid local list item : echo 'local_list[2]: 0' : if !exists('local_list[2]') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing local list : unlet local_list : echo 'local_list: 0' : if !exists('local_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid local dictionary : let local_dict = {"xcord":100, "ycord":2} : echo 'local_dict: 1' : if exists('local_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing local dictionary : unlet local_dict : echo 'local_dict: 0' : if !exists('local_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing local curly-brace variable : let str = "local" : let curly_{str}_var = 1 : echo 'curly_' . str . '_var: 1' : if exists('curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing local curly-brace variable : unlet curly_{str}_var : echo 'curly_' . str . '_var: 0' : if !exists('curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : : " Existing global variable : let g:global_var = 1 : echo 'g:global_var: 1' : if exists('g:global_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing global variable with garbage : echo 'g:global_var-n: 1' : if !exists('g:global_var-n') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing global variable : unlet g:global_var : echo 'g:global_var: 0' : if !exists('g:global_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing global list : let g:global_list = ["blue", "orange"] : echo 'g:global_list: 1' : if exists('g:global_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing global list : unlet g:global_list : echo 'g:global_list: 0' : if !exists('g:global_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing global dictionary : let g:global_dict = {"xcord":100, "ycord":2} : echo 'g:global_dict: 1' : if exists('g:global_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing global dictionary : unlet g:global_dict : echo 'g:global_dict: 0' : if !exists('g:global_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing global curly-brace variable : let str = "global" : let g:curly_{str}_var = 1 : echo 'g:curly_' . str . '_var: 1' : if exists('g:curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing global curly-brace variable : unlet g:curly_{str}_var : echo 'g:curly_' . str . '_var: 0' : if !exists('g:curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing window variable : echo 'w:window_var: 1' : let w:window_var = 1 : if exists('w:window_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing window variable : unlet w:window_var : echo 'w:window_var: 0' : if !exists('w:window_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing window list : let w:window_list = ["blue", "orange"] : echo 'w:window_list: 1' : if exists('w:window_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing window list : unlet w:window_list : echo 'w:window_list: 0' : if !exists('w:window_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing window dictionary : let w:window_dict = {"xcord":100, "ycord":2} : echo 'w:window_dict: 1' : if exists('w:window_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing window dictionary : unlet w:window_dict : echo 'w:window_dict: 0' : if !exists('w:window_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing window curly-brace variable : let str = "window" : let w:curly_{str}_var = 1 : echo 'w:curly_' . str . '_var: 1' : if exists('w:curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing window curly-brace variable : unlet w:curly_{str}_var : echo 'w:curly_' . str . '_var: 0' : if !exists('w:curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing buffer variable : echo 'b:buffer_var: 1' : let b:buffer_var = 1 : if exists('b:buffer_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing buffer variable : unlet b:buffer_var : echo 'b:buffer_var: 0' : if !exists('b:buffer_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing buffer list : let b:buffer_list = ["blue", "orange"] : echo 'b:buffer_list: 1' : if exists('b:buffer_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing buffer list : unlet b:buffer_list : echo 'b:buffer_list: 0' : if !exists('b:buffer_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing buffer dictionary : let b:buffer_dict = {"xcord":100, "ycord":2} : echo 'b:buffer_dict: 1' : if exists('b:buffer_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing buffer dictionary : unlet b:buffer_dict : echo 'b:buffer_dict: 0' : if !exists('b:buffer_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing buffer curly-brace variable : let str = "buffer" : let b:curly_{str}_var = 1 : echo 'b:curly_' . str . '_var: 1' : if exists('b:curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing buffer curly-brace variable : unlet b:curly_{str}_var : echo 'b:curly_' . str . '_var: 0' : if !exists('b:curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Script-local tests : source test60.vim : : " Existing Vim internal variable : echo 'v:version: 1' : if exists('v:version') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing Vim internal variable : echo 'v:non_exists_var: 0' : if !exists('v:non_exists_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Function arguments : function TestFuncArg(func_arg, ...) : echo 'a:func_arg: 1' : if exists('a:func_arg') : echo "OK" : else : echo "FAILED" : endif : : echo 'a:non_exists_arg: 0' : if !exists('a:non_exists_arg') : echo "OK" : else : echo "FAILED" : endif : : echo 'a:1: 1' : if exists('a:1') : echo "OK" : else : echo "FAILED" : endif : : echo 'a:2: 0' : if !exists('a:2') : echo "OK" : else : echo "FAILED" : endif : endfunction : : call TestFuncArg("arg1", "arg2") : : echo ' g:footest#x =' g:footest#x : echo ' footest#F()' footest#F() : echo 'UndefFun()' UndefFun() : : redir END : endfunction redir END endfunction :call TestExists() :" :function TestHas() redir >> test.out for pl in ['6.9.999', '7.1.999', '7.4.123', '9.1.0', '9.9.1'] echo 'has patch ' . pl . ': ' . has('patch-' . pl) endfor redir END endfunc :call TestHas() :" :delfunc TestExists :delfunc RunTest :delfunc TestFuncArg :edit! test.out :set ff=unix :w :qa! :while getchar(1) | call getchar() | endwhile ENDTEST :call TestExists() #myagroup: 1 OK #myagroup+b: 0 OK #myagroup#BufEnter: 1 OK #myagroup#BufEnter#*.my: 1 OK #BufEnter: 1 OK #BufEnter#*.my: 1 OK #xyzagroup: 0 OK #xyzagroup#BufEnter: 0 OK #myagroup#CmdwinEnter: 0 OK #myagroup#xyzacmd: 0 OK #myagroup#BufEnter#xyzpat: 0 OK #BufEnter#xyzpat: 0 OK ###: 0 OK ##: 0 OK ##FileReadCmd: 1 OK ##MySpecialCmd: 0 OK &textwidth: 1 OK &tw: 1 OK &tw-: 0 OK &g:errorformat: 1 OK &l:errorformat: 1 OK &nojoinspaces: 0 OK &nojs: 0 OK &myxyzoption: 0 OK +incsearch: 1 OK +incsearch!1: 0 OK +is: 1 OK +autoprint: 0 OK $EDITOR_NAME: 1 OK $NON_ENV_VAR: 0 OK *bufnr: 1 OK *bufnr(): 1 OK *myxyzfunc: 0 OK *bufnr&6: 0 OK *TestExists: 1 OK *MyxyzFunc: 0 OK *UndefFun: 0 OK *footest#F: 0 OK :edit: 2 OK :edit/a: 0 OK :q: 1 OK :invalidcmd: 0 OK :MyCmd: 2 OK :My: 3 OK :rightbelow: 2 OK :MyCmd: 0 OK :My: 0 OK local_var: 1 OK local_var%n: 0 OK local_var: 0 OK footest#x: 0 OK local_list: 1 OK local_list[1]: 1 OK local_list[1]+5: 0 OK local_list[2]: 0 OK local_list: 0 OK local_dict: 1 OK local_dict: 0 OK curly_local_var: 1 OK curly_local_var: 0 OK g:global_var: 1 OK g:global_var-n: 1 OK g:global_var: 0 OK g:global_list: 1 OK g:global_list: 0 OK g:global_dict: 1 OK g:global_dict: 0 OK g:curly_global_var: 1 OK g:curly_global_var: 0 OK w:window_var: 1 OK w:window_var: 0 OK w:window_list: 1 OK w:window_list: 0 OK w:window_dict: 1 OK w:window_dict: 0 OK w:curly_window_var: 1 OK w:curly_window_var: 0 OK b:buffer_var: 1 OK b:buffer_var: 0 OK b:buffer_list: 1 OK b:buffer_list: 0 OK b:buffer_dict: 1 OK b:buffer_dict: 0 OK b:curly_buffer_var: 1 OK b:curly_buffer_var: 0 OK s:script_var: 1 OK s:script_var: 0 OK s:script_list: 1 OK s:script_list: 0 OK s:script_dict: 1 OK s:script_dict: 0 OK s:curly_script_var: 1 OK s:curly_script_var: 0 OK *s:my_script_func: 1 OK *s:my_script_func: 0 OK v:version: 1 OK v:non_exists_var: 0 OK a:func_arg: 1 OK a:non_exists_arg: 0 OK a:1: 1 OK a:2: 0 OK g:footest#x = 1 footest#F() 0 UndefFun() 0 Press ENTER or type command to continue:" redir END endfunction :call TestExists() :" :function TestHas() redir >> test.out for pl in ['6.9.999', '7.1.999', '7.4.123', '9.1.0', '9.9.1'] echo 'has patch ' . pl . ': ' . has('patch-' . pl) endfor redir END endfunc :call TestHas() :" :delfunc TestExists :delfunc RunTest :delfunc TestFuncArg :edit! test.out :set ff=unix :w :qa! :while getchar(1) | call getchar() | endwhile ENDTEST :function TestHas() : redir >> test.out : for pl in ['6.9.999', '7.1.999', '7.4.123', '9.1.0', '9.9.1'] : echo 'has patch ' . pl . ': ' . has('patch-' . pl) : endfor : redir END : endfunc redir END endfunction :call TestExists() :" :function TestHas() redir >> test.out :call TestHas() has patch 6.9.999: 1 has patch 7.1.999: 1 has patch 7.4.123: 1 has patch 9.1.0: 0 has patch 9.9.1: 0 Press ENTER or type command to continue:" redir END endfunction :call TestExists() :" :function TestHas() :delfunc TestExists :delfunc RunTest :delfunc TestFuncArg :edit! test.out "test.out" [Incomplete last line] 211 lines, 2041 characters#myagroup: 1 OK#myagroup+b: 0 OK#myagroup#BufEnter: 1 OK#myagroup#BufEnter#*.my: 1OK#BufEnter: 1 OK#BufEnter#*.my: 1 OK #xyzagroup: 0OK#xyzagroup#BufEnter: 0 OK#myagroup#CmdwinEnter: 0 OK #myagroup#xyzacmd: 0 OK#myagroup#BufEnter#xyzpat: 0 OK:set ff=unix :w "test.out" 211 lines, 2042 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test61.failed test.ok test.out X* viminfo cp test61.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test61.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test61.in" 113 lines, 1774 charactersTests for undo tree. Since this script is sourced we need to explicitly break changes up in undo-able pieces. Do that by setting 'undolevels'. Also tests :earlier and :later. STARTTEST :echo undotree().entries ENDTEST STARTTEST :" Delete three characters and undo Gx:set ul=100 x:set ul=100 x:.w! test.out g-:.w >>test.out g-:.w >>test.out g-:.w >>test.out g-:.w >>test.out :" :/^111/w >>test.out :" Delete three other characters and go back in time step by step $x:set ul=100 x:set ul=100:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for undo tree./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 1 line, 25 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :echo undotree().entries []/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 97 lines, 1501 characters written:set ff& cpo+=A /ENDTEST:set ul=100 ob^[ :set ul=100 o1^[a2^R=setline('.','1234') ^[uu:" oc^[ :set ul=100 o1^[a2^R=setline('.','1234') ^[u:" od^[ :set ul=100 o1^[a2^R=string(123) ^[u:" :%w >>test.out :qa! ENDTEST 1111 ----- 2222 ----- 123456789 :so! Xdotest :" Delete three characters and undo 23456789:set ul=100 3456789:set ul=100 456789:.w! test.out "test.out" [New File] 1 line, 7 characters written 1 change; before #3 0 seconds ago3456789 :.w >>test.out "test.out" 1 line, 8 characters appended 1 change; before #2 0 seconds ago23456789 :.w >>test.out "test.out" 1 line, 9 characters appended 1 change; before #1 0 seconds ago123456789 :.w >>test.out "test.out" 1 line, 10 characters appended Already at oldest change:.w >>test.out "test.out" 1 line, 10 characters appended:" :/^111/w >>test.out search hit BOTTOM, continuing at TOP "test.out" 1 line, 11 characters appended:" Delete three other characters and go back in time step by step :set ul=100 :set ul=100 :.w >>test.out "test.out" 1 line, 7 characters appended:sleep 1  1 change; before #6 1 seconds ago7:.w >>test.out "test.out" 1 line, 8 characters appended 1 change; before #5 1 seconds ago8:.w >>test.out "test.out" 1 line, 9 characters appended 4 changes; after #3 1 seconds ago456789:.w >>test.out "test.out" 1 line, 7 characters appended 1 change; before #3 1 seconds ago3456789 :.w >>test.out "test.out" 1 line, 8 characters appended 1 change; before #2 1 seconds ago23456789 :.w >>test.out "test.out" 1 line, 9 characters appended 1 change; before #1 1 seconds ago123456789 :.w >>test.out "test.out" 1 line, 10 characters appended Already at oldest change:.w >>test.out "test.out" 1 line, 10 characters appended Already at oldest change:.w >>test.out "test.out" 1 line, 10 characters appended 3 changes; after #6 1 seconds ago:.w >>test.out "test.out" 1 line, 7 characters appended:" :/^222/w >>test.out search hit BOTTOM, continuing at TOP "test.out" 1 line, 11 characters appended:" Delay for three seconds and go some seconds forward and backward :sleep 2 6a:set ul=100 ab:set ul=100 bc:set ul=100 :.w >>test.out "test.out" 1 line, 10 characters appended:ear 1s 3 changes; before #7 0 seconds ago:.w >>test.out "test.out" 1 line, 7 characters appended:ear 3s 3 changes; before #1 3 seconds ago789:.w >>test.out "test.out" 1 line, 10 characters appended:later 1s 3 changes; after #6 3 seconds ago:.w >>test.out "test.out" 1 line, 7 characters appended:later 1h 3 changes; after #9 0 seconds agoabc:.w >>test.out "test.out" 1 line, 10 characters appended:" :" test undojoin  aaaa :set ul=100  bbbb 1 line less; before #11 0 seconds ago~:.w >>test.out "test.out" 1 line, 5 characters appended bbbb:set ul=100 :undojoin  cccc 2 fewer lines; before #12 0 seconds ago~~:.w >>test.out "test.out" 1 line, 5 characters appended:e! Xtest "Xtest" [New File]~~~~~ ~~~~~~~~~ ~~~ ~~~one one one:set ul=100 :w! "Xtest" [New File] 1 line, 12 characters written two:set ul=100  two:set ul=100 :w "Xtest" 3 lines, 20 characters written three:earlier 1f 1 line less; before #4 0 seconds ago~:" expect "one one one\ntwo\ntwo" :%yank a 3 lines yanked:earlier 1f 2 fewer lines; before #2 0 seconds ago~~:" expect "one one one" :%yank b :earlier 1f 1 line less; before #1 0 seconds ago:" expect empty line :%yank c :later 1f 1 more line; after #1 0 seconds agoone one one :" expect "one one one" :%yank d :later 1f 2 more lines; after #3 0 seconds agotwo two:" expect "one one one\ntwo\ntwo" :%yank e 3 lines yanked:later 1f 1 more line; after #4 0 seconds agothree:" expect "one one one\ntwo\ntwo\nthree" ---:0put e 3 more linesone one one two two3 more lines---:0put d one one one ---:0put c ---:0put b one one one ---:0put a 3 more linesone one one two two3 more lines---:w >>test.out "test.out" 19 lines, 115 characters appended:so small.vim :set nocp viminfo+=nviminfo :enew! ~~~~~~ ~~~~~~~~~~~~-- INSERT --a:set ul=100 -- INSERT --b:set ul=100 -- INSERT --1-- INSERT --=setline('.','1234') 20 34-- INSERT --u31 line less; before #4 0 seconds ago~3~:" -- INSERT --c:set ul=100 -- INSERT --1-- INSERT --=setline('.','1234') 20 34-- INSERT --u31 line less; before #7 0 seconds ago~:" -- INSERT --d:set ul=100 -- INSERT --1-- INSERT --=string(123) 21231 line less; before #9 0 seconds ago~:" :%w >>test.out "test.out" 6L, 12C appended:qa! # For flaky tests retry one time. flaky test ok first time # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test62.failed test.ok test.out X* viminfo cp test62.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test62.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test62.in" 191 lines, 5514 charactersTests for tab pages STARTTEST :so small.vim :lang C :" Simple test for opening and closing a tab page :tabnew :let nr = tabpagenr() :q :call append(line('$'), 'tab page ' . nr) :unlet nr :" :" Open three tab pages and use ":tabdo" :0tabnew :1tabnew :888tabnew :tabdo call append(line('$'), 'this is tab page ' . tabpagenr()) :tabclose! 2 :tabrewind :let line1 = getline('$') :undo :q :tablast:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for tab pages/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 185 lines, 5465 characters written:set ff& cpo+=A /ENDTESTC tabnext 1autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3C tabnext 3let g:r+=[tabpagenr().'/'.tabpagenr('$')] elselet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] endif endfunction :call Test() :$ put =g:r :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: :so! Xdotest :so small.vim :lang C :" Simple test for opening and closing a tab page :tabnew  test62.in | [No Name] _________________________________________________________X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:let nr = tabpagenr() :q C tabnext 1autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3C tabnext 3let g:r+=[tabpagenr().'/'.tabpagenr('$')] elselet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] endif endfunction :call Test() :$ put =g:r :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: :call append(line('$'), 'tab page ' . nr) :unlet nr :" :" Open three tab pages and use ":tabdo" :0tabnew  [No Name] | + test62.in _______________________________________________________X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:1tabnew  [No Name] | [No Name] | + test62.in ___________________________________________X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:888tabnew  [No Name] | [No Name] | + test62.in | [No Name] _______________________________X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:tabdo call append(line('$'), 'this is tab page ' . tabpagenr())  + [No Name] | + [No Name] | + test62.in | + [No Name] _________________________Xthis is tab page 4 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:tabclose! 2 test62.in| + [No Name] _______________X:tabrewind  + [No Name] | + test62.in | + [No Name] _______________________________________Xthis is tab page 1 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:let line1 = getline('$') :undo 2 fewer lines; before #1 0 seconds ago[No Name] | + test62.in | + [No Name] ___X~:q  + test62.in | + [No Name] _____________________________________________________XC tabnext 3let g:r+=[tabpagenr().'/'.tabpagenr('$')] elselet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] endif endfunction :call Test() :$ put =g:r :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: tab page 2 :tablast  + test62.in | + [No Name] _____________________________________________________Xthis is tab page 4 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:let line2 = getline('$') :q! C tabnext 3let g:r+=[tabpagenr().'/'.tabpagenr('$')] elselet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] endif endfunction :call Test() :$ put =g:r :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: tab page 2 this is tab page 3:call append(line('$'), line1) :call append(line('$'), line2) :unlet line1 line2 :" :" Test for settabvar() and gettabvar() functions. Open a new tab page and :" set 3 variables to a number, string and a list. Verify that the variables :" are correctly set. :tabnew  + test62.in | [No Name] _______________________________________________________X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:tabfirst  + test62.in | [No Name] _______________________________________________________Xlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] endif endfunction :call Test() :$ put =g:r :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: tab page 2 this is tab page 3 this is tab page 1 this is tab page 4:call settabvar(2, 'val_num', 100)  + test62.in | [No Name] _______________________________________________________Xlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] endif endfunction :call Test() :$ put =g:r :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: tab page 2 this is tab page 3 this is tab page 1 this is tab page 4:call settabvar(2, 'val_str', 'SetTabVar test')  + test62.in | [No Name] _______________________________________________________Xlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] endif endfunction :call Test() :$ put =g:r :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: tab page 2 this is tab page 3 this is tab page 1 this is tab page 4:call settabvar(2, 'val_list', ['red', 'blue', 'green'])  + test62.in | [No Name] _______________________________________________________Xlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] endif endfunction :call Test() :$ put =g:r :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: tab page 2 this is tab page 3 this is tab page 1 this is tab page 4:" :let test_status = 'gettabvar: fail' :if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar tes t' && gettabvar(2, 'val_list') == ['red', 'blue', 'green'] : : let test_status = 'gettabvar: pass' : :endif  + test62.in | [No Name] _______________________________________________________Xlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter:call append(line('$'), test_status) :" :tabnext 2  + test62.in | [No Name] _______________________________________________________X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~:let test_status = 'settabvar: fail' :if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'] : : let test_status = 'settabvar: pass' : :endif  + test62.in | [No Name] _______________________________________________________X:tabclose let g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] endif endfunction :call Test() :$ put =g:r :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: tab page 2 this is tab page 3 this is tab page 1 this is tab page 4 gettabvar: pass:call append(line('$'), test_status) :" :if has('gui') || has('clientserver') : :" Test for ":tab drop exist-file" to keep current window. : :sp test1 : :tab drop test1 : :let test_status = 'tab drop 1: fail' : :if tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1 : : let test_status = 'tab drop 1: pass' : :endif : :close : :call append(line('$'), test_status) : :" : :" : :" Test for ":tab drop new-file" to keep current window of tabpage 1. : :split : :tab drop newfile : :let test_status = 'tab drop 2: fail' : :if tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1 : : let test_status = 'tab drop 2: pass' : :endif : :tabclose : :q : :call append(line('$'), test_status) : :" : :" : :" Test for ":tab drop multi-opend-file" to keep current tabpage and window. : :new test1 : :tabnew : :new test1 : :tab drop test1 : :let test_status = 'tab drop 3: fail' : :if tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1 : : let test_status = 'tab drop 3: pass' : :endif : :tabclose : :q : :call append(line('$'), test_status) : :else : :" :drop not supported : :call append(line('$'), 'tab drop 1: pass') : :call append(line('$'), 'tab drop 2: pass') : :call append(line('$'), 'tab drop 3: pass') : :endif let g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] endif endfunction :call Test() :$ put =g:r :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: tab page 2 this is tab page 3 this is tab page 1 this is tab page 4 gettabvar: pass:" :" :for i in range(9) | tabnew | endfor  + 2.in | Name] | Name] | Name] | Name] | Name] | Name] | Name] | Name] | Name] X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ + 2.in | Name] | Name] | Name] | Name] | Name] | Name] | Name] | Name] | Name] Xendif endfunction :call Test() :$ put =g:r :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: tab page 2 this is tab page 3 this is tab page 1 this is tab page 4 gettabvar: pass settabvar: pass tab drop 1: pass tab drop 2: pass tab drop 3: pass ~ ~  =tabpagenr() 1:tabmove 5  Name] || + .in | X=tabpagenr() 6 :tabmove -2 | + .in || Name] | X=tabpagenr() 4 :tabmove +4 | Name] || + .in | X=tabpagenr() 8 :tabmove | Name] || + .in X=tabpagenr() 10 :tabmove -20  + 2.in || Name] X=tabpagenr() 1 :tabmove +20  Name] || + .in X=tabpagenr() 10 :3tabmove | + .in || Name] X=tabpagenr() 4 :7tabmove 5 | Name] || + .in | X=tabpagenr() 6 :let a='No error caught.' :try : :tabmove foo : :catch E474 : :let a='E474 caught.' : :endtry  Name] | Name] | Name] | Name] | Name] | + .in | Name] | Name] | Name] | Name] XENDTEST Results: =a E474 caught.:" :" Test autocommands :tabonly! :qa!:let g:r=[] :command -nargs=1 -bar C :call add(g:r, '=== ' . . ' ===')| :function Test() : let hasau=has('autocmd') : if hasau : autocmd TabEnter * :call add(g:r, 'TabEnter') : autocmd WinEnter * :call add(g:r, 'WinEnter') : autocmd BufEnter * :call add(g:r, 'BufEnter') : autocmd TabLeave * :call add(g:r, 'TabLeave') : autocmd WinLeave * :call add(g:r, 'WinLeave') : autocmd BufLeave * :call add(g:r, 'BufLeave') : endif : let t:a='a' : C tab split : if !hasau : let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter'] : endif : let t:a='b' : C tabnew : if !hasau : let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeav e', 'BufEnter'] : endif : let t:a='c' : call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")' ))) : C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') : call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")' ))) : let w:a='a' : C vsplit : if !hasau : let g:r+=['WinLeave', 'WinEnter'] : endif : let w:a='a' : let tabn=tabpagenr() : let winr=range(1, winnr('$')) : C tabnext 1 : if !hasau : let g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnte r', 'BufEnter'] : endif : call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")') )) : C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)') : call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")') )) : if hasau : augroup TabDestructive : autocmd TabEnter * :C tabnext 2 | C tabclose 3 : augroup END : C tabnext 3 : let g:r+=[tabpagenr().'/'.tabpagenr('$')] : autocmd! TabDestructive TabEnter : C tabnew : C tabnext 1 : autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3 : C tabnext 3 : let g:r+=[tabpagenr().'/'.tabpagenr('$')] : else : let g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","Wi nEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew == =","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnex t 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabne xt 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] : endif : endfunction :qa! ENDTEST Results: tab page 2 this is tab page 3 this is tab page 1 this is tab page 4 gettabvar: pass settabvar: pass tab drop 1: pass tab drop 2: pass tab drop 3: pass 1 6 4 8 10 1 10 4 6 E474 caught. :call Test()  + test62.in | + test62.in _____________________________________________________XENDTEST Results: tab page 2 this is tab page 3 this is tab page 1 this is tab page 4 gettabvar: pass settabvar: pass tab drop 1: pass tab drop 2: pass tab drop 3: pass 1 6 4 8 10 1 10 4 6 E474 caught. :$ put =g:r 68 more linesWinLeave TabLeave WinEnter TabEnterBufEnter=== tabnext 3 ===BufLeaveWinLeaveTabLeaveWinEnterTabEnter=== tabnext 2 === BufLeave WinLeave TabLeave WinEnter TabEnter === tabnext 2 === === tabclose 3 === BufEnter === tabclose 3 === 2/2:" :" :/^Results/,$w! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 88 lines, 1038 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test63.failed test.ok test.out X* viminfo cp test63.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test63.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test63.in" 157 lines, 4784 charactersTest for ":match", ":2match", ":3match", "clearmatches()", "getmatches()", "matchadd()", "matcharg()", "matchdelete()", and "setmatches()". STARTTEST :so small.vim :" --- Check that "matcharg()" returns the correct group and pattern if a match :" --- is defined. :let @r = "*** Test 1: " :highlight MyGroup1 ctermbg=red :highlight MyGroup2 ctermbg=green :highlight MyGroup3 ctermbg=blue :match MyGroup1 /TODO/ :2match MyGroup2 /FIXME/ :3match MyGroup3 /XXX/ :if matcharg(1) == ['MyGroup1', 'TODO'] && matcharg(2) == ['MyGroup2', 'FIXME'] && matcharg(3) == ['MyGroup3', 'XXX'] : let @r .= "OK\n" :else : let @r .= "FAILED\n" :endif :" --- Check that "matcharg()" returns an empty list if the argument is not 1, :" --- 2 or 3 (only 0 and 4 are tested). :let @r .= "*** Test 2: ":set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for ":match", ":2match", ":3match", "clearmatches()", "getmatches()",/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 150 lines, 4605 characters written:set ff& cpo+=A /ENDTEST:call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :let rf3 = setmatches([{'wrong key': 'wrong value'}]) :if rs1 == 0 && rs2 == 0 && rf1 == -1 && rf2 == -1 && rf3 == -1 : let @r .= "OK\n" :else : let @r .= "FAILED\n" :endif :unlet rs1 :unlet rs2 :unlet rf1 :unlet rf2 :unlet rf3 :highlight clear MyGroup1 :highlight clear MyGroup2 :highlight clear MyGroup3 G"rp :/^Results/,$wq! test.out ENDTEST Results of test63: ~ :so! Xdotest :so small.vim :" --- Check that "matcharg()" returns the correct group and pattern if a match :" --- is defined. :let @r = "*** Test 1: " :highlight MyGroup1 ctermbg=red :highlight MyGroup2 ctermbg=green :highlight MyGroup3 ctermbg=blue :match MyGroup1 /TODO/ :2match MyGroup2 /FIXME/ :3match MyGroup3 /XXX/ :if matcharg(1) == ['MyGroup1', 'TODO'] && matcharg(2) == ['MyGroup2', 'FIXME'] && matcharg(3) == ['MyGroup3', 'XXX'] : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :let rf3 = setmatches([{'wrong key': 'wrong value'}]) :" --- Check that "matcharg()" returns an empty list if the argument is not 1, :" --- 2 or 3 (only 0 and 4 are tested). :let @r .= "*** Test 2: " :if matcharg(0) == [] && matcharg(4) == [] : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :let rf3 = setmatches([{'wrong key': 'wrong value'}]) :" --- Check that "matcharg()" returns ['', ''] if a match is not defined. :let @r .= "*** Test 3: " :match :2match :3match :if matcharg(1) == ['', ''] && matcharg(2) == ['', ''] && matcharg(3) == ['', ' ']: : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :let rf3 = setmatches([{'wrong key': 'wrong value'}]) :" --- Check that "matchadd()" and "getmatches()" agree on added matches and :" --- that default values apply. :let @r .= "*** Test 4: " :let m1 = matchadd("MyGroup1", "TODO") :let m2 = matchadd("MyGroup2", "FIXME", 42) :let m3 = matchadd("MyGroup3", "XXX", 60, 17) :if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, ' id': 4}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 42, 'id': 5}, {'g roup': 'MyGroup3', 'pattern': 'XXX', 'priority': 60, 'id': 17}] : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :let rf3 = setmatches([{'wrong key': 'wrong value'}]) :" --- Check that "matchdelete()" deletes the matches defined in the previous :" --- test correctly. :let @r .= "*** Test 5: " :call matchdelete(m1) :call matchdelete(m2) :call matchdelete(m3) :unlet m1 :unlet m2 :unlet m3 :if getmatches() == [] : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :let rf3 = setmatches([{'wrong key': 'wrong value'}]) :" --- Check that "matchdelete()" returns 0 if successful and otherwise -1. :let @r .= "*** Test 6: " :let m = matchadd("MyGroup1", "TODO") :let r1 = matchdelete(m) :let r2 = matchdelete(42) E803: ID not found: 42:if r1 == 0 && r2 == -1 : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :let rf3 = setmatches([{'wrong key': 'wrong value'}]) :unlet m :unlet r1 :unlet r2 :" --- Check that "clearmatches()" clears all matches defined by ":match" and :" --- "matchadd()". :let @r .= "*** Test 7: " :let m1 = matchadd("MyGroup1", "TODO") :let m2 = matchadd("MyGroup2", "FIXME", 42) :let m3 = matchadd("MyGroup3", "XXX", 60, 17) :match MyGroup1 /COFFEE/ :2match MyGroup2 /HUMPPA/ :3match MyGroup3 /VIM/ :call clearmatches() :if getmatches() == [] : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :let rf3 = setmatches([{'wrong key': 'wrong value'}]) :unlet m1 :unlet m2 :unlet m3 :" --- Check that "setmatches()" restores a list of matches saved by :" --- "getmatches()" without changes. (Matches with equal priority must also :" --- remain in the same order.) :let @r .= "*** Test 8: " :let m1 = matchadd("MyGroup1", "TODO") :let m2 = matchadd("MyGroup2", "FIXME", 42) :let m3 = matchadd("MyGroup3", "XXX", 60, 17) :match MyGroup1 /COFFEE/ :2match MyGroup2 /HUMPPA/ :3match MyGroup3 /VIM/ :let ml = getmatches() :call clearmatches() :call setmatches(ml) :if getmatches() == ml : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :let rf3 = setmatches([{'wrong key': 'wrong value'}]) :call clearmatches() :unlet m1 :unlet m2 :unlet m3 :unlet ml :" --- Check that "setmatches()" will not add two matches with the same ID. The :" --- expected behaviour (for now) is to add the first match but not the :" --- second and to return 0 (even though it is a matter of debate whether :" --- this can be considered successful behaviour). :let @r .= "*** Test 9: " :let r1 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 10, 'id': 1}]) E801: ID already taken: 1Press ENTER or type command to continue:if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, ' id': 1}] && r1 == 0 : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :let rf3 = setmatches([{'wrong key': 'wrong value'}]) :if rs1 == 0 && rs2 == 0 && rf1 == -1 && rf2 == -1 && rf3 == -1 :call clearmatches() :unlet r1 :" --- Check that "setmatches()" returns 0 if successful and otherwise -1. :" --- (A range of valid and invalid input values are tried out to generate the :" --- return values.) :let @r .= "*** Test 10: " :let rs1 = setmatches([]) :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :call clearmatches() :call clearmatches() :let rf1 = setmatches(0) E714: List required:let rf2 = setmatches([0]) E474: Invalid argument:let rf3 = setmatches([{'wrong key': 'wrong value'}]) E474: Invalid argument:if rs1 == 0 && rs2 == 0 && rf1 == -1 && rf2 == -1 && rf3 == -1 : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :let rf3 = setmatches([{'wrong key': 'wrong value'}]) :unlet rs1 :unlet rs2 :unlet rf1 :unlet rf2 :unlet rf3 :highlight clear MyGroup1 :highlight clear MyGroup2 :highlight clear MyGroup3  10 more lines*** Test 1: OK *** Test 2: OK :/^Results/,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 11 lines, 170 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test64.failed test.ok test.out X* viminfo cp test64.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test64.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test64.in" 638 lines, 26459 charactersTest for regexp patterns without multi-byte support. See test95 for multi-byte tests. A pattern that gives the expected result produces OK, so that we know it was actually tried. STARTTEST :so small.vim :" tl is a List of Lists with: :" regexp pattern :" text to test the pattern on :" expected match (optional) :" expected submatch 1 (optional) :" expected submatch 2 (optional) :" etc. :" When there is no match use only the first two items. :let tl = [] :" :"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" :"""" Previously written tests """""""""""""""""""""""""""""""" :"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" :" :call add(tl, [2, 'ab', 'aab', 'ab']):set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for regexp patterns without multi-byte support./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 605 lines, 25984 characters written:set ff& cpo+=A /ENDTEST:" start and end of buffer /\%^ yeGo^[p:" 50%/\%^.. yeGo^[pA END^[:" 50%/\%$ "ayb20gg/..\%$ "bybGo^["apo^["bp:" :" :""""" Write the results """"""""""""" :/\%#=1^Results/,$wq! test.out ENDTEST Substitute here: Ta 5 Ac 7 Behind: asdfasd\zs.', 'aword. ', '.']) :call add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is [a t', ' ']) :" :"""" Tests for \@= and \& features :call add(tl, [2, 'abc\@=', 'abc', 'ab']) :call add(tl, [2, 'abc\@=cd', 'abcd', 'abcd']) :call add(tl, [2, 'abc\@=', 'ababc', 'ab']) :" will never match, no matter the input text :call add(tl, [2, 'abcd\@=e', 'abcd']) :" will never match :call add(tl, [2, 'abcd\@=e', 'any text in here ... ']) :call add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc']) :call add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B']) :call add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', ' John is Bobs friend']) :" start and end of buffer:call add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))']) :call add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B']) :call add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob']) :call add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep ', 'test1']) :" start and end of buffer:call add(tl, [2, 'foo\(bar\)\@!', 'foobar']) :call add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo']) :call add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else']) :call add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' ']) :call add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar']) :call add(tl, [2, '\(foo\)\@!...bar', 'foobar']) :call add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo ']) :call add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar ']) :call add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo']) :call add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:'] ):" start and end of buffer:call add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 's']) :" start and end of buffer:call add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe']) :call add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR']) :" :"""" Combining different tests and features :call add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab']) :call add(tl, [2, '', 'abcd', '']) :call add(tl, [2, '\v(())', 'any possible text', '']) :call add(tl, [2, '\v%(ab(xyz)c)', ' abxyzc ', 'abxyzc', 'xyz']) :call add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', '']) :call add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a']) :" :"""" \%u and friends :call add(tl, [2, '\%d32', 'yes no', ' ']) :call add(tl, [2, '\%o40', 'yes no', ' ']) :call add(tl, [2, '\%x20', 'yes no', ' ']) :call add(tl, [2, '\%u0020', 'yes no', ' ']) :call add(tl, [2, '\%U00000020', 'yes no', ' ']) :call add(tl, [2, '\%d0', "yes\x0ano", "\x0a"]) :" :""""" \%[abc] :call add(tl, [2, 'foo\%[bar]', 'fobar']) :call add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar']) :call add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo']) :call add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob']) :call add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba']) :call add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar']) :call add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx']) :call add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx']) :call add(tl, [2, '\%[bar]x', 'barxx', 'barx']) :call add(tl, [2, '\%[bar]x', 'bxx', 'bx']) :call add(tl, [2, '\%[bar]x', 'xxx', 'x']) :call add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar']) :call add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r']) :call add(tl, [2, '@\%[\w\-]*', '[@pandoc]', '@pandoc' ]):" start and end of buffer:" :"""" Alternatives, must use first longest match :call add(tl, [2, 'goo\|go', 'google', 'goo']) :call add(tl, [2, '\', 'foobar']) :call add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo']) :call add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo']) :" :" complicated look-behind match :call add(tl, [2, '\(r\@<=\|\w\@ :call add(tl, [2, '\(a*\)\@>a', 'aaaa']) :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa']) :call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab']) :call add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', '']) :" TODO: BT engine does not restore submatch after failure :call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa']) :" :"""" "\_" prepended negated collection matches EOL :call add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"]) :call add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"]) :" :"""" Requiring lots of states. :call add(tl, [2, '[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}', " 12345678-1234-1234-1234-123456789012 ", "12345678-1234-1234-1234-123456789012", "1234-"]) :" start and end of buffer /\%^:" :"""" Skip adding state twice :call add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", "#if", ' FOO']) :" start and end of buffer:" :"""" Run the tests :" :for t in tl : : let re = t[0] : : let pat = t[1] : : let text = t[2] : : let matchidx = 3 : : for engine in [0, 1, 2] : : if engine == 2 && re == 0 || engine == 1 && re ==1 : : continue : : endif : : let ®expengine = engine : : try : : let l = matchlist(text, pat) : : catch : : $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te xt . '\", caused an exception: \"' . v:exception . '\"' : : endtry : :" check the match itself : : if len(l) == 0 && len(t) > matchidx : : $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te xt . '\", did not match, expected: \"' . t[matchidx] . '\"' : : elseif len(l) > 0 && len(t) == matchidx : : $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te xt . '\", match: \"' . l[0] . '\", expected no match' : : elseif len(t) > matchidx && l[0] != t[matchidx] : : $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"' : : else : : $put ='OK ' . engine . ' - ' . pat : : endif : : if len(l) > 0 : :" check all the nine submatches : : for i in range(1, 9) :: if len(t) <= matchidx + i :: let e = '' :: else :: let e = t[matchidx + i] :: endif :: if l[i] != e :: $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: "' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"' :: endif :: endfor : : unlet i : : endif : : endfor : :endfor OK 0 - \(a*\)\@>b OK 1 - \(a*\)\@>b OK 2 - \(a*\)\@>b OK 0 - ^\(.\{-}b\)\@>. OK 1 - ^\(.\{-}b\)\@>. OK 2 - ^\(.\{-}b\)\@>. OK 0 - \(.\{-}\)\(\)\@>$ OK 1 - \(.\{-}\)\(\)\@>$ OK 2 - \(.\{-}\)\(\)\@>$ OK 0 - \(a*\)\@>a\|a\+ OK 2 - \(a*\)\@>a\|a\+ OK 0 - \_[^8-9]\+ OK 1 - \_[^8-9]\+ OK 2 - \_[^8-9]\+ OK 0 - \_[^a]\+ OK 1 - \_[^a]\+ OK 2 - \_[^a]\+ OK 0 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12} OK 1 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12} OK 2 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12} OK 0 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@= OK 1 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@= OK 2 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@= :unlet t tl e l :" :"""""" multi-line tests """""""""""""""""""" :let tl = [] :" :"""" back references :call add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']]) :call add(tl, [2, '\v.*\/(.*)\n.*\/\1$', ['./Dir1/Dir2/zyxwvuts.txt', './Dir1/D ir2/abcdefgh.bat', '', './Dir1/Dir2/file1.txt', './OtherDir1/OtherDir2/file1.txt '], ['./Dir1/Dir2/zyxwvuts.txt', './Dir1/Dir2/abcdefgh.bat', '', 'XX']]) OK 0 - \(a*\)\@>b OK 1 - \(a*\)\@>b :" :"""" line breaks :call add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def' , 'XXjk', 'lmn']]) OK 0 - \(a*\)\@>b :" :" Check that \_[0-9] matching EOL does not break a following \> :call add(tl, [2, '\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\) \.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>', ['', 'loca lnet/192.168.0.1', ''], ['', 'localnet/XX', '']]) OK 0 - \(a*\)\@>b OK 1 - \(a*\)\@>b :" :" Check a pattern with a line break and ^ and $ :call add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']]) :" :call add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']]) :" :"""" Run the multi-line tests :" :$put ='multi-line tests' multi-line tests :for t in tl : : let re = t[0] : : let pat = t[1] : : let before = t[2] : : let after = t[3] : : for engine in [0, 1, 2] : : if engine == 2 && re == 0 || engine == 1 && re ==1 : : continue : : endif : : let ®expengine = engine : : new : : call setline(1, before) : : exe '%s/' . pat . '/XX/' : : let result = getline(1, '$') : : q! : : if result != after : : $put ='ERROR: pat: \"' . pat . '\", text: \"' . string(before) . '\", expected: \"' . string(after) . '\", got: \"' . string(result) . '\"' : : else : : $put ='OK ' . engine . ' - ' . pat : : endif : : endfor : :endfor OK 2 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@= multi-line tests OK 0 - ^.\(.\).\_..\1. OK 1 - ^.\(.\).\_..\1. OK 2 - ^.\(.\).\_..\1. OK 0 - \v.*\/(.*)\n.*\/\1$ OK 1 - \v.*\/(.*)\n.*\/\1$ OK 2 - \v.*\/(.*)\n.*\/\1$ OK 0 - \S.*\nx OK 1 - \S.*\nx OK 2 - \S.*\nx OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 2 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 0 - a\n^b$\n^c OK 1 - a\n^b$\n^c OK 2 - a\n^b$\n^c OK 0 - \(^.\+\n\)\1 OK 1 - \(^.\+\n\)\1 OK 2 - \(^.\+\n\)\1 :unlet t tl :" :" Check that using a pattern on two lines doesn't get messed up by using :" matchstr() with \ze in between. :set re=0 /^Substitute here search hit BOTTOM, continuing at TOPyeGo^[p:" 50%/\%^.. yeGo^[pA END^[:" 50%/\%$ "ayb20gg/..\%$ "bybGo^["apo^["bp:" :" :""""" Write the results """"""""""""" :/\%#=1^Results/,$wq! test.out ENDTEST Substitute here: Ta 5 Ac 7 Behind: asdfasdTa 5 Ac 7 /^Substitute here search hit BOTTOM, continuing at TOP:.+1,.+2yank OK 2 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@= multi-line tests OK 0 - ^.\(.\).\_..\1. OK 1 - ^.\(.\).\_..\1. OK 2 - ^.\(.\).\_..\1. OK 0 - \v.*\/(.*)\n.*\/\1$ OK 1 - \v.*\/(.*)\n.*\/\1$ OK 2 - \v.*\/(.*)\n.*\/\1$ OK 0 - \S.*\nx OK 1 - \S.*\nx OK 2 - \S.*\nx OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 2 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 0 - a\n^b$\n^c OK 1 - a\n^b$\n^c OK 2 - a\n^b$\n^c OK 0 - \(^.\+\n\)\1 OK 1 - \(^.\+\n\)\1 OK 2 - \(^.\+\n\)\1  Ta 5 :" :" :" Check a pattern with a look beind crossing a line boundary /^Behind: search hit BOTTOM, continuing at TOP"ayb20gg/..\%$ "bybGo^["apo^["bp:" :" :""""" Write the results """"""""""""" :/\%#=1^Results/,$wq! test.out ENDTEST Substitute here: Ta 5 Ac 7 Behind: asdfasd OK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 2 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 0 - a\n^b$\n^c OK 1 - a\n^b$\n^c OK 2 - a\n^b$\n^c OK 0 - \(^.\+\n\)\1 OK 1 - \(^.\+\n\)\1 OK 2 - \(^.\+\n\)\1 Ta 5 Ac 7  xxstart3 :" :" :" Check matching Visual area /^Visual: search hit BOTTOM, continuing at TOPTa 5 Ac 7 Behind: asdfasds/\%Ve/E/g 3 substitutions on 1 linexE thE thE andaxand andaxand :'<,'>s/\%Va/A/g 6 substitutions on 1 lineAndAxAnd AndAxAnd oooxofor forox oooxofor foro:'<,'>s/\%Vo/O/g 8 substitutions on 2 linesxOfOr fOrOx oooxOfOr fOrO :/^Visual/+1,/^Visual/+4yank search hit BOTTOM, continuing at TOP 4 lines yankedOK 0 - \v.*\/(.*)\n.*\/\1$ OK 1 - \v.*\/(.*)\n.*\/\1$ OK 2 - \v.*\/(.*)\n.*\/\1$ OK 0 - \S.*\nx OK 1 - \S.*\nx OK 2 - \S.*\nx OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 2 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 0 - a\n^b$\n^c OK 1 - a\n^b$\n^c OK 2 - a\n^b$\n^c OK 0 - \(^.\+\n\)\1 OK 1 - \(^.\+\n\)\1 OK 2 - \(^.\+\n\)\1 Ta 5 Ac 7 xxstart3  4 more lines thexE thE thExethe 4 more lines:" :" :" Check matching marks /^Marks: search hit BOTTOM, continuing at TOPasdfasd's.*\%<'e../here/ hereasdf asdf dfsa dfsadf:.-4,.+6s/.\%>'s\_.*\%<'e../again/ asdfagainasdfOK 0 - bc*:/^Marks:/+1,/^Marks:/+3yank search hit BOTTOM, continuing at TOP 3 lines yankedOK 2 - \S.*\nx OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 2 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 0 - a\n^b$\n^c OK 1 - a\n^b$\n^c OK 2 - a\n^b$\n^c OK 0 - \(^.\+\n\)\1 OK 1 - \(^.\+\n\)\1 OK 2 - \(^.\+\n\)\1 Ta 5 Ac 7 xxstart3 thexE thE thExethe AndAxAnd AndAxAnd oooxOfOr fOrOxooo oooxOfOr fOrOxooo  3 more linesasdfhereasdf asdfagainasdf 3 more lines:" :" :" Check patterns matching cursor position. :func! Postest() : new : call setline(1, ['ffooooo', 'boboooo', 'zoooooo', 'koooooo', 'moooooo', "\t \t\tfoo", 'abababababababfoo', 'bababababababafoo', '********_']) : call setpos('.', [0, 1, 0, 0]) : s/\%>3c.//g : call setpos('.', [0, 2, 4, 0]) : s/\%#.*$//g : call setpos('.', [0, 3, 0, 0]) : s/\%<3c./_/g : %s/\%4l\%>5c./_/g : %s/\%6l\%>25v./_/g : %s/\%>6l\%3c./!/g : %s/\%>7l\%12c./?/g : %s/\%>7l\%<9l\%>5v\%<8v./#/g : 1,$yank : quit! : endfunc OK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 2 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\> OK 0 - a\n^b$\n^c OK 1 - a\n^b$\n^c OK 2 - a\n^b$\n^c OK 0 - \(^.\+\n\)\1 OK 1 - \(^.\+\n\)\1 OK 2 - \(^.\+\n\)\1 Ta 5 Ac 7 xxstart3 thexE thE thExethe~ -0- :set re=0 :call Postest() 3 substitutions on 3 lines 9 lines yanked Press ENTER or type command to continue:put 9 more lines Press ENTER or type command to continueTa 5 Ac 7 xxstart3thexE thE thExetheAndAxAnd AndAxAndoooxOfOr fOrOxooooooxOfOr fOrOxoooasdfhereasdfasdfagainasdf-0- ffobob__oooookoooo__moooooo f__ ab!babababababfoo ba!ab##abab?bafoo **!*****_ -1- :set re=1 :call Postest() 3 substitutions on 3 lines 9 lines yanked Press ENTER or type command to continue:put 9 more lines Press ENTER or type command to continueasdfhereasdf asdfagainasdf -0- ffobob__oooookoooo__moooooo f__ ab!babababababfoo ba!ab##abab?bafoo **!*****_ -1- ffo bob__ooooo koooo__ moooooo f__ ab!bababababab ba!ab##abab?bafoo **!*****_ -2- :set re=2 :call Postest() 3 substitutions on 3 lines 9 lines yanked Press ENTER or type command to continue:put 9 more lines Press ENTER or type command to continue:" ab!babababababfoo ba!ab##abab?bafoo **!*****_ -1- ffo bob__ooooo koooo__ moooooo f__ ab!bababababab ba!ab##abab?bafoo **!*****_ -2- ffo bob__ooooo koooo__ moooooo f__ ab!bababababab ba!ab##abab?bafoo **!*****_ :" start and end of buffer /\%^ search hit BOTTOM, continuing at TOPTest for regexp patterns without multi-byte support. See test95 for multi-byte tests. A pattern that gives the expected result produces OK, so that we know it was actually tried. STARTTEST :so small.vim :" tl is a List of Lists with: :" regexp pattern :" text to test the pattern on :" expected match (optional) :" expected submatch 1 (optional) :" expected submatch 2 (optional) :" etc. :" When there is no match use only the first two items. :let tl = [] :" :"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" :"""" Previously written tests """""""""""""""""""""""""""""""" :"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" :" :call add(tl, [2, 'ab', 'aab', 'ab']) search hit BOTTOM, continuing at TOPab!babababababfoo ba!ab##abab?bafoo **!*****_ -1- ffo bob __ooooo koooo__ moooooof__ ab!babababababfoo ba!ab##abab?bafoo **!*****_ -2- ffo bob __ooooo koooo__ moooooof__ ab!babababababfoo ba!ab##abab?bafoo **!*****_ Test :" OK 1 - \v(((ab)+)+)+ OK 2 - \v(((ab)+)+)+ OK 0 - \v(((ab)+)+)+ OK 1 - \v(((ab)+)+)+ OK 2 - \v(((ab)+)+)+ OK 0 - \v(a{0,2})+ OK 1 - \v(a{0,2})+ OK 2 - \v(a{0,2})+ OK 0 - \v(a*)+ OK 1 - \v(a*)+ OK 2 - \v(a*)+ OK 0 - \v((a*)+)+ OK 1 - \v((a*)+)+ OK 2 - \v((a*)+)+ OK 0 - \v((ab)*)+ OK 1 - \v((ab)*)+ OK 2 - \v((ab)*)+ OK 0 - \va{1,3} OK 1 - \va{1,3} OK 2 - \va{1,3} OK 0 - \va{2,3} OK 1 - \va{2,3} OK 2 - \va{2,3}/\%^.. search hit BOTTOM, continuing at TOPTest for regexp patterns without multi-byte support. See test95 for multi-byte tests. A pattern that gives the expected result produces OK, so that we know it was actually tried. STARTTEST :so small.vim :" tl is a List of Lists with: :" regexp pattern :" text to test the pattern on :" expected match (optional) :" expected submatch 1 (optional) :" expected submatch 2 (optional) :" etc. :" When there is no match use only the first two items. :let tl = [] :" :"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" :"""" Previously written tests """""""""""""""""""""""""""""""" :"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" :" :call add(tl, [2, 'ab', 'aab', 'ab']) search hit BOTTOM, continuing at TOPba!ab##abab?bafoo **!*****_ -1- ffo bob __ooooo koooo__ moooooof__ ab!babababababfoo ba!ab##abab?bafoo **!*****_ -2- ffo bob __ooooo koooo__ moooooof__ ab!babababababfoo ba!ab##abab?bafoo **!*****_ Test Testt END :" OK 2 - \v(((ab)+)+)+ OK 0 - \v(((ab)+)+)+ OK 1 - \v(((ab)+)+)+ OK 2 - \v(((ab)+)+)+ OK 0 - \v(a{0,2})+ OK 1 - \v(a{0,2})+ OK 2 - \v(a{0,2})+ OK 0 - \v(a*)+ OK 1 - \v(a*)+ OK 2 - \v(a*)+ OK 0 - \v((a*)+)+ OK 1 - \v((a*)+)+ OK 2 - \v((a*)+)+ OK 0 - \v((ab)*)+ OK 1 - \v((ab)*)+ OK 2 - \v((ab)*)+ OK 0 - \va{1,3} OK 1 - \va{1,3} OK 2 - \va{1,3} OK 0 - \va{2,3} OK 1 - \va{2,3} OK 2 - \va{2,3} OK 0 - \v((ab)+|c*)+/\%$ **!*****_ -1- ffo bob __ooooo koooo__ moooooof__ ab!babababababfoo ba!ab##abab?bafoo **!*****_ -2- ffo bob __ooooo koooo__ moooooof__ ab!babababababfoo ba!ab##abab?bafoo **!*****_ Test Test END:" tl is a List of Lists with: :" regexp pattern :" text to test the pattern on :" expected match (optional) :" expected submatch 1 (optional) :" expected submatch 2 (optional) :" etc. :" When there is no match use only the first two items. :let tl = [] :" :"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" :"""" Previously written tests """""""""""""""""""""""""""""""" :"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" :" :call add(tl, [2, 'ab', 'aab', 'ab']) :call add(tl, [2, 'b', 'abcdef', 'b']) :call add(tl, [2, 'bc*', 'abccccdef', 'bcccc']) :call add(tl, [2, 'bc\{-}', 'abccccdef', 'b']) :call add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd']) :call add(tl, [2, 'bc*', 'abbdef', 'b']) :call add(tl, [2, 'c*', 'ccc', 'ccc']) :call add(tl, [2, 'bc*', 'abdef', 'b']) :call add(tl, [2, 'c*', 'abdef', ''])/..\%$ **!*****_ -1- ffo bob __ooooo koooo__ moooooof__ ab!babababababfoo ba!ab##abab?bafoo **!*****_ -2- ffo bob __ooooo koooo__ moooooof__ ab!babababababfoo ba!ab##abab?bafoo **!*****_ Test Test END EN E :" :" :""""" Write the results """"""""""""" :/\%#=1^Results/,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 1099 lines, 20205 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test65.failed test.ok test.out X* viminfo cp test65.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test65.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test65.in" 95 lines, 2153 charactersTest for floating point and logical operators. STARTTEST :so small.vim :if !has("float") : e! test.ok : wq! test.out :endif :" :$put =printf('%f', 123.456) :$put =printf('%e', 123.456) :$put =printf('%g', 123.456) :" check we don't crash on division by zero :echo 1.0 / 0.0 :$put ='+=' :let v = 1.234 :let v += 6.543 :$put =printf('%g', v) :let v = 1.234 :let v += 5 :$put =printf('%g', v) :let a = 5 :let a += 3.333:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for floating point and logical operators./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 89 lines, 2067 characters written:set ff& cpo+=A /ENDTEST:$put =float2nr(123.456) :$put =float2nr(-123.456) :$put ='AND' :$put =and(127, 127) :$put =and(127, 16) :$put =and(127, 128) :$put ='OR' :$put =or(16, 7) :$put =or(8, 7) :$put =or(0, 123) :$put ='XOR' :$put =xor(127, 127) :$put =xor(127, 16) :$put =xor(127, 128) :$put ='invert' :$put =and(invert(127), 65535) :$put =and(invert(16), 65535) :$put =and(invert(128), 65535) :$put =invert(1.0) :/^Results/,$wq! test.out ENDTEST Results of test65: :so! Xdotest :so small.vim :if !has("float") : : e! test.ok : : wq! test.out : :endif :$put =float2nr(123.456) :$put =float2nr(-123.456) :$put ='AND' :" :$put =printf('%f', 123.456) 123.456000 :$put =printf('%e', 123.456) 1.234560e+02 :$put =printf('%g', 123.456) 123.456 :" check we don't crash on division by zero :echo 1.0 / 0.0 inf:$put ='+=' += :let v = 1.234 :let v += 6.543 :$put =printf('%g', v) 7.777 :let v = 1.234 :let v += 5 :$put =printf('%g', v) 6.234 :let a = 5 :let a += 3.333 :$put =string(a) 8.333 :$put ='==' == :let v = 1.234 :$put =v == 1.234 1 :$put =v == 1.2341 0 :$put ='add-subtract' add-subtract :$put =printf('%g', 4 + 1.234) 5.234 :$put =printf('%g', 1.234 - 8) -6.766 :$put ='mult-div' mult-div :$put =printf('%g', 4 * 1.234) 4.936 :$put =printf('%g', 4.0 / 1234) 0.003241 :$put ='dict' dict :$put =string({'x': 1.234, 'y': -2.0e20}) {'x': 1.234, 'y': -2.0e20} :$put ='list' list :$put =string([-123.4, 2.0e-20]) [-123.4, 2.0e-20] :$put ='abs' abs :$put =printf('%d', abs(1456)) 1456 :$put =printf('%d', abs(-4)) 4 :$put =printf('%d', abs([1, 2, 3])) E745: Using a List as a Number -1 :$put =printf('%g', abs(14.56)) 14.56 :$put =printf('%g', abs(-54.32)) 54.32 :$put ='ceil' ceil :$put =printf('%g', ceil(1.456)) 2.0 :$put =printf('%g', ceil(-5.456)) -5.0 :$put =printf('%g', ceil(-4.000)) -4.0 :$put ='floor' floor :$put =printf('%g', floor(1.856)) 1.0 :$put =printf('%g', floor(-5.456)) -6.0 :$put =printf('%g', floor(4.0)) 4.0 :$put ='log10' log10 :$put =printf('%g', log10(1000)) 3.0 :$put =printf('%g', log10(0.01000)) -2.0 :$put ='pow' pow :$put =printf('%g', pow(3, 3.0)) 27.0 :$put =printf('%g', pow(2, 16)) 65536.0 :$put ='round' round :$put =printf('%g', round(0.456)) 0.0 :$put =printf('%g', round(4.5)) 5.0 :$put =printf('%g', round(-4.50)) -5.0 :$put ='sqrt' sqrt :$put =printf('%g', sqrt(100)) 10.0 :echo sqrt(-4.01) -nan:$put ='str2float' str2float :$put =printf('%g', str2float('1e40')) 1.0e40 :$put ='trunc' trunc :$put =printf('%g', trunc(1.456)) 1.0 :$put =printf('%g', trunc(-5.456)) -5.0 :$put =printf('%g', trunc(4.000)) 4.0 :$put ='float2nr' float2nr :$put =float2nr(123.456) 123 :$put =float2nr(-123.456) -123 :$put ='AND' AND :$put =and(127, 127) 127 :$put =and(127, 16) 16 :$put =and(127, 128) 0 :$put ='OR' OR :$put =or(16, 7) 23 :$put =or(8, 7) 15 :$put =or(0, 123) 123 :$put ='XOR' XOR :$put =xor(127, 127) 0 :$put =xor(127, 16) 111 :$put =xor(127, 128) 255 :$put ='invert' invert :$put =and(invert(127), 65535) 65408 :$put =and(invert(16), 65535) 65519 :$put =and(invert(128), 65535) 65407 :$put =invert(1.0) E805: Using a Float as a Number 0 :/^Results/,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 73 lines, 430 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test66.failed test.ok test.out X* viminfo cp test66.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test66.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test66.in" 33 lines, 509 charactersTest for visual block shift and tab characters. STARTTEST :so small.vim /^one fe^V4jR^[ugvr1:'<,'>w! test.out /^abcdefgh ^V4jI ^[j<<11|D 7|a^[ 7|a^[ 7|a^[4k13|^V4j< :$-5,$w >> test.out :$-4,$s/\s\+//g ^V4kI ^[j<< 7|a^[ 7|a^[ 7|a^[4k13|^V4j3< :$-4,$w >> test.out :qa! ENDTEST one two three:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 16 lines, 234 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim /^one one one two three one two three one two three one two three on 4 fewer linesabcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyzmore lines; before #1 0 seconds agoone two three one two three one two threeone two threeone two threee one one one on1 on1 on1 on1 on1:'<,'>w! test.out "test.out" [New File] 5 lines, 70 characters written/^abcdefgh abcdefghijklmnopqrstuvwxyz a abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz a a a a abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyzc defghijklmnopqrstuvwxyzc defghijklmnopqrstuvwxyzc defghijklmnopqrstuvwxyzi   5 lines > test.out "test.out"6 lines, 151 characters appended:$-4,$s/\s\+//g 7 substitutions on 4 linesabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyza a a a a a a a abcdefghijklmnopqrstuvwxyz abcdefghij abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghij abc defghijklmnopqrstuvwxyzc defghijklmnopqrstuvwxyzc defghijklmnopqrstuvwxyzi   5 lines > test.out "test.out"5 lines, 147 characters appended:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test67.failed test.ok test.out X* viminfo cp test67.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test67.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test67.in" 33 lines, 1109 charactersTest that groups and patterns are tested correctly when calling exists() for autocommands. STARTTEST :so small.vim :let results=[] :augroup auexists :augroup END :call add(results, "##BufEnter: " . exists("##BufEnter")) :call add(results, "#BufEnter: " . exists("#BufEnter")) :au BufEnter * let g:entered=1 :call add(results, "#BufEnter: " . exists("#BufEnter")) :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter")) :augroup auexists :au BufEnter * let g:entered=1 :augroup END :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter")) :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test")) :au BufEnter *.test let g:entered=1 :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test")) :edit testfile.test :call add(results, "#BufEnter#: " . exists("#BufEnter#")) :au BufEnter let g:entered=1:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test that groups and patterns are tested correctly when calling exists() for/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 27 lines, 998 characters written:set ff& cpo+=A /ENDTEST:call add(results, "#BufEnter#: " . exists("#BufEnter#")) :edit testfile2.test :call add(results, "#BufEnter#: " . exists("#BufEnter#")) :e test.out :call append(0, results) :$d :w :qa! ENDTEST  :so! Xdotest :so small.vim :let results=[] :augroup auexists :augroup END :call add(results, "##BufEnter: " . exists("##BufEnter")) :call add(results, "#BufEnter: " . exists("#BufEnter")) :au BufEnter * let g:entered=1 :call add(results, "#BufEnter: " . exists("#BufEnter")) :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter")) :augroup auexists :au BufEnter * let g:entered=1 :augroup END :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter")) :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test")) :au BufEnter *.test let g:entered=1 :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test")) :edit testfile.test "testfile.test" [New File]~~~~~~~~~~~~~~~~~~~~~ ~:call add(results, "#BufEnter#: " . exists("#BufEnter#")) :au BufEnter let g:entered=1 :call add(results, "#BufEnter#: " . exists("#BufEnter#")) :edit testfile2.test "testfile2.test" [New File]:call add(results, "#BufEnter#: " . exists("#BufEnter#")) :e test.out "test.out" [New File]:call append(0, results) ##BufEnter: 1 #BufEnter: 0 #BufEnter: 1 #auexists#BufEnter: 0 #auexists#BufEnter: 1 #BufEnter#*.test: 0 #BufEnter#*.test: 1 #BufEnter#: 0 #BufEnter#: 1 #BufEnter#: 0 :$d ~:w "test.out" [New File] 10 lines, 190 characters written:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test68.failed test.ok test.out X* viminfo cp test68.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test68.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test68.in" 131 lines, 1004 charactersTest for text formatting. Results of test68: STARTTEST :so small.vim /^{/+1 :set noai tw=2 fo=t gRa b^[ ENDTEST { } STARTTEST /^{/+1 :set ai tw=2 fo=tw gqgqjjllab^[ ENDTEST {:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for text formatting./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 4 lines, 48 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim /^{/+1 :set noai tw=2 fo=t a b /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 38 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest /^{/+1 a b :set ai tw=2 fo=tw  b   aa b } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 4 lines, 34 characters written:set ff& cpo+=A  /ENDTEST:set tw=3 fo=t gqgqo a ^V^A^[ ENDTEST  :so! Xdotest /^{/+1 {a ^A :set tw=3 fo=t  ^Aa ^A  } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 5 lines, 58 characters written:set ff& cpo+=A  /ENDTEST:set tw=2 fo=tcq1 comments=:# gqgqjgqgqo a b #a b^[ ENDTEST  :so! Xdotest /^{/+1 {a b :set tw=2 fo=tcq1 comments=:#  #a ba b #a b } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 46 characters written:set ff& cpo+=A  /ENDTEST:set tw=5 fo=tcn comments=:# A b^[jA b^[ ENDTEST  :so! Xdotest /^{/+1 {1 a :set tw=5 fo=tcn comments=:#   b # 1 a # b } /^STARTTEST STARTTEST /^{/+3 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 35 characters written:set ff& cpo+=A  /ENDTEST:set tw=5 fo=t2a si i ^[A_^[ ENDTEST  :so! Xdotest /^{/+3 {x a b :set tw=5 fo=t2a si  b b_  c /^STARTTEST } STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 40 characters written:set ff& cpo+=A  /ENDTEST:set tw=5 fo=qn comments=:# gwap ENDTEST  :so! Xdotest /^{/+1 {# 1 a b :set tw=5 fo=qn comments=:#  # b /^STARTTEST }STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 40 characters written:set ff& cpo+=A  /ENDTEST:set tw=5 fo=q2 comments=:# gwap ENDTEST  :so! Xdotest /^{/+1 {# x :set tw=5 fo=q2 comments=:# # x a # b /^STARTTEST }STARTTEST /^{/+2 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 26 characters written:set ff& cpo+=A  /ENDTEST:set tw& fo=a I^^^[ ENDTEST  :so! Xdotest /^{/+2 {1aa 2bb :set tw& fo=a 1aa ^^2bb }STARTTEST /^STARTTEST  mno pqr/ :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 69 characters written:set ff& cpo+=A  /ENDTEST:setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/ A vwx yz^[ ENDTEST  :so! Xdotest /mno pqr/ * abc def ghi jkl * mno pqr stu :setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/   * vwx yz */ /^STARTTEST STARTTEST /^#/ :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 47 characters written:set ff& cpo+=A  /ENDTEST:setl tw=12 fo=tqnc comments=:# A foobar^[ ENDTEST  :so! Xdotest /^#/  # 1 xxxxx :setl tw=12 fo=tqnc comments=:#  # foobar  /^STARTTEST STARTTEST :g/^STARTTEST/.,/^ENDTEST/d :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2 lines, 56 characters written:set ff& cpo+=A  /ENDTEST :1;/^Results/,$wq! test.out :so! Xdotest :g/^STARTTEST/.,/^ENDTEST/d 63 fewer lines# 1 a# b}{ # x a# b}{ 1aa ^^2bb }/* abc def ghi jkl * mno pqr stu * vwx yz */# 1 xxxxx # foobar:1;/^Results/,$wq! test.out "test.out" [New File] 77 lines, 281 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test69.failed test.ok test.out X* viminfo cp test69.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test69.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test69.in" 185 lines, 2079 charactersTest for multi-byte text formatting. Also test, that 'mps' with multibyte chars works. And test "ra" on multi-byte characters. Also test byteidx() and byteidxcomp() STARTTEST :so mbyte.vim :set encoding=utf-8 ENDTEST Results of test69: STARTTEST /^{/+1 :set tw=2 fo=t gqgqjgqgqo XYZ abc XYZ^[ ENDTEST { XYZ abc XYZ:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for multi-byte text formatting./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 2 lines, 34 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so mbyte.vim :set encoding=utf-8 Test for multi-byte text formatting. Also test, that 'mps' with multibyte chars works. And test "ra" on multi-byte characters. Also test byteidx() and byteidxcomp() STARTTEST :so mbyte.vim :set encoding=utf-8 ENDTEST Results of test69: STARTTEST /^{/+1 :set tw=2 fo=t gqgqjgqgqo XYZ abc XYZ^[ ENDTEST { XYZ abc XYZ/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 5 lines, 58 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest /^{/+1 :set tw=2 fo=t  XYZXY Z abc XYZ } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 8 lines, 80 characters written:set ff& cpo+=A  /ENDTEST:set tw=1 fo=tm gqgqjgqgqjgqgqjgqgqjgqgqo X Xa X a XY X ï¼¹^[ ENDTEST  :so! Xdotest /^{/+1 {X :set tw=1 fo=tm  Xa a X a a XY ï¼¹ X ï¼¹ ï¼¹  X X a X a Xï¼¹ X ï¼¹ } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 13 lines, 140 characters written:set ff& cpo+=A  /ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo X Xa X a XY X ï¼¹ aX abX abcX abX c abXY^[ ENDTEST { X Xa X a XY X ï¼¹ aX abX abcX abX c :so! Xdotest /^{/+1 :set tw=2 fo=tm  a a ï¼¹ ï¼¹ aX X abX X abcX X abX c X c abXY X ï¼¹  X X a X a Xï¼¹ X ï¼¹ aX abX abcX abX c ab X ï¼¹ } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 5 lines, 47 characters written:set ff& cpo+=A  /ENDTEST:set ai tw=2 fo=tm gqgqjgqgqo X Xa^[ ENDTEST  :so! Xdotest /^{/+1 {X :set ai tw=2 fo=tm   Xa a X X a } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 5 lines, 53 characters written:set ff& cpo+=A  /ENDTEST:set noai tw=2 fo=tm gqgqjgqgqo X Xa^[ ENDTEST  :so! Xdotest /^{/+1 {X :set noai tw=2 fo=tm   Xa a X X a } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 13 lines, 169 characters written:set ff& cpo+=A  /ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo X Xa Xaï¼¹ XY XYZ X ï¼¹ X YZ XX XXa XXY^[ ENDTEST { X Xa Xaï¼¹ XY XYZ X ï¼¹ X YZ XX XXa :so! Xdotest /^{/+1 :set tw=2 fo=cqm comments=n:X  XY XZ X Z XX XXa XXY  X Xa XaXY X ï¼¹ XYXZ X ï¼¹ X ï¼¹X Z X X X Xa XXY } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 30 characters written:set ff& cpo+=A  /ENDTEST:set tw=2 fo=tm RXa^[ ENDTEST  :so! Xdotest /^{/+1 { :set tw=2 fo=tm  X a } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 34 characters written:set ff& cpo+=A  /ENDTEST:set mps+=^Vu2018:^Vu2019 d% ENDTEST  :so! Xdotest /^{/+1 {‘ two three ’ four :set mps+=^‘:^’  four } /^STARTTEST STARTTEST /^ra test :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2 lines, 16 characters written:set ff& cpo+=A  /ENDTESTjVjraENDTEST  :so! Xdotest /^ra test ra test ï½bbï½ bbï½  ï½ ï½ï½b aaaaaaa  /^STARTTEST STARTTEST :set whichwrap+=h :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 4 lines, 43 characters written:set ff& cpo+=A  /ENDTEST^xdh :set whichwrap-=h ENDTEST  :so! Xdotest :set whichwrap+=h /^x áxx :set whichwrap-=h /^STARTTEST STARTTEST :let a = '.é.' " one char of two bytes :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 9 lines, 548 characters written:set ff& cpo+=A  /ENDTEST:let b = '.eÌ.' " normal e with composing char /^byteidx :put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteidx(a, 4)]) :put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteidx(b, 4)]) /^byteidxcomp :put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcomp(a, 3), byteidxcomp(a, 4)]) :let b = '.eÌ.' :put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)]) ENDTEST  :so! Xdotest :let a = '.é.' " one char of two bytes :let b = '.eeÌ.' " normal e with composing char /^byteidx byteidx :put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), bytei dx(a, 4)]) :set whichwrap-=h ENDTESTáxSTARTTEST :let a = '.é.' " one char of two bytesb = '.eÌ.' " normal e with composing char /^byteidx:put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteidx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteidx(b, 4)])/^byteidxcomp :put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcomp(a, 3), byteidxcomp(a, 4)]):let b = '.eÌ.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx [0, 1, 3, 4, -1] :put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), bytei dx(b, 4)]) ENDTESTáxSTARTTEST :let a = '.é.' " one char of two bytesb = '.eÌ.' " normal e with composing char /^byteidx:put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteidx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteidx(b, 4)])/^byteidxcomp :put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcomp(a, 3), byteidxcomp(a, 4)]):let b = '.eÌ.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx [0, 1, 3, 4, -1]4, 5 /^byteidxcomp byteidxcomp :put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxc omp(a, 3), byteidxcomp(a, 4)]) áxSTARTTEST :let a = '.é.' " one char of two bytesb = '.eÌ.' " normal e with composing char /^byteidx:put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteidx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteidx(b, 4)])/^byteidxcomp :put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcomp(a, 3), byteidxcomp(a, 4)]):let b = '.eÌ.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx [0, 1, 3, 4, -1]4, 5 byteidxcomp[0, 1, 3, 4, -1] :let b = '.eeÌ.' :put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxc omp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)]) STARTTEST :let a = '.é.' " one char of two bytesb = '.eÌ.' " normal e with composing char /^byteidx:put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteidx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteidx(b, 4)])/^byteidxcomp :put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcomp(a, 3), byteidxcomp(a, 4)]):let b = '.eÌ.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx [0, 1, 3, 4, -1]4, 5 byteidxcomp[0, 1, 3, 4, -1]2, 4, 5, -1] /^STARTTEST STARTTEST :g/^STARTTEST/.,/^ENDTEST/d :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2 lines, 56 characters written:set ff& cpo+=A  /ENDTEST :1;/^Results/,$wq! test.out :so! Xdotest :g/^STARTTEST/.,/^ENDTEST/d 100 fewer linesa}{ four}ra testaaaaaaaáx4, 5, -1]byteidxcomp [0, 1, 3, 4, -1] [0, 1, 2, 4, 5, -1]:1;/^Results/,$wq! test.out "test.out" [New File] 162 lines, 703 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test70.failed test.ok test.out X* viminfo cp test70.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test70.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test70.in" 63 lines, 1501 charactersSmoke test for MzScheme interface and mzeval() function STARTTEST :so mzscheme.vim :set nocompatible viminfo+=nviminfo :function! MzRequire() :redir => l:mzversion :mz (version) :redir END :if strpart(l:mzversion, 1, 1) < "4" :" MzScheme versions < 4.x: :mz (require (prefix vim- vimext)) :else :" newer versions: :mz (require (prefix-in vim- 'vimext)) :mz (require r5rs) :endif :endfunction :silent call MzRequire() :mz (define l '("item0" "dictionary with list OK" "item2")) :mz (define h (make-hash)) :mz (hash-set! h "list" l) /^1:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Smoke test for MzScheme interface and mzeval() function/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 55 lines, 1398 characters written:set ff& cpo+=A /ENDTEST:if l2[2] == l2 :let res = "OK" :else :let res = "FAILED: " . l2[2] :endif :call setline(search("^3"), "circular test " . res) :" funcrefs :mz (define vim:max (vim-eval "function('max')")) :mz (define m (vim:max '(1 100 8))) :let m = mzeval('m') :if m == 100 :let fref_res = "OK" :else :let fref_res = "FAILED: " . m :end :call append(line('$'), 'funcrefs '. fref_res) :?^1?,$w! test.out :qa! ENDTEST 1 line 1 2 line 2 3 line 3 :so! Xdotest :so mzscheme.vim "test.ok" 6 lines, 94 characters "test.out" [New File] 6 lines, 94 characters written # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test72.failed test.ok test.out X* viminfo cp test72.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test72.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test72.in" 69 lines, 1146 charactersTests for undo file. Since this script is sourced we need to explicitly break changes up in undo-able pieces. Do that by setting 'undolevels'. STARTTEST :so small.vim :" :" Test 'undofile': first a simple one-line change. :set nocompatible viminfo+=nviminfo visualbell :set ul=100 undofile nomore :e! Xtestfile ggdGithis is one line^[:set ul=100 :s/one/ONE/ :set ul=100 :w :bwipe! :e Xtestfile u:.w! test.out :" :" Test 'undofile', change in original file fails check :set noundofile :e! Xtestfile :s/line/Line/:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for undo file./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 58 lines, 949 characters written:set ff& cpo+=A /ENDTESTdd:set ul=100 dd:set ul=100 :w :bwipe! :e Xtestfile uuu:w >>test.out :" :" Test that reading the undofiles when setting undofile works :set noundofile ul=0 i ^[u:e! Xtestfile :set undofile ul=100 uuuuuu:w >>test.out :" :" Rename the undo file so that it gets cleaned up. :call rename(".Xtestfile.un~", "Xtestundo") :qa! ENDTEST 1111 ----- 2222 ----- 123456789 :so! Xdotest :so small.vim :" :" Test 'undofile': first a simple one-line change. :set nocompatible viminfo+=nviminfo visualbell :set ul=100 undofile nomore :e! Xtestfile "Xtestfile" [New File]~~~~~~~~ ~~~~~~~~~ ~~~ ~~-- INSERT --this is one line:set ul=100 :s/one/ONE/ ONE :set ul=100 :w "Xtestfile" [New] 1L, 17C written:bwipe! "test72.in" 69L, 1146Cdd:set ul=100dd:set ul=100 :w :bwipe! :e Xtestfile uuu:w >>test.out :" :" Test that reading the undofiles when setting undofile works :set noundofile ul=0 i ^[u:e! Xtestfile :set undofile ul=100 uuuuuu:w >>test.out :" :" Rename the undo file so that it gets cleaned up. :call rename(".Xtestfile.un~", "Xtestundo") :qa! ENDTEST1111 ----- 2222 -----123456789:e Xtestfile "Xtestfile" 1L, 17Cthis is ONE line~~~~~~~~ ~~~~~~~~~ ~~~ ~~1 change; before #2 0 seconds agoone :.w! test.out "test.out" [New] 1L, 17C written:" :" Test 'undofile', change in original file fails check :set noundofile :e! Xtestfile "Xtestfile" 1L, 17CONE :s/line/Line/ L :w "Xtestfile" 1L, 17C written:set undofile :bwipe! "test72.in" 69L, 1146Cdd:set ul=100dd:set ul=100 :w :bwipe! :e Xtestfile uuu:w >>test.out :" :" Test that reading the undofiles when setting undofile works :set noundofile ul=0 i ^[u:e! Xtestfile :set undofile ul=100 uuuuuu:w >>test.out :" :" Rename the undo file so that it gets cleaned up. :call rename(".Xtestfile.un~", "Xtestundo") :qa! ENDTEST1111 ----- 2222 -----123456789:e Xtestfile "Xtestfile" 1L, 17Cthis is ONE Line~~~~~~~~ ~~~~~~~~~ ~~~ ~~:" TODO: this beeps Already at oldest change:.w >>test.out "test.out" 1L, 17C appended:" :" Test 'undofile', add 10 lines, delete 6 lines, undo 3 :set undofile --No lines in buffer---- INSERT --one two three four five six seven eight nine ten:set ul=100 ~:set ul=100 ~:set ul=100 ~:set ul=100 ~:set ul=100 ~:set ul=100 ~:set ul=100 :w "Xtestfile" 4L, 17C written:bwipe! "test72.in" 69L, 1146Cdd:set ul=100 dd:set ul=100 :w:bwipe! :e Xtestfile uuu:w >>test.out :" :" Test that reading the undofiles when setting undofile works :set noundofile ul=0 i ^[u:e! Xtestfile :set undofile ul=100 uuuuuu:w >>test.out :" :" Rename the undo file so that it gets cleaned up. :call rename(".Xtestfile.un~", "Xtestundo") :qa! ENDTEST1111 ----- 2222 -----123456789:e Xtestfile "Xtestfile" 4L, 17Conetwonine ten~~~~~ ~~~~~~~~~ ~~~ ~~1 more line; before #7 0 seconds agoeight 1 more line; before #6 0 seconds agoseven 1 more line; before #5 0 seconds agosix :w >>test.out "test.out" 7L, 33C appended:" :" Test that reading the undofiles when setting undofile works :set noundofile ul=0 -- INSERT --six-- INSERT --us1 line less; before #8 0 seconds ago~:e! Xtestfile "Xtestfile" 4L, 17Cnine ten~~~:set undofile ul=100 1 more line; before #7 0 seconds agoeight 1 more line; before #6 0 seconds agoseven 1 more line; before #5 0 seconds agosix 1 more line; before #4 0 seconds agofive 1 more line; before #3 0 seconds agofour 1 more line; before #2 0 seconds agothree :w >>test.out "test.out" 10L, 49C appended:" :" Rename the undo file so that it gets cleaned up. :call rename(".Xtestfile.un~", "Xtestundo") :qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test73.failed test.ok test.out X* viminfo cp test73.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test73.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test73.in" 176 lines, 3863 charactersTests for find completion. STARTTEST :so small.vim :" Do all test in a separate window to avoid E211 when we recursively :" delete the Xfind directory during cleanup :" :" This will cause a few errors, do it silently. :set visualbell :set nocp viminfo+=nviminfo :" :function! DeleteDirectory(dir) : if has("win16") || has("win32") || has("win64") || has("dos16") || has("dos32") : exec "silent !rmdir /Q /S " . a:dir : else : exec "silent !rm -rf " . a:dir : endif :endfun :" On windows a stale "Xfind" directory may exist, remove it so that :" we start from a clean state. :call DeleteDirectory("Xfind") :new:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for find completion./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 171 lines, 3816 characters written:set ff& cpo+=A /ENDTEST:exec "cd " . cwd . "/Xfind/" :set path=./path :" Open the file where Jimmy Hoffa is found :e in/file.txt :" Find the file containing 'E.T.' in the Xfind/in/path directory :find file :exec "w >>" . test_out :" :" Test that completion works when path=.,, :" :set path=.,, :" Open Jimmy Hoffa file :e in/file.txt :exec "w >>" . test_out :" Search for the file containing Holy Grail in same directory as in/path.txt :find stu :exec "w >>" . test_out :q :exec "cd " . cwd :call DeleteDirectory("Xfind") :qa! ENDTEST :so! Xdotest :so small.vim :" Do all test in a separate window to avoid E211 when we recursively :" delete the Xfind directory during cleanup :" :" This will cause a few errors, do it silently. :set visualbell :set nocp viminfo+=nviminfo :" :function! DeleteDirectory(dir) : : if has("win16") || has("win32") || has("win64") || has("dos16") || has("do s32") : : exec "silent !rmdir /Q /S " . a:dir : : else : : exec "silent !rm -rf " . a:dir : : endif : :endfun :exec "cd " . cwd . "/Xfind/" :set path=./path :" Open the file where Jimmy Hoffa is found :e in/file.txt :" Find the file containing 'E.T.' in the Xfind/in/path directory :find file :exec "w >>" . test_out :" On windows a stale "Xfind" directory may exist, remove it so that :" we start from a clean state. :call DeleteDirectory("Xfind") :new ~~~~~~~~~~ [No Name] xec "w >>" . test_out :" Search for the file containing Holy Grail in same directory as in/path.txt :find stu exec "w >>" . test_out :qexec "cd " . cwd :call DeleteDirectory("Xfind") :qa!ENDTESTtest73.in :let cwd=getcwd() :let test_out = cwd . '/test.out' :call mkdir('Xfind') :cd Xfind /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/testdir/Xfin d Press ENTER or type command to continue:set path= ~>" . test_out :" :" Test that completion works when path=.,, :" :set path=.,, :" Open Jimmy Hoffa file in/file.txtexec "w >>" . test_out" Search for the file containing Holy Grail in same directory as in/path.txt :find stu exec "w >>" . test_out :qexec "cd " . cwdcall DeleteDirectory("Xfind") :qa!ENDTEST:new ~~~~~~~~~~ [No Name] xec "w >>" . test_out :" Search for the file containing Holy Grail in same directory as in/path.txt :find stu exec "w >>" . test_out :qexec "cd " . cwd :call DeleteDirectory("Xfind") :qa!ENDTEST>" . test_out >" . test_out :" :" Test that completion works when path=.,, :" :set path=.,, :" Open Jimmy Hoffa file in/file.txtexec "w >>" . test_out" Search for the file containing Holy Grail in same directory as in/path.txt :find stu exec "w >>" . test_out :qexec "cd " . cwdcall DeleteDirectory("Xfind") :qa!ENDTEST:new ~~~~~~~~~~ [No Name] xec "w >>" . test_out :" Search for the file containing Holy Grail in same directory as in/path.txt :find stu exec "w >>" . test_out :qexec "cd " . cwd :call DeleteDirectory("Xfind") :qa!ENDTEST>" . test_out >" . test_out :" :" Test that completion works when path=.,, :" :set path=.,, :" Open Jimmy Hoffa file in/file.txtexec "w >>" . test_out" Search for the file containing Holy Grail in same directory as in/path.txt :find stu exec "w >>" . test_out :qexec "cd " . cwdcall DeleteDirectory("Xfind") :qa!ENDTEST:new ~~~~~~~~~~ [No Name] xec "w >>" . test_out :" Search for the file containing Holy Grail in same directory as in/path.txt :find stu exec "w >>" . test_out :qexec "cd " . cwd :call DeleteDirectory("Xfind") :qa!ENDTEST>" . test_out >" . test_out :" :" Test that completion works when path=.,, :" :set path=.,, :" Open Jimmy Hoffa file in/file.txtexec "w >>" . test_out" Search for the file containing Holy Grail in same directory as in/path.txt :find stu exec "w >>" . test_out :qexec "cd " . cwdcall DeleteDirectory("Xfind") :qa!ENDTEST:new ~~~~~~~~~~ [No Name] xec "w >>" . test_out :" Search for the file containing Holy Grail in same directory as in/path.txt :find stu exec "w >>" . test_out :qexec "cd " . cwd :call DeleteDirectory("Xfind") :qa!ENDTEST>" . test_out >" . test_out >" . test_out >" . test_out >" . test_out >" . test_out >" . test_out >" . test_out >" . test_out >" . test_out >" . test_out >" . test_out >" . test_out > " . test_out > " . test_out > " . test_out > " . test_out >" . test_out >" . test_out >" . test_out >" . test_out >" . test_out :" :" Test that completion works when path=.,, :" :set path=.,, :" Open Jimmy Hoffa file in/file.txtexec "w >>" . test_out" Search for the file containing Holy Grail in same directory as in/path.txt :find stu exec "w >>" . test_out :qexec "cd " . cwdcall DeleteDirectory("Xfind") :qa!ENDTEST:exec "cd " . cwd /build/buildd/neovim-0.0.0+897+201407272017~ubuntu12.04.1/src/nvim/testdir:call DeleteDirectory("Xfind") :qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test74.failed test.ok test.out X* viminfo cp test74.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test74.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test74.in" 36 lines, 822 characters" Tests for storing global variables in the .viminfo file vim: set ft=vim: STARTTEST :so small.vim :" Do all test in a separate window to avoid E211 when we recursively :" delete the Xfind directory during cleanup :" :" This will cause a few errors, do it silently. :set visualbell :set nocp viminfo+=!,nviminfo :let MY_GLOBAL_DICT={'foo': 1, 'bar': 0, 'longvarible': 1000} :" store a really long list, so line wrapping will occur in viminfo file :let MY_GLOBAL_LIST=range(1,100) :wv! Xviminfo :unlet MY_GLOBAL_DICT :unlet MY_GLOBAL_LIST :rv! Xviminfo :call delete('Xviminfo') :if exists("MY_GLOBAL_DICT") :redir >> test.out :echo MY_GLOBAL_DICT :redir end :endif:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest " Tests for storing global variables in the .viminfo file vim: set ft=vim:/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 30 lines, 723 characters written:set ff& cpo+=A /ENDTEST:if exists("MY_GLOBAL_LIST") :redir >> test.out :echo MY_GLOBAL_LIST :redir end :endif :redir >> test.out :echo "foobar" :redir end :endif :qa! ENDTEST  :so! Xdotest :so small.vim :" Do all test in a separate window to avoid E211 when we recursively :" delete the Xfind directory during cleanup :" :" This will cause a few errors, do it silently. :set visualbell :set nocp viminfo+=!,nviminfo :let MY_GLOBAL_DICT={'foo': 1, 'bar': 0, 'longvarible': 1000} :" store a really long list, so line wrapping will occur in viminfo file :let MY_GLOBAL_LIST=range(1,100) :wv! Xviminfo :unlet MY_GLOBAL_DICT :unlet MY_GLOBAL_LIST :rv! Xviminfo :call delete('Xviminfo') :if exists("MY_GLOBAL_DICT") : :redir >> test.out : :echo MY_GLOBAL_DICT {'foo': 1, 'longvarible': 1000, 'bar': 0} : :redir end : :endif :let MY_GLOBAL_LIST=range(1,100) :wv! Xviminfo :unlet MY_GLOBAL_DICT :unlet MY_GLOBAL_LIST :rv! Xviminfo :if exists("MY_GLOBAL_LIST") : :redir >> test.out : :echo MY_GLOBAL_LIST [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100] : :redir end : :endif :let MY_GLOBAL_LIST=range(1,100) :wv! Xviminfo :unlet MY_GLOBAL_DICT :unlet MY_GLOBAL_LIST :rv! Xviminfo :call delete('Xviminfo') :if exists("MY_GLOBAL_DICT") :redir >> test.out :echo MY_GLOBAL_DICT :redir >> test.out :echo "foobar" foobar:redir end :endif E580: :endif without :if:qa! # For flaky tests retry one time. # Check if the test.out file matches test.ok. rm -rf X* test.ok viminfo rm -rf test75.failed test.ok test.out X* viminfo cp test75.ok test.ok # Sleep a moment to avoid that the xterm title is messed up. # 200 msec is sufficient, but only modern sleep supports a fraction of # a second, fall back to a second if it fails. ../../../build/bin/nvim -u unix.vim -U NONE --noplugin -s dotest.in test75.in Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal E558: Terminal entry not found in terminfo 'unknown' not known. Available builtin terminals are: builtin_ansi builtin_xterm builtin_iris-ansi builtin_dumb defaulting to 'ansi' "test75.in" 41 lines, 1000 charactersTests for maparg(). Also test utf8 map with a 0x80 byte. STARTTEST :so small.vim :so mbyte.vim :set cpo-=< :set encoding=utf8 :" Test maparg() with a string result :map foo isfoo :vnoremap